Исходники и листинги ::: Delphi ::: змейка

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
  unit Unit1;
 
  interface
 
  uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, ExtCtrls, Menus;
 
  type
    TForm1 = class(TForm)
      Timer1: TTimer;
      PopupMenu1: TPopupMenu;
      N1: TMenuItem;
      N2: TMenuItem;
      N3: TMenuItem;
      procedure FormActivate(Sender: TObject);
      procedure Timer1Timer(Sender: TObject);
      procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
        Shift: TShiftState; X, Y: Integer);
      procedure FormCreate(Sender: TObject);
      procedure N2Click(Sender: TObject);
      procedure N1Click(Sender: TObject);
      procedure N3Click(Sender: TObject);
    private
      { Private declarations }
    public
      { Public declarations }
    end;
 
  var
    Form1: TForm1;
    x, y: array [1..20] of integer;
    j, i, l, h, alfa, arg: integer;
 
  implementation
 
  uses Unit2, Unit3;
 
  {$R *.dfm}
 
 
 
 
  procedure TForm1.FormActivate(Sender: TObject);
  begin
     Randomize;
     Form1.Left:=0;
     Form1.Top:=0;
     Form1.Height:=768;
     Form1.Width:=1024;
     for i:=2 to 20 do
      begin
         Form1.Canvas.LineTo(x[i], y[i]);
      end;
  end;
 
  procedure TForm1.Timer1Timer(Sender: TObject);
  begin
  &nbsp;&nbsp; if (x[20]>=1024) or (x[20]<=0) or (y[20]>=768) or (y[20]<=0)
  &nbsp;&nbsp;&nbsp;&nbsp;then arg:=arg+ alfa
  &nbsp;&nbsp;&nbsp;&nbsp;else arg:=arg+ random(alfa*2 + 1)-alfa;
 
  &nbsp;&nbsp; Form1.Canvas.MoveTo(x[1], y[1]);
  &nbsp;&nbsp; Form1.Canvas.LineTo (x[2], y[2]);
  &nbsp;&nbsp; for j:=1 to 19 do
  &nbsp;&nbsp;&nbsp;&nbsp;begin
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x[j]:=x[j+1];
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; y[j]:=y[j+1];
  &nbsp;&nbsp;&nbsp;&nbsp;end;
  &nbsp;&nbsp; x[20]:=x[19]+trunc(l*cos(arg*Pi/180));
  &nbsp;&nbsp; y[20]:=y[19]+trunc(l*sin(arg*Pi/180));
  &nbsp;&nbsp; Form1.Canvas.MoveTo(x[19], y[19]);
  &nbsp;&nbsp; Form1.Canvas.LineTo(x[20], y[20]);
  end;
 
  procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  &nbsp;&nbsp;Shift: TShiftState; X, Y: Integer);
  begin
  &nbsp;&nbsp; Timer1.Enabled:= not Timer1.Enabled;
  end;
 
  procedure TForm1.FormCreate(Sender: TObject);
  begin
  &nbsp;&nbsp; l:=10;
  &nbsp;&nbsp; h:=15;
  &nbsp;&nbsp; alfa:=30;
 
  &nbsp;&nbsp; for i:=1 to 20 do
  &nbsp;&nbsp;&nbsp;&nbsp;begin
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x[i]:=400+i*l;
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; y[i]:=400;
  &nbsp;&nbsp;&nbsp;&nbsp;end;
 
  &nbsp;&nbsp; Form1.Canvas.Pen.Width:=h;
  &nbsp;&nbsp; Form1.Canvas.Pen.Color:=clGreen;
  &nbsp;&nbsp; Form1.Canvas.Pen.Mode:=pmXor;
  &nbsp;&nbsp; Form1.Canvas.MoveTo(x[1], y[1]);
  &nbsp;&nbsp; 
  &nbsp;&nbsp; arg:=0;
 
  &nbsp;&nbsp; Form1.Timer1.Enabled:= true;
  end;
 
  procedure TForm1.N2Click(Sender: TObject);
  begin
  &nbsp;&nbsp; Form1.Close;
  end;
 
  procedure TForm1.N1Click(Sender: TObject);
  begin
  &nbsp;&nbsp; Form1.Timer1.Enabled:=false;
  &nbsp;&nbsp; Form1.Canvas.MoveTo(x[1], y[1]);
  &nbsp;&nbsp; for i:=2 to 20 do
  &nbsp;&nbsp;&nbsp;&nbsp; Form1.Canvas.LineTo(x[i], y[i]);
  &nbsp;&nbsp; Form2.ShowModal;
  end;
 
  procedure TForm1.N3Click(Sender: TObject);
  begin
  &nbsp;&nbsp; Form3.ShowModal;
  end;
 
  end.
<<< Предыдущая работа

Вернуться в галерею исходников
змейка
Автор: Sanek_xXx
Город: Казань
Дата: 19.01.2007  22:01
Комментариев: 0
Просмотров: 166
Оценка: 0 (0|0|0|0|0) [0]

Вернуться на главную
Авторский комментарий к работе: листинг к моей программе "червяк"
Вы не можете оценивать

КОММЕНТАРИИ К РАБОТЕ:
Нет комментариев