1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
| #Procédure d'affichage d'une liste de listes contenant des -1,0,1,2.
# A noter que le joueur blanc de la vidéo est repéré par A et le noir par B
def affiche(matrice):
ch=''
for lig in range(len(matrice)-1):
for col in range(len(matrice[0])-1):
if matrice[lig][col]==-1 and (lig==0 or col==0 and col+lig<8):
ch=ch+str(col+lig)
elif matrice[lig][col]==-1 and (col==0 and col+lig>=8):
ch=ch+''
elif matrice[lig][col]==-1:
ch=ch+'X'
elif matrice[lig][col]==0:
ch=ch+'A'
elif matrice[lig][col]==1:
ch=ch+'B'
else:
ch=ch+'O'
ch=ch+'\n'
print(ch)
#Fonction qui détruit une case, c'est à dire qui place un -1 dans la matrice au bon endroit et qui retourne la matrice modifiée.
def detruit(ligne,colonne,matrice):
while matrice[ligne][colonne]==-1:
print("case déja détruite, rechoisissais s'il vous plait")
colonne=int(input('Dans quelle colonne voulez-vous détruire? '))
ligne=int(input('Dans quelle ligne voulez-vous détruire? '))
while matrice[ligne][colonne]==0:
print("case occupé par un joueur, rechoisissais s'il vous plait")
colonne=int(input('Dans quelle colonne voulez-vous détruire? '))
ligne=int(input('Dans quelle ligne voulez-vous détruire? '))
print('\n')
detruit(ligne,colonne,jeu)
while matrice[ligne][colonne]==1:
print("case occupé par un joueur, rechoisissais s'il vous plait")
colonne=int(input('Dans quelle colonne voulez-vous détruire? '))
ligne=int(input('Dans quelle ligne voulez-vous détruire? '))
print('\n')
detruit(ligne,colonne,jeu)
if matrice[ligne][colonne]==2:
matrice[ligne][colonne]=-1
return matrice
#Fonction qui retourne le n-uplets (ligne, colonne) correspondant à la position du joueur
def coordonnees(joueur,matrice):
return (lig,col)
# Fonction qui teste si le déplacement du joueur est possible dans la case dont les coordonnées ligne, colonne sont données
# elle retourne True si le déplacement est possible (autour du pion et dans une case libre) et False sinon
def test_deplacement(ligne,colonne,joueur,matrice):
if matrice[ligne][colonne]==-1:
print("False")
elif joueur in matrice[ligne]>=3:
print("False")
else:
print("True")
pass
# Fonction qui retourne la matrice indiquant que le joueur (0 ou 1) se trouve dans la case de coordonnées : ligne, colonne
def deplace_joueur(ligne,colonne,joueur,matrice):
matrice[ligne][colonne]=0
return matrice
# Fonction qui teste si un joueur(0 ou 1) est isolé ou pas : elle retourne True s'il est isolé et False sinon
def test_isola1(joueur, matrice):
joueur=1
pass
# Fonction qui permet de changer le tour du joueur
def jouer(ligne,colonne,joueur,matrice):
colonne=int(input("A, dans quelle colonne voulez-vous allé ? "))
ligne=int(input("A, dans quelle ligne voulez-vous allé ? "))
test_deplacement(ligne,colonne,joueur,matrice)
jeu=deplace_joueur(ligne,colonne,joueur,matrice)
print('\n')
affiche(jeu)
print('\n')
detruit(ligne,colonne,matrice)
print('\n')
if joueur==0:
test_isola1(joueur,matrice)
else:
test_isola2(joueur,matrice)
#####################
#Programme principal#
#####################
#Initialisation de la variable jeu
joueur=0
col=0
lig=0
jeu=[[-1,-1,-1,-1,-1,-1,-1,-1,-1],
[-1,2,2,2,0,2,2,2,-1],
[-1,2,2,2,2,2,2,2,-1],
[-1,2,2,2,2,2,2,2,-1],
[-1,2,2,2,2,2,2,2,-1],
[-1,2,2,2,2,2,2,2,-1],
[-1,2,2,2,2,2,2,2,-1],
[-1,2,2,2,1,2,2,2,-1],
[-1,-1,-1,-1,-1,-1,-1,-1,-1]]
affiche(jeu)
jouer(lig,col,joueur,jeu)
import doctest
doctest.testmod(verbose=False) |