4-сабақ

Ойынның дайын коды

program pingpong;

uses GraphABC;

var

  game,pd,pu,ad,au,dx,dy:boolean;

  width,height,ypl,yan,wid,hei,spp,xb,yb,rb,speed,sc1,sc2:integer;

 

  procedure KeyDown(k:integer);

  begin

    if k=VK_S then pd:=True;

    if k=VK_W then pu:=True;

    if k=VK_Down then ad:=True;

    if k=VK_Up then au:=True;

  end;

  procedure KeyUp(k:integer);

  begin

    if k=VK_S then pd:=False;

    if k=VK_W then pu:=False;

    if k=VK_Down then ad:=False;

    if k=VK_Up then au:=False;

  end;

  begin

    //set

    game:=True;

    width:=1024;

    height:=768;

    lockDrawing();

    SetWindowSize(width,height);

    wid:=15;

    hei:=100;

    ypl:=(height-hei)div 2;

    yan:=(height-hei)div 2;

    spp:=20;

    xb:=width div 2;

    yb:=height div 2;

    rb:=20;

    speed:=10;

    while game do

    begin

      //logic

     

       if (dx and dy) then

       begin

         xb+=speed;

         yb+=speed;

       end

       else if (dx and not dy) then

       begin

         xb+=speed;

         yb-=speed;

       end

       else if (not dx and not dy) then

       begin

         xb-=speed;

         yb-=speed;

       end

       else if (not dx and dy) then

       begin

         xb-=speed;

         yb+=speed;

       end;

      

       if (pd and (ypl+hei<=height))then ypl+=spp;

       if (pu and (ypl>=0)) then ypl-=spp;

       if (ad and (yan+hei<=height)) then yan+=spp;

       if (au and (yan>=0)) then yan-=spp;

     

       if (xb-rb<=wid)then

       begin

         if(yb+rb>=ypl) and (yb-rb<=ypl+hei)then

           dx:=not dx

         else begin

           xb:=width div 2;

           yb:=height div 2;

           dx:=True;

           dy:=False;

           sc2+=1;

         end;

       end;

       if (xb+rb>=width-wid)then

       begin

         if (yb+rb>=yan) and (yb-rb<=yan+hei) then

           dx:=not dx

         else begin

           xb:=width div 2;

           yb:=height div 2;

           dx:=False;

           dy:=False;

           sc1:=1;

         end;

       end;

       if ((yb>=height-rb) or (yb<=rb)) then

         dy:=not dy;

      

       OnKeyDown:=KeyDown;

       OnKeyUp:=KeyUp;

       //draw

       window.clear();

       SetBrushColor(clBlue);

       FillRect(width div 2-5,0,width div 2+5,height);

     

       //player and anemy

       FillRect(0,ypl,wid,ypl+hei);

       FillRect(width-wid,yan,width,yan+hei);

       FillCircle(xb,yb,rb);

      

      

       //text

       SetFontSize(50);

       SetBrushColor(clRed);

       TextOut(width div 4,20,sc1);

       TextOut((width div 4)*3,20,sc2);

       redraw();

    end;

  end.

Презентация

Осы сабақта жобалық жұмысты аяқтағаннан кейін топтардан жобаның дизайны мен нәтижелерін сыныптастарына ұсынуды сұраңыз. Оқушылар Паскаль бағдарламасын, бейнелерді, интерактивті тақталарды, блогтарды және басқа медиаларды қолдана алады. Презентацияның әртүрлі шығармашылық әдістерін қолдануға болады.

Қорытынды

Бұл жобада оқушылар Паскаль бағдарламалау тілі туралы көбірек ақпарат алды. Паскаль бағдарламасының көмегімен ойын жасады.

Бағалау

PBL бойынша бағалау критерийлері:

Project based learning (жобаға бағытталған оқыту)-бұл студенттер 3 немесе 4 апта ішінде бір жобада жұмыс жасау арқылы білім мен дағдыларды игеріп, шынайы, қызықты және күрделі сұраққа, мәселеге немесе қоңырауға жауап табу үшін оқыту әдісі (әрі қарай PBL Rubrics сілтемесіне өтіңіз).