
17.06.2009, 22:16
|
|
Постоянный
Регистрация: 05.07.2008
Сообщений: 555
С нами:
9394886
Репутация:
1467
|
|
Сообщение от root_sashok
народ, помогите пожалуйста, нужно до пятницы. паскаль.
вот исходник, компьютер вроде всегда выигрывает....
var
x,y,n,r: integer;
c: char;
flug: boolean;
function check(x,y:integer):byte;
begin
IF ((sqr(x+3)+sqr(y)) > 144) then
begin
check:=1;
exit;
end
else
begin
IF ((sqr(x)+sqr(y+2)) > 144) then
begin
check:=2;
exit;
end
else
begin
IF ((sqr(x)+sqr(y+4)) > 144) then
begin
check:=3;
exit;
end
else
begin
check:=0;
end;
end;
end;
end;
begin
x:=3;
y:=2;
flug:=false;
Writeln('Начальные точки Х=',x,' Y=',y );
while (flug=false) do
begin
r:=check(x,y);
If r<>0 then
begin
Case r of
1:
begin
x:=x+3;
Writeln('Ход ПК X=',x,' Y=',y);
Writeln('ПК ВЫИГРАЛ!');
end;
2:
begin
y:=y+2;
Writeln('Ход ПК X=',x,' Y=',y);
Writeln('ПК ВЫИГРАЛ!');
end;
3:
begin
y:=y+4;
Writeln('Ход ПК X=',x,' Y=',y);
Writeln('ПК ВЫИГРАЛ!');
end;
end;
flug:=true;
end
else
{--------------------------------Начало--------------------------------------}
if (sqr(x+3)+sqr(y)) > (sqr(x)+sqr(y+2)) then
begin
if check(x+3,y)=0 then
begin
y:=y+2;
Writeln('Ход ПК X=',x,' Y=',y);
end
else
begin
If check(x,y+2)=0 then
begin
y:=y+4;
Writeln('Ход ПК X=',x,' Y=',y);
end
else
begin
IF check(x,y+4)=0 then
begin
x:=x+3;
Writeln('Ход ПК X=',x,' Y=',y);
end
else
begin
Writeln('ПК ПРОИГРАЛ!');
flug:=true;
end;
end;
end;
end
else
begin
if check(x+3,y)=0 then
begin
x:=x+3;
Writeln('Ход ПК X=',x,' Y=',y);
end
else
begin
If check(x,y+2)=0 then
begin
y:=y+2;
Writeln('Ход ПК X=',x,' Y=',y);
end
else
begin
IF check(x,y+4)=0 then
begin
y:=y+4;
Writeln('Ход ПК X=',x,' Y=',y);
end
else
begin
Writeln('ПК ПРОИГРАЛ!');
flug:=true;
end;
end;
end;
end;
{-----------------------------Конец------------------------------------------}
if flug<>true then
begin
repeat
Write('Ход ( 1=(x+3,y) 2=(x,y+2) 3=(x,y+4) ) ');
Readln(c);
Until ((c='1') or (c='2') or (c='3')) ;
case c of
'1':
begin;
x:=x+3;
Writeln('Ход игрока X=',x,' Y=',y);
end;
'2':
begin
y:=y+2;
Writeln('Ход игрока X=',x,' Y=',y);
end;
'3':
begin
y:=y+4;
Writeln('Ход игрока X=',x,' Y=',y);
end;
end;
end;
end;
Write('Для выхода надмите ENTER');
Readln;
end.
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|