Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

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

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

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

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

icq: 5311314
По умолчанию

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

icq: 5311314
По умолчанию

Код:

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 вне форума  
Закрытая тема

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
РПГ игра Принц 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


18:27.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru