|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Oleg Khovayko 2:5020/400 05 Nov 2002 07:30:50 To : Oleg Khovayko Subject : Re: Вот вам и кyбик.. . -------------------------------------------------------------------------------- Oleg Khovayko wrote: > Завтра поправлю и опубликую исправленую версию. Вот, ниже - исправленая версия. Извините за недоделку в пред. версии. Что ни говори, а надо отучаться от привычки начинать писать демо-программы, подобные этой, за 15 минут до конца рабочего дня. Простите за доставленые пред. версией неудобства. Hиже - исправленая и вроде как рабочая версия: /*----------------------------------------------------*/ #include <stdio.h> #include <stdlib.h> #include <memory.h> #define M 100 #define N 200 int glued_Y[] = { 0, 2, 1, -1 }; int glued_X[] = { 1, 1, 3, -1 }; /*----------------------------------------------------*/ char SQ[M][N]; char Cube_Step[4][6] = { { 2, 1, 5, 3, 0, 4 }, { 3, 0, 2, 5, 4, 1 }, { 4, 1, 0, 3, 5, 2 }, { 1, 5, 2, 0, 4, 3 } }; char X_Step[] = { 0, 1, 0, -1 }; char Y_Step[] = { 1, 0, -1, 0 }; /*----------------------------------------------------*/ void step(int y, int x, const char in_cube) { int dir; char mask = 1 << in_cube; if((x|y) < 0 || y >= M || x >= N || SQ[y][x] & mask || in_cube == 5) return; SQ[y][x] |= mask; if(SQ[M-1][N-1] == 0) for(dir = 0; dir < 4; dir++) step(y + Y_Step[dir], x + X_Step[dir], Cube_Step[dir][in_cube]); } /* step */ /*----------------------------------------------------*/ void main() { int i; memset(&SQ, 0, M * N); for(i = 0; glued_X[i] >= 0; i++) SQ[glued_Y[i]][glued_X[i]] = -1; step(0, 0, 0); puts(SQ[M-1][N-1]? "Found way\n" : "No ways\n"); } --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/54887b5cbbe1.html, оценка из 5, голосов 10
|