IPB
ЛогинПароль:

> Две лисы и 20 кур
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 3
Пол: Мужской

Репутация: -  0  +


На поле указанной формы находятся две лисы и 20 кур



Л Л
К К К К К К К
К К К К К К К
К К К
К К К
Куры могут перемещаться на один шаг вверх, влево или вправо, но не назад и не по диагонали. Лисы могут перемещаться на один шаг влево, вправо, вверх и вниз. Лиса может съесть курицу, как в игре в шашки: если в горизонтальном или вертикальном направлении за курицей на один шаг следует свободное поле, то лиса перепрыгивает через курицу и ест ее. Лисы всегда обязаны есть, и когда у них бывает выбор, они обязаны осуществить "наиболее длинное поедание". Если два приема пищи имеют одинаковую длину – выбирается любой из них.
Необходимо написать программу, играющую за лис. Игрок перемещает кур. Партнеры играют по очереди, причем куры начинают. Они выигрывают партию, если девяти из них удается занять 9 полей, образующих верхний квадрат поля. Лисы выигрывают, если им удается съесть 12 кур, т.к. в этом случае будет недостаточно оставшихся кур, чтобы занять 9 верхних полей.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2





Группа: Пользователи
Сообщений: 1
Пол: Мужской
Реальное имя: Данияр

Репутация: -  0  +


У меня такая же тема по курсовому! Тока мне надо написать ее на Паскале ABC. Помогите плиз!!! Я уже начало сделал, но есть ошибки и недоработки...


Далее код...

uses abcobjects,Events,vcl;

VAR
I,J,D,n,nomer,x,y,x1,x2,x3,nom,ChisloSyedennyhKur:integer;
Object:ObjectABC; Kury,Lisy:array[1..20,1..20] of ObjectABC; txt: TextABC;


procedure MOVE;
Begin
writeln('Введите номер курицы, которую вы хотели передвинуть');
readln(nomer);
writeln('Нажатием стрелки, укажите ход');
readln(nomer);
For I:=1 to 9 do begin
For J:=1 to 8 do begin
If nomer=Kury[I,J].number then writeln('---');
end; end;
End;


procedure RASKLAD;
Begin
y:=0; nom:=0;
For I:=1 to 9 do begin x:=0;
For J:=1 to 8 do begin
If ((y>=200) and (y<=250) and (x<=300)) or ((y>=250) and (y<=350) and (x>=100) and (x<=200)) then begin
nom:=nom+1;
Kury[I,J]:=PictureABC.Create(x,y,'c:\22.gif');
Kury[I,J].Tofront;
Kury[I,J].number:=nom; end;
If ((x=100) or (x=200)) and (y=150) then begin
Lisy[I,J]:=PictureABC.Create(x,y,'c:\11.gif'); Lisy[I,J].Tofront;
end; x:=x+50; end; y:=y+50; end;
MOVE;
End;

procedure SOZDANIE_Polya;
Begin;
y:=50;
For I:=1 to 2 do begin x:=100;
For J:=1 to 3 do begin
object:=CreateSquareABC(x,y,50,claqua);
Object.Toback;
x:=x+50; end;
y:=y+50; end;
y:=150;
For I:=1 to 3 do begin x:=0;
For J:=1 to 7 do begin
object:=CreateSquareABC(x,y,50,claqua);
Object.Toback;
x:=x+50; end;
y:=y+50; end;
y:=300;
For I:=1 to 2 do begin x:=100;
For J:=1 to 3 do begin
object:=CreateSquareABC(x,y,50,claqua);
Object.Toback;
x:=x+50; end;
y:=y+50; end;
RASKLAD;
End;



begin
SetWindowCaption('Игра "2 лисы и 20 куриц"');
SetWindowWidth(400);
SetWindowHeight(450);
SOZDANIE_Polya;
txt:=TextABC.Create(10,WindowHeight-30,14,clRed,'Съеденных кур: 0'); {txt.Text:='Съеденных кур: '+IntToStr(ChisloSyedennyhKur);}
end.


P.S. 11-рисунок лисы, 22 - курицы.


Сообщение отредактировано: Дан4ик -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 26.04.2024 5:56
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name