• # Ouch

    Posté par . En réponse au message Problème avec un jeu de dame. Évalué à 2.

    vous êtes payés à la ligne?

     i = 1
     while i < 10:
     l = s_ligne + i
     cl = s_colonne - i
     if l < 10 and cl >= 0:
     c = l*10+cl
     if case_libre(c):
     pos.append(c)
     elif c in pions_n:
     break
     else:
     c2 = (l+1)*10+(cl-1)
     if case_libre(c2):
     pos.append(c2)
     prenable.append(c2)
     prenable.append(c)
     break
     else:
     break
     i+=1

    Il y a environ 8 bloc quasiment identique dans une fonction qui fait le café. Si il y a une correction à faire il faut la répercuter 8 fois ou avoir un générateur de code;

    fais en une fonction appelée successivement avec les paramètres qui vont bien et le retour qui va bien
    fct(params, 1,1)
    fct(params, 1,-1)
    fct(params, -1,-1)
    fct(params, -1,1)

    Je note aussi la présence de l pour ligne, selon la police utilisé l et 1 sont quasiment identique et c'est une source d'erreur potentiel, il vaut mieux utiliser x et y.

    Enfin quand une fonction nécessite de scroller (dépasse la hauteur d'un écran) Il faut se poser la question si il n'y a pas moyen de la découper intelligemment.

    Il ne faut pas décorner les boeufs avant d'avoir semé le vent