Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Object Pascal: кроссплатформенные технологии > Алгоритм решалки головоломки Fiver


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

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

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

Автор: Dude03 10.5.2007, 01:09
Вот быренько подправил твой код(вспомнил паскаль=)). Советую писать на паскале соблюдая регистр - так читать удобнее.
Теперь координаты считаются от левого верхнего угла вниз - 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.

Автор: Toska 10.5.2007, 21:54
Осталось написать решалку  smile 
помогите

Автор: Dude03 11.5.2007, 09:54
Че-то кроме полного перебора ниче в голову не приходит=(

Автор: Toska 11.5.2007, 12:36
Цитата

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


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

Если знаешь как релизовать, помоги???

Автор: Toska 12.5.2007, 20:28
....

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

Если не к спеху, то после 20 могу помочь, просто счас учеба поджимает smile 

Автор: Toska 17.5.2007, 21:19
Dude03, 
 Давай после двадцатого smile 

Только не забудь smile 

Автор: Toska 9.10.2007, 23:10
up smile 

Автор: Ofer 13.10.2007, 14:42
Не мешало бы правила игры узнать :-[

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)