Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.08.2011, 00:40   #1
X_ALONE_X
 
Регистрация: 24.08.2011
Сообщений: 8
По умолчанию Ошибка в коде

Помогите найти ошибку в коде. Написал код, что-то вроде игры крестики-нолики, но в операторе case при нажатии на кнопку enter(#13), должен появиться крестик, но он не появляется. Вот код:

Код:
program igra;
uses crt, graph;
var mas:array[1..3,1..3] of integer;
x,y:integer;
key:char;

procedure zapoln(i,j:integer);
begin
for i:=1 to 3 do
for j:=1 to 3 do
begin
gotoxy(x*2,y*2);
textcolor(3);
if (mas[i,j]=2) then write('O');
textcolor(2);
if (mas[i,j]=1) then write('X');
if (mas[i,j]=0) then write(' ');
end;
end;

begin
clrscr;
x:=1;
y:=1;

writeln('/-----\');
writeln('| | | |');
writeln('|-----|');
writeln('| | | |');
writeln('|-----|');
writeln('| | | |');
writeln('\-----/');

gotoxy(x*2,y*2);
textcolor(1);
write('X');

while key<>#27 do

begin
key:=readkey;

case key of
#72:if y>1 then
begin
zapoln(x,y);
y:=y-1;
gotoxy(x*2,y*2);
textcolor(4);
write('X');
end;

#77:if x<3 then
begin
zapoln(x,y);
x:=x+1;
gotoxy(x*2,y*2);
textcolor(4);
write('X');
end;

#75:if x>1 then
begin
zapoln(x,y);
x:=x-1;
gotoxy(x*2,y*2);
textcolor(4);
write('X');
end;

#80:if y<3 then
begin
zapoln(x,y);
y:=y+1;
gotoxy(x*2,y*2);
textcolor(4);
write('X');
end;

#13:if (mas[x,y]=0) then
mas[x,y]:=1;

end;
end;
end.

________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.
Вложения
Тип файла: txt IGRA.txt (1.1 Кб, 123 просмотров)

Последний раз редактировалось Serge_Bliznykov; 24.08.2011 в 07:40.
X_ALONE_X вне форума Ответить с цитированием
Старый 24.08.2011, 03:06   #2
Lesha
Форумчанин
 
Аватар для Lesha
 
Регистрация: 30.01.2009
Сообщений: 418
По умолчанию

Код:
program igra;
uses crt {, graph} ;
var mas:array[1..3,1..3] of integer;
x,y,i,j:integer;
key:char;
turn : boolean;

procedure zapoln(zn:byte);
begin
for i:=1 to 3 do 
	for j:=1 to 3 do begin
		gotoxy(x*2,y*2);
		textcolor(3);
		if (zn=2) then write('O');
		textcolor(2);
		if (zn=1) then write('X');
		if (zn=0) then write(' ');
	end;
end;

function xOrOchar(turn: boolean):char;
begin
	if turn then xOrOchar:='X' else xOrOchar:='O';
end;

BEGIN { start program }
clrscr;
x:=1;
y:=1;
turn:=true;
for i:=1 to 3 do 
	for j:=1 to 3 do mas[i][j]:=0;

writeln('/-----\');
writeln('| | | |');
writeln('|-----|');
writeln('| | | |');
writeln('|-----|');
writeln('| | | |');
writeln('\-----/');

gotoxy(x*2,y*2);
textcolor(1);
write('X');

while key<>#27 do begin
	key:=readkey;
	case key of
	#72: if y>1 then begin
		zapoln(mas[x][y]);
		y:=y-1;
		gotoxy(x*2,y*2);
		textcolor(4);
		write(xOrOchar(turn));
	end;
	#77: if x<3 then begin
		zapoln(mas[x][y]);
		x:=x+1;
		gotoxy(x*2,y*2);
		textcolor(4);
		write(xOrOchar(turn));
	end;
	#75: if x>1 then begin
		zapoln(mas[x][y]);
		x:=x-1;
		gotoxy(x*2,y*2);
		textcolor(4);
		write(xOrOchar(turn));
	end;
	#80: if y<3 then begin
		zapoln(mas[x][y]);
		y:=y+1;
		gotoxy(x*2,y*2);
		textcolor(4);
		write(xOrOchar(turn));
	end;
	#13: if (mas[x][y]=0) then begin
			if turn then mas[x][y]:=1 else mas[x][y]:=2;
			turn:=not turn;
		end;
	end; { end case }
end; {end while }
end.

Последний раз редактировалось Lesha; 24.08.2011 в 03:10.
Lesha вне форума Ответить с цитированием
Старый 24.08.2011, 18:40   #3
X_ALONE_X
 
Регистрация: 24.08.2011
Сообщений: 8
По умолчанию

Спасибо. Понял свои ошибки.
X_ALONE_X вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ошибка в коде Антон Лысенко Помощь студентам 1 24.02.2011 07:17
Ошибка в коде, ошибка в css или это проблема с совместимостью с браузерами? ankris HTML и CSS 5 23.11.2010 16:58
ошибка в коде? Darkdog Microsoft Office Excel 12 27.02.2010 06:47
ошибка в коде Си Misha_M. Помощь студентам 2 05.02.2010 15:41
Ошибка в коде.. NSvirus PHP 4 14.10.2009 22:57