CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Syntax error at end of input

[Plisko]
[Plisko]
Niveau 10
18 octobre 2011 à 19:30:39
  1. include <stdio.h>
  2. include <stdlib.h>

void afficher_jeu(char morpion[4][4])
{
printf("%c %c %c %c\n", morpion[0][0], morpion[1][0], morpion[2][0], morpion[3][0]);
printf("%c %c %c %c\n", morpion[0][1], morpion[1][1], morpion[2][1], morpion[3][1]);
printf("%c %c %c %c\n", morpion[0][2], morpion[1][2], morpion[2][2], morpion[3][2]);
printf("%c %c %c %c\n\n", morpion[0][3], morpion[1][3], morpion[2][3], morpion[3][3]);
}

void creer_jeu(char morpion[4][4])
{
morpion[0][0] = ' ';
morpion[0][1] = '1';
morpion[1][0] = '1';
morpion[0][2] = '2';
morpion[2][0] = '2';
morpion[0][3] = '3';
morpion[3][0] = '3';

int i = 1;
int j = 1;

for (i = 1; i <= 3; i++)
{
for (j = 1; j <= 3; j++)
{
morpion[i][j] = '.';
}
}
}

int tester_vic_j1(char morpion[4][4])
{
if ((morpion[1][1] == 'o') && (morpion[1][2] == 'o') && (morpion[1][3] == 'o')) //Première ligne
{
printf("Joueur 1 gagne !\n\n");
return 1;
}
else if ((morpion[2][1] == 'o') && (morpion[2][2] == 'o') && (morpion[2][3] == 'o')) //Deuxième ligne
{
printf("Joueur 1 gagne !\n\n");
return 1;
}
else if ((morpion[3][1] == 'o') && (morpion[3][2] == 'o') && (morpion[3][3] == 'o')) //Troisième ligne
{
printf("Joueur 1 gagne !\n\n");
return 1;
}
else if ((morpion[1][1] == 'o') && (morpion[2][1] == 'o') && (morpion[3][1] == 'o')) //Première colonne
{
printf("Joueur 1 gagne !\n\n");
return 1;
}
else if ((morpion[1][2] == 'o') && (morpion[2][2] == 'o') && (morpion[3][2] == 'o')) //Deuxième colonne
{
printf("Joueur 1 gagne !\n\n");
return 1;
}
else if ((morpion[1][3] == 'o') && (morpion[2][3] == 'o') && (morpion[3][3] == 'o')) //Troisième colonne
{
printf("Joueur 1 gagne !\n\n");
return 1;
}
else if ((morpion[1][1] == 'o') && (morpion[2][2] == 'o') && (morpion[3][3] == 'o')) //Diagonale 11-33
{
printf("Joueur 1 gagne !\n\n");
return 1;
}
else if ((morpion[3][1] == 'o') && (morpion[2][2] == 'o') && (morpion[1][3] == 'o')) //Diagonale 31-13
{
printf("Joueur 1 gagne !\n\n");
return 1;
}
else
{
return 0;
}
}

int tester_vic_j2(char morpion[4][4])
{
if ((morpion[1][1] == 'x') && (morpion[1][2] == 'x') && (morpion[1][3] == 'x')) //Première ligne
{
printf("Joueur 2 gagne !\n\n");
return 1;
}
else if ((morpion[2][1] == 'x') && (morpion[2][2] == 'x') && (morpion[2][3] == 'x')) //Deuxième ligne
{
printf("Joueur 2 gagne !\n\n");
return 1;
}
else if ((morpion[3][1] == 'x') && (morpion[3][2] == 'x') && (morpion[3][3] == 'x')) //Troisième ligne
{
printf("Joueur 2 gagne !\n\n");
return 1;
}
else if ((morpion[1][1] == 'x') && (morpion[2][1] == 'x') && (morpion[3][1] == 'x')) //Première colonne
{
printf("Joueur 2 gagne !\n\n");
return 1;
}
else if ((morpion[1][2] == 'x') && (morpion[2][2] == 'x') && (morpion[3][2] == 'x')) //Deuxième colonne
{
printf("Joueur 2 gagne !\n\n");
return 1;
}
else if ((morpion[1][3] == 'x') && (morpion[2][3] == 'x') && (morpion[3][3] == 'x')) //Troisième colonne
{
printf("Joueur 2 gagne !\n\n");
return 1;
}
else if ((morpion[1][1] == 'x') && (morpion[2][2] == 'x') && (morpion[3][3] == 'x')) //Diagonale 11-33
{
printf("Joueur 2 gagne !\n\n");
return 1;
}
else if ((morpion[3][1] == 'x') && (morpion[2][2] == 'x') && (morpion[1][3] == 'x')) //Diagonale 31-13
{
printf("Joueur 2 gagne !\n\n");
return 1;
}
else
{
return 0;
}
}

void jouer_j1(char morpion[4][4])
{
int choix_case = 0;
int choix_ok = 0;

while (choix_ok != 1)
{
printf("J1 vous jouez les o\n");
printf("Quelle case ?\n");
scanf("%d", &choix_case);

if (choix_case != (11 || 12 || 13 || 21 || 22 || 23 || 31 || 32 || 33))
{
printf("Ceci n'est pas une case, sorry\n");
}

else
{
int line = choix_case/10;
int column = choix_case%10;

if (morpion[line][column] != '.')
{
printf("Cette case est deja occupee, sorry\n");
}

else
{
morpion[line][column] = 'o';
choix_ok = 1;
}
}

}

void jouer_j2(char morpion[4][4])
{
int choix_case_j2 = 0;
int choix_ok = 0;

while (choix_ok != 1)
{
printf("J2 vous jouez les x\n");
printf("Quelle case ?\n");
scanf("%d", &choix_case_j2);

if (choix_case != (11 || 12 || 13 || 21 || 22 || 23 || 31 || 32 || 33))
{
printf("Ceci n'est pas une case, sorry\n");
}

else
{
int line = choix_case_j2/10;
int column = choix_case_j2%10;

if (morpion[line][column] != '.')
{
printf("Cette case est deja occupee, sorry\n");
}

else
{
morpion[line][column] = 'x';
choix_ok = 1;
}
}

}

void jeu(void)
{
char morpion[4][4];
int victoire = 0;

creer_jeu(morpion);

jouer_j1(morpion);
afficher_jeu(morpion);
victoire = tester_vic_j1(morpion);
jouer_j2(morpion);
afficher_jeu(morpion);
victoire = tester_vic_j2(morpion);
}

int main(void)
{
jeu();
return EXIT_SUCCESS;
}

[Plisko]
[Plisko]
Niveau 10
18 octobre 2011 à 19:34:03

Bonsoir

(pour plus de lisibilité, je préfère poster le code et le message séparement...)

Le TD d'aujourd'hui portait sur le jeu du morpion. Mais ça coince au moment de la compilation.

Je reçois un message m'avertissant d'une erreur à la dernière ligne du code, Error : syntax error at the end of input.

Je ne comprend pas trop d'où ça vient, je n'ai pas trouvé de problèmes de parenthèses solitaires ou ce genre de truc, donc je suis un peu perplexe.

Merci d'avance à ceux qui pourraient éclairer ma lanterne...

PS : Oui je sais, 220 lignes pour un morpion c'est un sérieux manque d'optimisation, et je sais aussi qu'il faut que je mette une boucle dans la fonction "jeu" pour que ça puisse être jouable, mais le problème ne vient pas de là.

Silvermo
Silvermo
Niveau 26
18 octobre 2011 à 19:37:23

Bonjour,
Tu devrais, pour vraiment rendre ton code lisible, le présenter indenté, avec un éditeur de code en ligne comme pastebin
http://pastebin.com/

Deuxièmement, la logique de ton code est vraiment à revoir (tester tous les cas possibles avec des IF, hem hem... enfin j'imagine que tu n'as pas encore beaucoup découvert toute les joies de l'algorithmique )

S'il y a un problème de compilation, ce serait plus facile d'avoir un code indenté pour le lire :)

Bien à toi

caelacanthe
caelacanthe
Niveau 10
18 octobre 2011 à 19:38:55

"if (choix_case != (11 || 12 || 13 || 21 || 22 || 23 || 31 || 32 || 33)) "

:d) non, le "ni" n'existe pas en algèbre booléenne, il va falloir tous les mettre. :noel:

if((choix_case != 11) || (choix_case != 12) || ...

:hap:

[Plisko]
[Plisko]
Niveau 10
18 octobre 2011 à 19:44:49

@Silvermo : Ouais j'ai vraiment honte de sortir des codes comme ça ^^ Mais comme j'ai tendance à faire pas mal de fautes de syntaxe, j'essaie de faire les algorithmes les plus simples possibles, même s'ils sont beaucoup trop lourds.

@Caelacanthe : Ouais je vais essayer ça, merci :)

[Plisko]
[Plisko]
Niveau 10
25 octobre 2011 à 02:15:39

Bon ça ne marche toujours pas, donc je vais refaire ça intégralement...

Il parait que ça pourrait être un problème dans les noms et les dossiers dans lesquels sont rangés les fichiers. Ca me semble hautement improbable, vu que j'ai rien changé à mes habitudes, mais bon...

Merci quand même à vous deux :hap:

Plisko, pour l'algorithmique bancale (quand je pense que le code de mon projet de prog sera lu par des profs, je flippe un peu :D )

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment