| is1988 |
11.03.2008 2:46
Сообщение
#1
|
|
Группа: Пользователи Сообщений: 3 Пол: Мужской Репутация: 0 |
На поле указанной формы находятся две лисы и 20 кур
Л Л К К К К К К К К К К К К К К К К К К К К Куры могут перемещаться на один шаг вверх, влево или вправо, но не назад и не по диагонали. Лисы могут перемещаться на один шаг влево, вправо, вверх и вниз. Лиса может съесть курицу, как в игре в шашки: если в горизонтальном или вертикальном направлении за курицей на один шаг следует свободное поле, то лиса перепрыгивает через курицу и ест ее. Лисы всегда обязаны есть, и когда у них бывает выбор, они обязаны осуществить "наиболее длинное поедание". Если два приема пищи имеют одинаковую длину – выбирается любой из них. Необходимо написать программу, играющую за лис. Игрок перемещает кур. Партнеры играют по очереди, причем куры начинают. Они выигрывают партию, если девяти из них удается занять 9 полей, образующих верхний квадрат поля. Лисы выигрывают, если им удается съесть 12 кур, т.к. в этом случае будет недостаточно оставшихся кур, чтобы занять 9 верхних полей. |
![]() ![]() |
| Дан4ик |
26.12.2011 19:45
Сообщение
#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ик - 26.12.2011 19:48 |
is1988 Две лисы и 20 кур 11.03.2008 2:46
Michael_Rybak очень хорошо. и что дальше? :) 13.03.2008 18:50
is1988 Нужно решить и оформить в DELPHI!!!... 19.03.2008 7:36
feniks25
Нужно решить и оформить в DELPHI!!!... 19.03.2008 9:43
Гость Теги !!!
//----------------------... 8.04.2008 1:04
klem4
Переделывай ... Думаешь найдешь дурачка, котором... 8.04.2008 7:25![]() ![]() |
|
Текстовая версия | 8.12.2025 19:06 |