![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
btr86 |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 3 Репутация: ![]() ![]() ![]() |
Ребята ну хотя бы с крестиками помогите:
Игра крестики - нолики: Сделать так чтобы при нажатии ALT поле смещалось в другое место. Вместе со всеми ходами которые были сделаны и при этом продолжать играть на новом месте(старый экран затирается). Блин у меня не получается чтобы курсор вверх бегал...ПОМОГИТЕ:Вот исходник моей проги Код program krestiki_noliki; uses crt; var m:array[1..3,1..3] of char; c,f1,f2:char; f,e,w:boolean; i,j,x,y:byte; begin while true do begin c:=#0; f1:=#0; f2:=#0; e:=false; w:=false; f:=false; for i:=1 to 3 do for j:=1 to 3 do m[i,j]:=#0; clrscr; writeln('Choose your destiny'); writeln('Krestiki(Enter X)'); writeln('Noliki(Enter O)'); writeln('Esc - Exit'); while (c=#0)or(c<>#27)and(c<>'x')and(c<>'X')and(c<>'o')and(c<>'O') do begin c:=readkey; case c of #27: exit; 'x','X': begin f:=true; f1:='X'; f2:='O'; end; 'o','O': begin f:=false; f1:='O'; f2:='X'; end; end; end; clrscr; writeln('ЪДДДВДДДВДДДї'); writeln('і і і і'); writeln('ГДДДЕДДДЕДДДґ'); writeln('і і і і'); writeln('ГДДДЕДДДЕДДДґ'); writeln('і і і і'); writeln('АДДДБДДДБДДДЩ'); gotoXY(3,2); while e=false do begin if f=true then begin c:=readkey; if c=#0 then c:=readkey; end else c:=#32; case c of #27: exit; #32: begin case whereX of 3: x:=1; 7: x:=2; 11: x:=3; end; case whereY of 2: y:=1; 4: y:=2; 6: y:=3; end; if m[x,y]=#0 then begin if (f=true)and(w=false)and(e=false) then begin write(f1); gotoXY(whereX-1,whereY); m[x,y]:=f1; end; if (m[1,1]=f1)and(m[2,1]=f1)and(m[3,1]=f1)or (m[1,2]=f1)and(m[2,2]=f1)and(m[3,2]=f1)or (m[1,3]=f1)and(m[2,3]=f1)and(m[3,3]=f1)or (m[1,1]=f1)and(m[1,2]=f1)and(m[1,3]=f1)or (m[2,1]=f1)and(m[2,2]=f1)and(m[2,3]=f1)or (m[3,1]=f1)and(m[3,2]=f1)and(m[3,3]=f1)or (m[1,3]=f1)and(m[2,2]=f1)and(m[3,1]=f1)or (m[1,1]=f1)and(m[2,2]=f1)and(m[3,3]=f1) then begin gotoXY(1,8); writeln('Крестики выйграли'); readln; w:=true; e:=true; end; f:=true; if (w=false)and(e=false) then begin while m[x,y]<>#0 do begin x:=1+random(3); y:=1+random(3); end; case x of 1: gotoXY( 3,whereY); 2: gotoXY( 7,whereY); 3: gotoXY(11,whereY); end; case y of 1: gotoXY(whereX, 2); 2: gotoXY(whereX, 4); 3: gotoXY(whereX, 6); end; write(f2); gotoXY(whereX-1,whereY); m[x,y]:=f2; if (m[1,1]=f2)and(m[2,1]=f2)and(m[3,1]=f2)or (m[1,2]=f2)and(m[2,2]=f2)and(m[3,2]=f2)or (m[1,3]=f2)and(m[2,3]=f2)and(m[3,3]=f2)or (m[1,1]=f2)and(m[1,2]=f2)and(m[1,3]=f2)or (m[2,1]=f2)and(m[2,2]=f2)and(m[2,3]=f2)or (m[3,1]=f2)and(m[3,2]=f2)and(m[3,3]=f2)or (m[1,3]=f2)and(m[2,2]=f2)and(m[3,1]=f2)or (m[1,1]=f2)and(m[2,2]=f2)and(m[3,3]=f2) then begin gotoXY(1,8); writeln(Нолики - выйграли); readln; w:=true; e:=true; end; end; if (w=false)and(e=false)and (m[1,1]<>#0)and(m[2,1]<>#0)and(m[3,1]<>#0)and (m[2,1]<>#0)and(m[2,2]<>#0)and(m[3,2]<>#0)and (m[3,1]<>#0)and(m[2,3]<>#0)and(m[3,3]<>#0) then begin gotoXY(1,8); writeln('Ничья'); readln; e:=true; end; end; end; #72: if (whereX<=11) and (whereY-2<=6) then gotoXY(whereX,whereY-2); #75: if (whereX-4<=11) and (whereY<=6) then gotoXY(whereX-4,whereY); #77: if (whereX+4<=11) and (whereY<=6) then gotoXY(whereX+4,whereY); #80: if (whereX<=11) and (whereY+2<=6) then gotoXY(whereX,whereY+2); end; end; end; end. Сообщение отредактировано: volvo - 5.01.2005 0:54 |
![]() ![]() |
![]() |
Текстовая версия | 20.06.2025 22:52 |