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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 13.06.2007, 17:54   #1
[LOL]
 
Регистрация: 13.06.2007
Сообщений: 4
По умолчанию Игра

Имеется восемь кружков. Их начальное положение показано на рисунке.
(посередине — пустое поле). Цель игрока: поменять местами белые и черные фишки за наименьшее число ходов. Любую фишку можно перемещать только на пустое соседнее поле или же через одно занятое поле, опять-таки в пустое. Переводить фишки в другое место нельзя. На любом поле может находиться только одна фишка.

З.Ы. Программа на Delphi
Изображения
Тип файла: jpg 123.jpg (14.7 Кб, 172 просмотров)

Последний раз редактировалось [LOL]; 13.06.2007 в 18:04.
[LOL] вне форума
Старый 13.06.2007, 18:15   #2
AVer
Андрей
Форумчанин
 
Аватар для AVer
 
Регистрация: 21.11.2006
Сообщений: 457
По умолчанию

Ok. Задача несложная. Основные функции счас напишу, а вот графический интерфейс, извиняйте - за вами...
ICQ: 5311314
[SIGPIC][/SIGPIC]
AVer вне форума
Старый 13.06.2007, 18:36   #3
AVer
Андрей
Форумчанин
 
Аватар для AVer
 
Регистрация: 21.11.2006
Сообщений: 457
По умолчанию

Код:
Type MRound = (Black, White, None);

Var Pole:Array[1..9] of MRound;

Procedure NewGame;
Var I:Integer;
Begin
For I:=1 to 4 Do
Pole[I]:=Black;
For I:=6 to 9 Do
Pole[I]:=White;
Pole[5]:=None;
End;

Function Move(N:Integer):Boolean;
Var B:Boolean;
Begin
If (Pole[N+1] = None) or (Pole[N+1] = None) or (Pole[N+2] = None) or (Pole[N-2] = None) Then
B:=True Else B:=False;
If B Then
 Begin
 If Pole[N+1] = None Then
  Begin
  Pole[N+1]:=Pole[N];
  Pole[N]:=None;
  End Else
 If Pole[N+2] = None Then
  Begin
  Pole[N+2]:=Pole[N];
  Pole[N]:=None;
  End Else
 If Pole[N-1] = None Then
  Begin
  Pole[N-1]:=Pole[N];
  Pole[N]:=None;
  End Else
 If Pole[N-2] = None Then
  Begin
  Pole[N-2]:=Pole[N];
  Pole[N]:=None;
  End;
 End;
Move:=B;
End;

Function Win:Boolean;
Begin
If (Pole[1] = White) and
   (Pole[2] = White) and
   (Pole[3] = White) and
   (Pole[4] = White) and
   (Pole[6] = Black) and
   (Pole[7] = Black) and
   (Pole[8] = Black) and
   (Pole[9] = Black) Then
Win:=True Else Win:=False;
End;
NewGame - Процедура, расставляющая все фишки в начальное положение.
Move(N) - Функция, переставляющая фишку. Если перестановка невозможна возвращает False.
Win - Функция, проверяющая выйграл ли игрок. Если да, возвращает True. Выполняется после каждого хода (Функции Move(N)). Перед ней нужно использовать счетчик ходов.


-----

Получил помощь. Тема закрыта.
ICQ: 5311314
[SIGPIC][/SIGPIC]

Последний раз редактировалось AVer; 13.06.2007 в 21:26.
AVer вне форума
Закрытая тема


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
РПГ игра Принц Gamedev - cоздание игр: Unity, OpenGL, DirectX 4 10.06.2008 15:57
tcp и игра ben95 Работа с сетью в Delphi 3 16.04.2008 21:40
Игра на Паскале! Guar Помощь студентам 6 14.10.2007 00:20
игра S.T.A.L.K.E.R. rpy3uH Свободное общение 7 10.04.2007 00:17