Урок 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.

Презентация

Завершив проектную работу на этом уроке, попросите группы представить дизайн и результаты проекта своим одноклассникам. Ученики могут использовать программу Pascal, видео, интерактивные доски, блоги и другие мультимедиа. Можно использовать различные творческие методы презентации.

Заключение

На этом проекте ученики узнали побольше информации о языке программирования Паскаль. Создали игру с помощью программы Паскаль.

Оценивание

Критерий оценивания по PBL:

Project based learning (проектно-ориентированное обучение) – это метод обучения, при котором учащиеся приобретают знания и навыки, работая над одним проектом в течение 3-х или 4-х недель, для исследования и поиска ответа на подлинный, интересный и сложный вопрос, проблему или вызов (далее перейдите по ссылке PBL Rubrics на рубрики).