void playgame (void) { int c, numpl; for (c = 0; c < 13; c++) board[c] = 3; board[6] = board [13] = memory[memory[0]] = numpl = 0; do { printf ("\nHow many players (1 - 2) ? "); scanf ("%d", &numpl); if (numpl < 1 || numpl > 2) { printf ("Please input either 1 or 2.\n"); numpl = 0; } } while (!numpl); turn = 0; do { drawboard (); if (domove (playermove (0), 6)) if (!endgame()) { drawboard (); printf ("Again.\n"); domove (playermove (0), 6); } drawboard (); if (!endgame ()) { if (domove ((numpl - 1) ? playermove (1) : computermove (), 13)) if (!endgame()) { drawboard (); printf ("Again.\n"); domove ((numpl - 1) ? playermove (1) : computermove (), 13); } printf("\n"); } } while (!endgame ()); drawboard (); printf ("\nGame Over.\n"); c = board[6]-board[13]; if (c < 0) printf ("%s by %d points.\n", (numpl - 1) ? "Player 2 wins" : "I win", (-c)); else { if (!(numpl - 1) && memory[0] < 50) memory[0]++; if (c == 0) printf ("Drawn game.\n"); else printf ("Player 1 wins by %d points.\n", c); } }
int main() { step ps; int key; int row=1,line=1; init(WHITE); createmap(&ps); drawmap(BLUE); drawpeople(row,line,RED); while(1) { key=bioskey(0); switch(key) { case UP:if(path[row-1][line]==0) { drawpeople(row,line,WHITE); row--; drawpeople(row,line,RED); }break; case DOWN:if(path[row+1][line]==0) { drawpeople(row,line,WHITE); row++; drawpeople(row,line,RED); }break; case RIGHT:if(path[row][line+1]==0) { drawpeople(row,line,WHITE); line++; drawpeople(row,line,RED); }break; case LEFT:if(path[row][line-1]==0) { drawpeople(row,line,WHITE); line--; drawpeople(row,line,RED); }break; case ESC:closegraph();exit(0); break; case BS: computermove(row,line,&ps); del_23(); getch(); cleardevice(); drawmap(BLUE); drawpeople(row,line,RED); default :break; } if(line==(N-2)&&row==(N-2)) { closegraph(); printf("\n\n\n\n\t\t\t\tGood Job"); sleep(5); break; } } return 1; }