Partage
  • Partager sur Facebook
  • Partager sur Twitter

Fou au echec

Lorsque je verifie que la case prochaine est vide

Sujet résolu
    22 mai 2018 à 19:17:09

    Bonjour je fais un jeu d'echec en python j'aurai besoin d'aide sur les mouvement du fou

    Voici comment est ma planche:

    board=[["R1W","C1W","F1W","K1W","D1W","F2W","C2W","R2W"],
           ["P1W","P2W","P3W","P4W","P5W","P6W","P7W","P8W"],
           ["___","___","___","___","___","___","___","___"],
           ["___","___","___","___","___","___","___","___"],
           ["___","___","___","___","___","___","___","___"],
           ["___","___","___","___","___","___","___","___"],
           ["P1N","P2N","P3N","P4N","P5N","P6N","P7N","P8N"],
           ["R1N","C1N","F1N","D1N","K1N","F2N","C2N","R2N"]

    Et voici comment je programme le fou(la moitie du code seulement car seule l,m,n,c change):

    def fou_valide(piece,l,m,c,n):
        if piece[0]=="F":
            if (abs(m-l)+abs(n-c))%2==0 and l!=m and  n!=c and board_fou_dame[l][c]==board_fou_dame[m][n] and abs(l-m)==abs(c-n):
                if m>l and n>c:
                    for x in range(l+1,m):# on scanne les cases ou va passer la piece si elle ne passe par-dessus une pieces en effet elle ne peut pas sauter au dessus d\'une autre piece
                        for y in range(c+1,n):
                            if board[x][y]!="___":
                                print ("faux")
                                return False
                    return True
                elif m>l and n<c:
                    for z in range(l+1,m):# on scanne les cases ou va passer la piece si elle ne passe par-dessus une pieces en effet elle ne peut pas sauter au dessus d\'une autre piece
                        for j in range(c-1,n,-1):
                            if board[z][j]!="___":
                                print ("fau")
                                return False
     

    Mon probleme est que meme quand n>c le programme affiche "fau" au lieu de "faux"

    Voici comment je demande la position:

    l = int(input("ligne de selection?:\n"))-1 #on demande au joueur la ligne de la piece a selectionné
    c = int(input("colonne de selection?:\n"))-1#on demande au joueur la colonne de la piece a selectionné
    m = int(input("ligne de destination ?:\n"))-1#on demande au joueur la ligne ou il veut pose la piece
    n = int(input("colonne de destination?:\n"))-1#on demande au joueur la colonne ou il veut pose la piece
    piece = board[l][c] # piece correspond a la piece selectionné



    -
    Edité par adamsaimi 22 mai 2018 à 19:21:38

    • Partager sur Facebook
    • Partager sur Twitter
      22 mai 2018 à 20:07:56

      -

      -
      Edité par __Nicolas__ 22 mai 2018 à 20:08:26

      • Partager sur Facebook
      • Partager sur Twitter

      Fou au echec

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown