/********************************************************************* * * * FLY * * --E#Y#E-- * * ===MUSCLE=== * * * *********************************************************************/ /* Header Files */ #include "point.h" //#define FORD /* Knoten */ #define SET 15 #define SETUP 25 /* Kanten */ #define CAN 12 #define KAN 56 /* Move */ #define WMOV 25 #define FMOV 9 /* City */ #define A (1<<0) #define B (1<<1) #define C (1<<2) #define D (1<<3) #define E (1<<4) #define F (1<<5) #define G (1<<6) #define H (1<<7) #define I (1<<8) #define J (1<<9) #define K (1<<10) #define L (1<<11) #define M (1<<12) #define N (1<<13) #define O (1<<14) #define P (1<<15) #define Q (1<<16) #define R (1<<17) #define S (1<<18) #define T (1<<19) #define U (1<<20) #define V (1<<21) #define W (1<<22) #define X (1<<23) #define Y (1<<24) #define Z (1<<25) #define xxx 5000 //--------------------------------------------------------------------------- /* Hamilton Matrix */ unsigned int sat[SETUP][SETUP] = { {0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0}, {1,0,1,1,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0}, {0,1,1,0,1,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0}, {0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0}, {1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0}, {0,1,0,0,0,0,1,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0}, {0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0}, {0,1,0,1,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,1,0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,1,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0}, {1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0}, {0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,1,0,0,0}, {0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0}, {0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,1,1,0,0,1,0}, {0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,1,0,1,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,1,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0}}; //--------------------------------------------------------------------------- /* Circle Matrix */ unsigned int circ[SETUP][SETUP] = { /* A B C D E F G H I J K L M N O P Q R S T U V W X Y */ { 0,xxx,xxx,xxx,104,105,xxx,xxx,108,109,110,111,112,113,114,xxx,xxx,117,xxx,119,120,121,122,123,124}, {xxx, 0,xxx,xxx,204,205,xxx,xxx,208,209,210,211,212,213,214,xxx,xxx,217,xxx,219,xxx,xxx,222,xxx,224}, {xxx,xxx, 0,xxx,304,305,xxx,xxx,308,309,xxx,xxx,312,xxx,314,xxx,xxx,317,xxx,319,320,321,322,323,324}, {xxx,xxx,xxx, 0,404,405,xxx,xxx,xxx,xxx,410,411,412,413,414,xxx,xxx,417,xxx,xxx,420,421,422,423,424}, {104,204,304,404, 0,505,xxx,xxx,xxx,xxx,510,511,512,513,514,xxx,xxx,517,xxx,xxx,xxx,xxx,522,xxx,xxx}, {105,205,305,405,505, 0,xxx,xxx,xxx,xxx,xxx,xxx,612,xxx,xxx,xxx,xxx,617,xxx,xxx,620,621,622,623,624}, {xxx,xxx,xxx,xxx,xxx,xxx, 0,xxx,708,709,710,711,712,713,714,xxx,xxx,xxx,xxx,719,720,721,722,723,724}, {xxx,xxx,xxx,xxx,xxx,xxx,xxx, 0,808,809,810,811,812,813,814,xxx,xxx,xxx,xxx,819,xxx,xxx,xxx,xxx,824}, {108,208,308,xxx,xxx,xxx,708,808, 0,909,xxx,xxx,xxx,xxx,914,xxx,xxx,xxx,xxx,919,920,921,922,923,924}, {109,209,309,xxx,xxx,xxx,709,809,909, 0,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx}, {110,210,xxx,410,510,xxx,710,810,xxx,xxx, 0,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx}, {111,211,xxx,411,511,xxx,711,811,xxx,xxx,xxx, 0,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx}, {112,212,312,412,512,612,712,812,xxx,xxx,xxx,xxx, 0,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx}, {113,213,xxx,413,513,xxx,713,813,xxx,xxx,xxx,xxx,xxx, 0,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx}, {114,214,314,414,514,xxx,714,814,914,xxx,xxx,xxx,xxx,xxx, 0,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx}, {xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx, 0,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx}, {xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx, 0,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx}, {117,217,317,417,517,617,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx, 0,xxx,xxx,xxx,xxx,xxx,xxx,xxx}, {xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx, 0,xxx,xxx,xxx,xxx,xxx,xxx}, {119,219,319,xxx,xxx,xxx,719,819,919,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx, 0,xxx,xxx,xxx,xxx,xxx}, {120,xxx,320,420,520,620,720,xxx,920,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx, 0,xxx,xxx,xxx,xxx}, {121,xxx,321,421,521,621,721,xxx,921,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx, 0,xxx,xxx,xxx}, {122,222,323,422,522,622,722,xxx,922,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx, 0,xxx,xxx}, {123,xxx,323,423,523,623,723,xxx,923,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx, 0,xxx}, {124,224,324,424,xxx,624,724,824,924,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx, 0}}; /* 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 */ //--------------------------------------------------------------------------- /* Weg Matrix int weg[SETUP] = { 0x41,0x42,0x43,0x44,0x45, 0x46,0x47,0x48,0x49,0x4A, 0x4B,0x4C,0x4D,0x4E,0x4F, 0x50,0x51,0x52,0x53,0x54, 0x55,0x56,0x57,0x58,0x59 };*/ /* Weg Matrix */ char weg[SETUP] = { 'A','B','C','D','E', 'F','G','H','I','J', 'K','L','M','N','O', 'P','Q','R','S','T', 'U','V','W','X','Y' }; /* Weg Matrix char *weg[SETUP] = { "A","B","C","D","E", "F","G","H","I","J", "K","L","M","N","O", "P","Q","R","S","T", "U","V","W","X","Y"};*/ //--------------------------------------------------------------------------- unsigned int way[SETUP][SETUP] = { /* A B C D E F G H I J K L M N O P Q R S T U V W X Y */ { 0,205,210,xxx,xxx,xxx,215,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,220,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx}, {205, 0,225,230,xxx,xxx,235,240,xxx,xxx,245,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx}, {210,225, 0,250,255,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,260,265,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx}, {xxx,230,250, 0,270,275,xxx,xxx,xxx,xxx,280,285,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx}, {xxx,xxx,255,270, 0,290,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,295,300,xxx,xxx,xxx,xxx,xxx,xxx,xxx}, {xxx,xxx,xxx,275,290, 0,xxx,xxx,xxx,xxx,xxx,305,310,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx}, {215,235,xxx,xxx,xxx,xxx, 0,315,320,xxx,xxx,xxx,xxx,xxx,xxx,325,xxx,xxx,330,xxx,xxx,xxx,xxx,xxx,xxx}, {xxx,240,xxx,xxx,xxx,xxx,315, 0,335,340,345,xxx,xxx,350,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx}, {xxx,xxx,xxx,xxx,xxx,xxx,320,335, 0,355,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,360,365,xxx,xxx,xxx,xxx,xxx}, {xxx,xxx,xxx,xxx,xxx,xxx,xxx,340,355, 0,xxx,xxx,xxx,370,375,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx}, {xxx,245,xxx,280,xxx,xxx,xxx,345,xxx,xxx, 0,380,xxx,385,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx}, {xxx,xxx,xxx,285,xxx,305,xxx,xxx,xxx,xxx,380, 0,390,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx}, {xxx,xxx,xxx,xxx,xxx,310,xxx,xxx,xxx,xxx,xxx,390, 0,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx}, {xxx,xxx,xxx,xxx,xxx,xxx,xxx,350,xxx,370,385,xxx,xxx, 0,395,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx}, {xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,375,xxx,xxx,xxx,395, 0,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx}, {220,xxx,260,xxx,xxx,xxx,325,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx, 0,400,xxx,405,xxx,410,xxx,xxx,xxx,xxx}, {xxx,xxx,265,xxx,295,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,400, 0,415,xxx,xxx,420,425,xxx,xxx,xxx}, {xxx,xxx,xxx,xxx,300,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,415, 0,xxx,xxx,xxx,430,435,xxx,xxx}, {xxx,xxx,xxx,xxx,xxx,xxx,330,xxx,360,xxx,xxx,xxx,xxx,xxx,xxx,405,xxx,xxx, 0,440,445,xxx,xxx,450,xxx}, {xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,365,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,440, 0,xxx,xxx,xxx,455,460}, {xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,410,420,xxx,445,xxx, 0,465,xxx,470,xxx}, {xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,425,430,xxx,xxx,465, 0,475,xxx,xxx}, {xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,435,xxx,xxx,xxx,475, 0,xxx,xxx}, {xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,450,455,470,xxx,xxx, 0,480}, {xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,460,xxx,xxx,xxx,480, 0}}; /* 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 */ //--------------------------------------------------------------------------- /* Flaeche Matrix int flaeche[SETUP] = { 0x31,0x32,0x33,0x34,0x35, 0x36,0x37,0x38,0x39,0x30, 0x31,0x32,0x33,0x34,0x35, 0x36,0x37,0x38,0x39,0x30, 0x31,0x32,0x33,0x34,0x35 };*/ /* Flaeche Matrix */ char flaeche[SETUP] = { '1','2','3','4','5', '6','7','8','9','0', '1','2','3','4','5', '6','7','8','9','0', '1','2','3','4','5' }; /* Flaeche Matrix char *flaeche[SETUP] = { "01","02","03","04","05", "06","07","08","09","10", "11","12","13","14","15", "16","17","18","19","20", "21","22","23","24","25"};*/ //--------------------------------------------------------------------------- unsigned int fla[SETUP][SETUP] = { /* A B C D E F G H I J K L M N O P Q R S T U V W X Y */ { 0,805,810,815,xxx,xxx,820,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx}, {805, 0,xxx,xxx,825,xxx,xxx,830,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx}, {810,xxx, 0,xxx,xxx,835,xxx,xxx,840,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx}, {815,xxx,xxx, 0,845,850,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx}, {xxx,825,xxx,845, 0,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx}, {xxx,xxx,835,850,xxx, 0,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx}, {820,xxx,xxx,xxx,xxx,xxx, 0,855,860,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx}, {xxx,830,xxx,xxx,xxx,xxx,855, 0,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx}, {xxx,xxx,840,xxx,xxx,xxx,860,xxx, 0,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx}, {xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx, 0,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx}, {xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx, 0,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx}, {xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx, 0,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx}, {xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx, 0,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx}, {xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx, 0,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx}, {xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx, 0,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx}, {xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx, 0,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx}, {xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx, 0,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx}, {xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx, 0,xxx,xxx,xxx,xxx,xxx,xxx,xxx}, {xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx, 0,xxx,xxx,xxx,xxx,xxx,xxx}, {xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx, 0,xxx,xxx,xxx,xxx,xxx}, {xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx, 0,xxx,xxx,xxx,xxx}, {xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx, 0,xxx,xxx,xxx}, {xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx, 0,xxx,xxx}, {xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx, 0,xxx}, {xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx, 0}}; /* 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 */ //--------------------------------------------------------------------------- struct knoten { int von; int nach; int zpkt; unsigned int way; unsigned int fla; unsigned int circ; char success; }; /* Ford */ int KANTEN; struct knoten board1[SETUP*SETUP]; struct knoten board2[SETUP*SETUP]; struct knoten board3[SETUP*SETUP]; /* Matrix */ int matrix[SETUP][SETUP]; /* Counter */ unsigned int count = 1; //--------------------------------------------------------------------------- /* Info */ void LEO::print_info() { int z, s; for( z = 0; z < SETUP; z++) { for( s = 0; s < SETUP; s++) { /* Matrix */ matrix[s][SET] = weg[s]; matrix[SET][z] = flaeche[z]; //printf( "%2c%c ",matrix[s][SET],matrix[SET][z]); /* Info */ //printf( "%4d ",way[z][s]); //printf( "%4d ",fla[z][s]); //printf( "%4d ",circ[z][s]); } //printf("\n"); } //printf("\n"); } //--------------------------------------------------------------------------- /* Cord Point */ void LEO::point_Cord(int pointA, int pointX) { int von; /* Ford */ for( von = 0; von < SETUP; von++) { /* Weg */ board1[von].success = 0; board1[von].way = way[pointA][von]; board1[von].zpkt = pointA; /* Flaeche */ board2[von].success = 0; board2[von].fla = fla[pointX][von]; board2[von].zpkt = pointX; /* Circle */ board3[von].success = 0; board3[von].circ = circ[pointA][von]; board3[von].zpkt = pointA; } /* Ford Point */ board1[pointA].success = 1; board1[pointA].zpkt = -1; board3[pointA].success = 1; board3[pointA].zpkt = -1; board2[pointX].success = 1; board2[pointX].zpkt = -1; } //--------------------------------------------------------------------------- /* Cord Init */ void LEO::init_Cord() { int von, nach, sav, kan; for( von = kan = 0; von < SETUP; von++) { for( nach = 0; nach < SETUP; nach++) { /* Ford Weg */ sav = way[von][nach]; if(( sav > 0) && (sav < xxx)) { board1[kan].way = sav; board1[kan].von = von; board1[kan].nach = nach; } /* Ford Circle */ sav = circ[von][nach]; if(( sav > 0) && (sav < xxx)) { board3[kan].circ = sav; board3[kan].von = von; board3[kan].nach = nach; } /* Ford Flaeche */ sav = fla[von][nach]; if(( sav > 0) && (sav < xxx)) { board2[kan].fla = sav; board2[kan].von = von; board2[kan].nach = nach; } kan++; } KANTEN = kan; } } //--------------------------------------------------------------------------- /* Cord */ int LEO::make_Cord(int pointA, int pointX) { int von, nach, zpkt, stop; unsigned int sav; point_Cord(pointA, pointX); for( stop = 0; !stop;) { stop = 1; for( zpkt = 0; zpkt < KANTEN; zpkt++) { /* Weg */ von = board1[zpkt].von; nach = board1[zpkt].nach; sav = board1[von].way + board1[zpkt].way; if( sav < board1[nach].way) { board1[nach].way = sav; board1[nach].zpkt = von; stop = 0; } /* Circle */ von = board3[zpkt].von; nach = board3[zpkt].nach; sav = board3[von].circ + board3[zpkt].circ; if( sav < board3[nach].circ) { board3[nach].circ = sav; board3[nach].zpkt = von; stop = 0; } /* Flaeche */ von = board2[zpkt].von; nach = board2[zpkt].nach; sav = board2[von].fla + board2[zpkt].fla; if( sav < board2[nach].fla) { board2[nach].fla = sav; board2[nach].zpkt = von; stop = 0; } }} return 0; } //--------------------------------------------------------------------------- /* Ford Weg */ void LEO::cord_weg(int vonA, int vonX) { /* Ford */ if(board1[vonA].zpkt != -1) { cord_weg(board1[vonA].zpkt, vonX); } printf(" %c",matrix[vonA][SET]); printf("%c",matrix[SET][vonX]); } //--------------------------------------------------------------------------- /* Ford Flaeche */ void LEO::cord_fla(int vonA, int vonX) { /* Ford */ if(board2[vonX].zpkt != -1) { cord_fla(vonA, board2[vonX].zpkt); } //printf(" %c",matrix[vonA][SET]); //printf("%c",matrix[SET][vonX]); cord_weg(vonA,vonX); } //--------------------------------------------------------------------------- /* Print Path */ void LEO::print_path(char *nmove) { int vonA, vonX; int nachB, nachY; vonA = nmove[1]; vonX = nmove[2]; nachB = nmove[3]; nachY = nmove[4]; /* Info */ printf(" DECIMAL WAY: %d%d%d%d\n",nmove[1],nmove[2],nmove[3],nmove[4]); printf(" NOTATION WAY: %c%c -> %c%c \n", matrix[vonA][SET],matrix[SET][vonX], matrix[nachB][SET],matrix[SET][nachY]); #ifdef FORD /* Ford */ count = 1; for(vonA = 0; vonA < WMOV; vonA++) { for(vonX = 0; vonX < FMOV; vonX++) { printf(" ROUTE # %4d:", count++); //cord_way(vonA,vonX); cord_fla(vonA,vonX); printf(" (%d km)\n", board1[vonA].way); }} #endif } //---------------------------------------------------------------------------