Главная страница


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Andrew Ezhguroff                     2:5020/400     22 Jul 2002  23:36:56
 To : Roman Zhelnov
 Subject : Re: Обход доски шахматным конем
 -------------------------------------------------------------------------------- 
 
 Привет! "Roman Zhelnov" <Roman.Zhelnov@p29.f25.n5053.z2.fidonet.org>
 сообщил(а):
 
  RZ>   Интересует алгоритм обхода доски шахматным конем. Hа одну клетку
  RZ> можно вставать только один раз...
 
 Если в лоб и рекурсивно, то, например, так:
 
 #include <stdio.h>
 
 #define Len 8
 
 char Tab[Len][Len];
 char Res[Len*Len][3];
 
 int Gen(int X, int Y, int Num){
   if(X<0||X>=Len||Y<0||Y>=Len||Tab[X][Y])return 0;
   Tab[X][Y]=1;
   if((++Num==Len*Len)||
      Gen(X-1, Y-2, Num)||Gen(X-1, Y+2, Num)||
      Gen(X+1, Y-2, Num)||Gen(X+1, Y+2, Num)||
      Gen(X-2, Y-1, Num)||Gen(X-2, Y+1, Num)||
      Gen(X+2, Y-1, Num)||Gen(X+2, Y+1, Num)){
     Res[--Num][0]=X+'A';
     Res[  Num][1]=Y+'1';
     return 1;
   }
   Tab[X][Y]=0;
   return 0;
 }
 
 int main(void){
   if(Gen(0, 0, 0)){
     for(int i=0; i<Len*Len; i++)printf("%3s", Res[i]);
   }else{
     printf("Ответа нет");
   }
 }
 
 С уважением, Андрей.
 -- 
 Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru
 --- ifmail v.2.15dev5
  * Origin: Talk.Mail.Ru (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: Обход доски шахматным конем   Andrew Ezhguroff   22 Jul 2002 23:36:56 
 Крах надежд... // Re: Обход доски шахматным конем   Dmitriy K.   25 Jul 2002 02:25:28 
 Обход доски шахматным конем   Michael Spector   23 Sep 2002 16:10:08 
Архивное /ru.algorithms/6488204d802c.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional