Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
TimaXP
1

Игра Крестики-нолики На Pascal ABC

09.04.2013, 22:31. Показов 32608. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вот начал делать прогу. К сожалению доделать не могу( Помогите плиз.
P.S. надо именно дописать. Новую прогу не предлагать. Преподаватель поймет, что не я писал)


Pascal
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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
program lol;
uses graphabc, crt;
var x,y,x1,y1,x2,y2,f:integer; k1:char;
i,kx,ky,j,h,g,k:integer; fl:boolean;
b:array [1..3,1..3] of integer;
begin
    for i:=1 to 3 do
    for j:=1 to 3 do
    b[i,j]:=0;
    rectangle(60,40,420,400);
    line(80,280,400,280);
    line(80,160,400,160);
    line(180,380,180,60);
    line(300,380,300,60);
    x:=120; y:=100;
    setpencolor(clred);
    circle(x,y,30);
    f:=0;
    
    repeat
    if keypressed then
    begin
       k1:=readkey;
       if (k1=#77) and (x<360) then
       begin
          setpencolor(clblack);
          circle(x,y,30);
          x:=x+120;
          setpencolor(clred);
          circle(x,y,30);
       end;
       if (k1=#80) and (y<=360) then
       begin
          setpencolor(clblack);
          circle(x,y,30);
          y:=y+120;
          setpencolor(clred);
          circle(x,y,30);
       end;
       if (k1=#72) and (y>120) then
       begin
          setpencolor(clblack);
          circle(x,y,30);
          y:=y-120;
          setpencolor(clred);
          circle(x,y,30);
       end;
       if (k1=#75) and (x>120) then
       begin
          setpencolor(clblack);
          circle(x,y,30);
          x:=x-120;
          setpencolor(clred);
          circle(x,y,30);
       end;
       if (k1=#13) then
       begin
            i:=y div 120;
            j:=x div 120;
            if b[i,j]=0 then
            begin
               setpencolor(clred);
 
               floodfill(x,y,clred);
               b[i,j]:=1;
               f:=f+1;
               fl:=false;
               if f>=5 then
               begin
                   if ((b[1,1]=1)and (b[1,2]=1)and (b[1,3]=1)) or
                   ((b[2,1]=1)and (b[2,2]=1)and (b[2,3]=1)) or
                   ((b[3,1]=1)and (b[3,2]=1)and (b[3,3]=1)) or
                   ((b[1,1]=1)and (b[2,2]=1)and (b[3,3]=1)) or
                   ((b[1,1]=1)and (b[2,2]=1)and (b[3,3]=1)) or
                   ((b[1,1]=1)and (b[2,2]=1)and (b[3,3]=1)) or
                   ((b[1,1]=1)and (b[2,2]=1)and (b[3,3]=1)) or
                   ((b[3,1]=1)and (b[2,2]=1)and (b[1,3]=1))
                   then begin
                     gotoxy(550,30);
                     write('Âû ïîáåäèëè!');
                     fl:=true;
                     f:=9;
                   end;
              end;
 
           if f=9 then fl:=true;
           repeat
           randomize;
           if f=1 then
           begin
             kx:=1+random(3);
             ky:=1+random(3);
             i:=ky;
             j:=kx;
             end
             else
             begin
             for h:=1 to 3 do
             begin
             k:=0;
             for g:=1 to 3 do
             begin
             if b[h,g]=1 then k:=k+1;
             if b[h,g]=0 then j:=g;
             end;
             if k=2 then i:=h;
             end;
             kx:=i;
             ky:=j;
             end;
             
             if b[i,j]=0 then
             begin
               setpencolor(clgreen);
               line(90+120*(kx-1),90+120*(ky-1),150+120*(kx-1),150+120*(ky-1));
               line(90+120*(kx-1),150+120*(ky-1),150+120*(kx-1),90+120*(ky-1));
               
               b[i,j]:=2;
               fl:=true;
               
               f:=f+1;
               if f>=6 then
            begin
            if ((b[1,1]=2)and (b[1,2]=2)and (b[1,3]=2)) or
                   ((b[2,1]=2)and (b[2,2]=2)and (b[2,3]=2)) or
                   ((b[3,1]=2)and (b[3,2]=2)and (b[3,3]=2)) or
                   ((b[1,1]=2)and (b[2,2]=2)and (b[3,3]=2)) or
                   ((b[1,1]=2)and (b[2,2]=2)and (b[3,3]=2)) or
                   ((b[1,1]=2)and (b[2,2]=2)and (b[3,3]=2)) or
                   ((b[1,1]=2)and (b[2,2]=2)and (b[3,3]=2)) or
                   ((b[3,1]=2)and (b[2,2]=2)and (b[1,3]=2))
                   then begin
                   gotoxy(550,30);
                   write('Âû ïðîèãðàëè!');
                   
                   fl:=true;
                   f:=9;
                   end;
                   
                   end;
                     end;
                     until (fl=true);
                     end;
                 end;
                 end;
                 until f=9;
                 
 
 
readln;
 
 
end.
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.04.2013, 22:31
Ответы с готовыми решениями:

Игра в крестики-нолики с компьютером
Помогите написать простенькую программу) плиз) очень срочно надо) Заранее спасибо)

Игра "крестики-нолики" беспроигрышная стратегия
Доброго времени суток! Пишу программу в Pascal &quot;крестики-нолики&quot;, осталось 2 пункта, которые никак...

Крестики нолики на Pascal, помогите.
помагите сделать игру составить алгоритм

Перевести код Pascal ABC NET в Pascal ABC
Помогите, плиз Сделал на Pascal ABC NET, но нужно его открыть в обычном Pascal ABC. Не компилит...

0
09.04.2013, 22:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.04.2013, 22:31
Помогаю со студенческими работами здесь

Перевод из Pascal ABC.net в Pascal ABC
Помогите, пожалуйста, перевести программу в Pascal ABC с Pascal ABC.net; если не трудно, объясните,...

Turbo Pascal, Pascal ABC, Free Pascal, PascalABC.NET - в чем разница?
Всем привет, решил изучать Паскаль, но на форуме увидел 4 его версии - Turbo Pascal, Pascal ABC,...

Крестики-нолики
Нужно реализовать в Pascal. Что бы были входные(1.in) и выходные(1.out) данные. ) создать .ехе файл...

Крестики-нолики
Как сделать так, чтобы программа могла определять 3 в ряд в крестиках-ноликах?) Спасибо большое


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru