int main(void) { long long seed = time(NULL); printf("(seed=%llu)\n", seed); srand(seed); test_get_set(); test_position(); test_ensemble_position(); test_plateau(); test_chaines(); test_coup(); return EXIT_SUCCESS; }
int recuperer_valeur() { if (turn == 1) { printf("[SYS] Au tour de \"%s\"(X). Que voulez-vous jouer ? ",joueur1); scanf("%s",jeu); if (strcmp(jeu,"tab") == 0) afficher_plateau(); else printf("[SYS] Vous avez joué %s\n\n",jeu); } else if (turn == 2) { if (contre_ia) { int i, j; for (i = 0; i < N; i++) { for (j = 0; j < N; j++) { if (test_adjacence(i,j) && test_coup(i,j)) { jeu[0] = i+65; jeu[1] = j+49; } } } /* if (i == 8 && j == 8) return -1; */ printf("[SYS] PC a joué : %s\n", jeu); } else { printf("[SYS] Au tour de \"%s\"(O). Que voulez-vous jouer ? ",joueur2); scanf("%s",jeu); if (strcmp(jeu,"tab") == 0) afficher_plateau(); else printf("[SYS] Vous avez joué %s\n\n",jeu); } } else { fprintf(stderr, "[ERR] Erreur selection joueur\n"); return -1; } return 1; }
int main () { char choix; printf("Voulez-vous jouer contre l'ordinateur ? (O/n)\n"); scanf("%c",&choix); if (choix == 'O' || choix == 'o') contre_ia = 1; printf("[SYS] Entrez le nom du joueur1 (X) : "); scanf("%s",joueur1); if (contre_ia) { strcpy(joueur2,"PC"); } else { printf("[SYS] Entrez le nom du joueur2 (O) : "); scanf("%s",joueur2); } printf("[SYS] Joueur1(X): \"%s\", Joueur2(O): \"%s\"\n",joueur1, joueur2); initialiser(); afficher_plateau(); int finished=0; while(!finished) { int val = recuperer_valeur(); if (val < 0) finished=1; /* Dans la table ASCII: • les minuscules sont entre 97 et 122 • Les majuscules entre 65 et 90; */ int x,y; y = (jeu[1] - '0') -1; if (jeu[0] >= 65 && jeu[0] < 73) /* 73 pour s'arrêter à H */ x = jeu[0] - 65; else if (jeu[0] >= 97 && jeu[0] < 105) /* 105 pour s'arrêter à h */ x = jeu[0] - 97; else { fprintf(stderr, "[ERR] Vous avez entré une valeur erronnée.\n"); continue; } if (strcmp(jeu,"tab") == 0) continue; if ((x < 0 || x > 8 || y < 0 || y > 8)) { fprintf(stderr, "[ERR] Vous avez entré une valeur erronnée.\n"); continue; } if (plateau[x][y] != 0) { fprintf(stderr, "[ERR] La case est déjà remplie :( Réessayez\n"); continue; } if (!test_adjacence(x,y) || !test_coup(x,y)) { fprintf(stderr, "[ERR] Ce coup est impossible. Réessayez\n"); continue; } jouer_coup(x,y); turn = (turn == 1) ? 2 : 1; afficher_plateau(); } printf("Terminé ! %s a eu %d, %s a eu %d\n",joueur1, score_j1, joueur2, score_j2); return 0; }