Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Алгоритм решалки головоломки Fiver 
:(
    Опции темы
Toska
Дата 9.5.2007, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 9.5.2007

Репутация: нет
Всего: нет



Есть такая программа-головоломка для мобильников Fiver, мож кто знает. 
Собственно требуется помощь в написании программы которая находила бы ее решения. 

В аттаче исходник самой программы на паскале. Помогите на ее основе написать решалку. 

P.S. На паскале писал сам, может и не самое удачное решение, сильно не пинайте.

Присоединённый файл ( Кол-во скачиваний: 8 )
Присоединённый файл  FIVER.PAS 1,13 Kb
PM MAIL   Вверх
Dude03
Дата 10.5.2007, 01:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 257
Регистрация: 28.4.2006

Репутация: нет
Всего: 6



Вот быренько подправил твой код(вспомнил паскаль=)). Советую писать на паскале соблюдая регистр - так читать удобнее.
Теперь координаты считаются от левого верхнего угла вниз - Y, вправо - X.
Не злоупотребляй бессмысленной рекурсией smile   
Код

program fiver;
uses crt;
const
   ct = 5;
var   
   mas     : array[1..ct,1..ct] of integer;
   i,j,a : integer;
   x,y     : integer;

begin
   for i:= 1 to ct do
     for j:= 1 to ct do
        mas[i,j] := -1;
   while true do
   begin
      a := 0;
      ClrScr;
      for i:= 1 to ct do
      begin
     for j:= 1 to ct do
     begin
        if mas[i, j] = -1 then Write(' o')
        else
           begin
          a := a + 1;
          Write(' x');
           end;
     end;
     WriteLn;
      end;
      if a = ct * ct then
      begin
     WriteLn('You win!!!');
     ReadKey;
     Halt;
      end;
      Write('X= ');
      ReadLn(x);
      Write('Y= ');
      ReadLn(Y);
      if (x > ct) or (x < 0) or (y > ct) or (y < 0) then continue;
      mas[y, x] := mas[y, x] * -1;
      if x + 1 <= ct then mas[y, x + 1] := mas[y, x + 1] * -1;
      if x - 1 > 0 then mas[y, x - 1] := mas[y, x - 1] * -1;
      if y + 1 <= ct then mas[y + 1, x] := mas[y + 1, x] * -1;
      if y - 1 > 0 then mas[y - 1, x] := mas[y - 1, x] * -1;
   end;
end.


Это сообщение отредактировал(а) Dude03 - 10.5.2007, 01:28
PM MAIL   Вверх
Toska
  Дата 10.5.2007, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 9.5.2007

Репутация: нет
Всего: нет



Осталось написать решалку  smile 
помогите
PM MAIL   Вверх
Dude03
Дата 11.5.2007, 09:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 257
Регистрация: 28.4.2006

Репутация: нет
Всего: 6



Че-то кроме полного перебора ниче в голову не приходит=(
PM MAIL   Вверх
Toska
Дата 11.5.2007, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 9.5.2007

Репутация: нет
Всего: нет



Цитата

Че-то кроме полного перебора ниче в голову не приходит=(


Ну так на данный момент это оптимальный вариант. Я так понимаю там нужно рекурсию применять, только у  меня опыта мало.

Если знаешь как релизовать, помоги???
PM MAIL   Вверх
Toska
Дата 12.5.2007, 20:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 9.5.2007

Репутация: нет
Всего: нет



....
PM MAIL   Вверх
Dude03
Дата 17.5.2007, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 257
Регистрация: 28.4.2006

Репутация: нет
Всего: 6



Цитата(Toska @  12.5.2007,  20:28 Найти цитируемый пост)
.... 

Если не к спеху, то после 20 могу помочь, просто счас учеба поджимает smile 
PM MAIL   Вверх
Toska
Дата 17.5.2007, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 9.5.2007

Репутация: нет
Всего: нет



Dude03, 
 Давай после двадцатого smile 

Только не забудь smile 
PM MAIL   Вверх
Toska
Дата 9.10.2007, 23:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 9.5.2007

Репутация: нет
Всего: нет



up smile 
PM MAIL   Вверх
Ofer
Дата 13.10.2007, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 293
Регистрация: 15.10.2006
Где: КривбаСС

Репутация: нет
Всего: 5



Не мешало бы правила игры узнать :-[

PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0497 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.