![]() |
![]() |
is1988 |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 3 Пол: Мужской Репутация: ![]() ![]() ![]() |
На поле указанной формы находятся две лисы и 20 кур
Л Л К К К К К К К К К К К К К К К К К К К К Куры могут перемещаться на один шаг вверх, влево или вправо, но не назад и не по диагонали. Лисы могут перемещаться на один шаг влево, вправо, вверх и вниз. Лиса может съесть курицу, как в игре в шашки: если в горизонтальном или вертикальном направлении за курицей на один шаг следует свободное поле, то лиса перепрыгивает через курицу и ест ее. Лисы всегда обязаны есть, и когда у них бывает выбор, они обязаны осуществить "наиболее длинное поедание". Если два приема пищи имеют одинаковую длину – выбирается любой из них. Необходимо написать программу, играющую за лис. Игрок перемещает кур. Партнеры играют по очереди, причем куры начинают. Они выигрывают партию, если девяти из них удается занять 9 полей, образующих верхний квадрат поля. Лисы выигрывают, если им удается съесть 12 кур, т.к. в этом случае будет недостаточно оставшихся кур, чтобы занять 9 верхних полей. |
![]() ![]() |
Дан4ик |
![]()
Сообщение
#2
|
Группа: Пользователи Сообщений: 1 Пол: Мужской Реальное имя: Данияр Репутация: ![]() ![]() ![]() |
У меня такая же тема по курсовому! Тока мне надо написать ее на Паскале 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ик - 26.12.2011 19:48 |
![]() ![]() |
![]() |
Текстовая версия | 23.06.2025 8:20 |