📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Timer1: TTimer;
Button3: TButton;
procedure FormPaint(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
procedure PutDown;
{ Public declarations }
end;
var
Form1: TForm1;
x:Integer=4;
y:Integer=0;
Box:array[0..9,0..19] of Integer;
implementation
{$R *.dfm}
procedure TForm1.FormPaint(Sender: TObject);
var
i,j:Integer;
begin
Canvas.Brush.Color:=clRed;
for i:=0 to 10 do
begin
Canvas.MoveTo(20+20*i,20); //第i条竖线的起点坐标
Canvas.LineTo(20+20*i,420); //第i条竖线的终点坐标
end;
for i:=0 to 20 do
begin
Canvas.MoveTo(20,20+20*i); //第i条横线的起点坐标
Canvas.LineTo(220,20+20*i); //第i条横线的终点坐标
end;
//画盒子里已填满的
for i:=0 to 10 do
for j:=0 to 20 do
if Box[i,j]>0 then
Canvas.Rectangle(20+20*i,20+20*j,40+20*i,40+20*j);
//画正在运动的方块
Canvas.Rectangle(20+x*20,20+y*20,80+x*20,40+y*20);
Canvas.Rectangle(40+x*20,40+y*20,60+x*20,80+y*20);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
x:=x+1;
Repaint;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
x:=x-1;
Repaint;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
y:=y+1;
PutDown;
Repaint;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Timer1.Enabled:=not Timer1.Enabled;
if Timer1.Enabled then Button3.Caption:='暂停'
else Button3.Caption:='继续';
end;
procedure TForm1.PutDown;
var
Stop:Boolean;
begin
//判断哪些轻快要把它放下来,就是说要将
//方块所在的那些格子填满
Stop:=False;
//当方块到达底部停下来
if y=17 then Stop:=True;
//当方块左肩下满时
if Box[x,y+1]>0 then Stop:=True;
//当方块右肩下满时
if Box[x+2,y+1]>0 then Stop:=True;
//当方块脚下满时
if Box[x+1,y+3]>0 then Stop:=True;
if Stop then
begin
Box[x,y]:=1;
Box[x+1,y]:=1;
Box[x+2,y]:=1;
Box[x+1,y+1]:=1;
Box[x+1,y+2]:=1;
//然后一个新的方块又从上面下来
y:=0;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -