Un algo qui ne marche pas

Discutez d'informatique ici !
qelmcpc
Membre Naturel
Messages: 72
Enregistré le: 07 Avr 2014, 18:23

Un algo qui ne marche pas

par qelmcpc » 12 Sep 2014, 16:25

Bonjour tout le monde,
Je ne comprends pas d'où vient l'erreur dans l'algorithme suivant(du python très simple):
Code: Tout sélectionner
jeu1 = input()
jeu2 = input()
egalite = True
nbEgalite = 0
gagnant = ""
encoreCartes = True
indice = 1
while encoreCartes and egalite:
   if len(jeu1) < (indice + 1) or len(jeu2)< (indice + 1):
      encoreCartes = False
      if len(jeu1) < len(jeu2):
         gagnant = "2"
      elif len(jeu2) < len(jeu1):
         gagnant ="1"
      else:
         gagnant = "="
   if jeu1[indice - 1] == jeu2[indice - 1]:
      nbEgalite += 1
   elif jeu1[indice - 1] < jeu2[indice -1]:
      gagnant = "1"
      egalite = False
   else:
      gagnant = "2"
      egalite = False
  indice += 1



print(gagnant)
print(nbEgalite)


(ça ne veut apparamment pas s'afficher avec les indentations...
Voici l'énoncé du problème;:
On part d’un jeu contenant 52 cartes, chaque carte étant une lettre entre A et M, et chaque carte étant présente 4 fois (avec différentes couleurs, mais on ne s’en occupera pas ici).
Les cartes sont mélangées et séparées en deux paquets (pas forcément de même taille !), les cartes étant face cachée.
Les deux joueurs retournent alors la première carte de leur paquet : si les deux cartes sont identiques ils continuent à jouer, sinon celui qui a la carte la plus forte (c’est-à-dire la plus petite selon l’ordre alphabétique) gagne la partie.
Si un joueur n’a plus de carte, il perd ! Et oui, ce n’est pas très juste !
Si les deux joueurs n’ont, en même temps, plus de cartes alors il y a égalité complète.
Étant donnés les deux paquets de cartes, à vous de déterminer le gagnant.

EXEMPLE

entrée :
AABBDCCDEEFFGGHHIIJJKKLLMM
AABBCCDDEEFFGGHHIIJJKKLLMM
sortie :
2
4
Ca vient du site france ioi.

Le problème, c'est qu'il n'indique pas les entrées qu'il fournit, et lors de la soumission, il me dit que l'algo renvoie une mauvaise sortie (2 à la place de 1)

Quelqu'un peut-il me dire ce qui ne va pas?

Merci!



Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 12 Sep 2014, 17:00

salut,

tu peux commencer par utiliser la balise [CODE ] pour garder la mise en page de tes indentations
ensuite ya plein de trucs lourds:
- dans tes variables une seule variable qui prend la valeur 0, 1 ou 2,
0 pour match nul, 1 pour joueur 1 gagnant, 2 sinon.
- if elif else (pas besoin de faire un autre elif)
- les conditions du style machin==false c'est la pendaison, utilise plutot
encoreDesCartes && egalite (tu peux d'ailleurs utiliser cette même variable voir si elle vaut 0)

mais surtout indentes ton code :hum:
la vie est une fête :)

qelmcpc
Membre Naturel
Messages: 72
Enregistré le: 07 Avr 2014, 18:23

par qelmcpc » 12 Sep 2014, 17:47

Oh génial, le site vient de me dire que c'est correct!
Merci beaucoup!

Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 12 Sep 2014, 17:53

juste par hasard,

le site est accessible pour tout le monde pour tester du code python? 0:)
la vie est une fête :)

qelmcpc
Membre Naturel
Messages: 72
Enregistré le: 07 Avr 2014, 18:23

par qelmcpc » 12 Sep 2014, 17:58

En fiat, c'est des exos et il exécute ton prog en ligne, en fournissant les entrées et en comparant avec les sorties qu'il attend.

Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 12 Sep 2014, 17:59

ouais c'était ca que je voulais savoir.
Si c'est toi qui exécutes ton code en local ca a beaucoup moins d'intérêt :D
c'est quoi le nom juste pour la culture?
la vie est une fête :)

qelmcpc
Membre Naturel
Messages: 72
Enregistré le: 07 Avr 2014, 18:23

par qelmcpc » 12 Sep 2014, 18:00

C'est vrai :)

qelmcpc
Membre Naturel
Messages: 72
Enregistré le: 07 Avr 2014, 18:23

par qelmcpc » 12 Sep 2014, 18:05


 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 7 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite