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 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165
| #Grille comportant les bateaux
carte = [ #Grille du joueur B
[ [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], # x = 0
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], # x = 1
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], # x = 2
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], # ...
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
#y--> 0 1 2 3 4 ...
],
#Grille joueur A
[ [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
]
]
#Liste des bateaux avec leur longueur
# Bateau n 1 ==> longueur = 5
# Bateau n 2 ==> longueur = 4
# ...
# correspond au nombre de coup restant aÃÆÃâÃâ*ââ¬â¢ÃÆÃ¢Ã¢ââ¬Å¡Ã¬Ãâ¦ÃÂ¡ÃÆÃââââ¬Ã
Â¡ÃÆÃ¢â¬Å¡ÃâÃÂ* couler
bateaux = [[0,5,4,3,2,1],
[0,2,3,0,0,0]]
#Fonction sommant le nb de coup restant a̢̮â¬Å¡ÃâÃÂ* couler
def fct_non_trouve(grille):
total=0
for reste in grille:
total = total + reste
return(total)
import random
#print(fct_non_trouve(bateaux))
#Debut du jeu
#Saisie des noms des joueurs
Nom_joueur_A = input("Nom du joueur A: ")
Nom_joueur_B = input("Nom du joueur B: ")
#determination qui commence le jeu
liste_joueurs = [Nom_joueur_A, Nom_joueur_B]
Qui_joue = random.choice(liste_joueurs)
index_joueur = liste_joueurs.index(Qui_joue)
#-------------------------------------------------------------------------------
def ajouter(point, vecteur):
x, y = point
dx, dy = vecteur
return x+dx, y+dy
def construire_bateau (pt, dir, lg):
x, y = pt
dx, dy = dir
bateau = [pt]
pt = ajouter(pt,dir)
for i in range (lg-1):
bateau.append(pt)
pt = ajouter(pt,dir)
return bateau
print("Joueur ",Nom_joueur_A," place ces bateaux")
for tour_placement in range(4):
position1 = int(input("X"))
position2 = int(input("Y"))
orientation = int( input("orientation 6 = Est / 4 = Ouest / 8 = Nord / 2 = Sud"))
if orientation == 6:
coucou = 0,1
elif orientation == 4:
coucou = 0,-1
elif orientation == 8:
coucou = -1,0
elif orientation == 2:
coucou = 1,0
if tour_placement == 0:
bateau_1 = construire_bateau((position1,position2),(coucou),2)
carte[0][bateau_1[0][0]][bateau_1[0][1]] = 5
carte[0][bateau_1[1][0]][bateau_1[1][1]] = 5
if tour_placement == 1:
bateau_2 = construire_bateau((position1,position2),(coucou),3)
carte[0][bateau_2[0][0]][bateau_2[0][1]] = 4
carte[0][bateau_2[1][0]][bateau_2[1][1]] = 4
carte[0][bateau_2[2][0]][bateau_2[2][1]] = 4
if tour_placement == 2:
bateau_3 = construire_bateau((position1,position2),(coucou),3)
carte[0][bateau_3[0][0]][bateau_3[0][1]] = 3
carte[0][bateau_3[1][0]][bateau_3[1][1]] = 3
carte[0][bateau_3[2][0]][bateau_3[2][1]] = 3
if tour_placement == 3:
bateau_4 = construire_bateau((position1,position2),(coucou),4)
carte[0][bateau_4[0][0]][bateau_4[0][1]] = 2
carte[0][bateau_4[1][0]][bateau_4[1][1]] = 2
carte[0][bateau_4[2][0]][bateau_4[2][1]] = 2
carte[0][bateau_4[3][0]][bateau_4[3][1]] = 2
if tour_placement == 4:
bateau_5 = construire_bateau((position1,position2),(coucou),5)
carte[0][bateau_5[0][0]][bateau_5[0][1]] = 1
carte[0][bateau_5[1][0]][bateau_5[1][1]] = 1
carte[0][bateau_5[2][0]][bateau_5[2][1]] = 1
carte[0][bateau_5[3][0]][bateau_5[3][1]] = 1
carte[0][bateau_5[4][0]][bateau_5[4][1]] = 1
tour_placement = tour_placement + 1
print(carte[0])
#-------------------------------------------------------------------------------
while True:
print("Joueur ",Qui_joue, " joue")
tir_x = int(input("Position x: (entrer une valeur entre: 0-9) "))
while tir_x > 9 or tir_x < 0 :
tir_x = int(input("La position x entre n est pas dans la grille: (entrer une valeur entre: 0-9) "))
tir_y = int(input("Position y: (entrer une valeur entre: 0-9) "))
while tir_y > 9 or tir_y < 0 :
tir_y = int(input("La position y pas dans la grille: (entrer une valeur entre: 0-9) "))
num_bateau = carte[index_joueur][tir_x][tir_y]
# toucher pas toucher
if num_bateau > 0 :
bateaux[index_joueur][num_bateau] -= 1
print("touche!!!!!")
if bateaux[index_joueur][num_bateau] == 0:
print("bateau num", num_bateau ," coule")
carte[index_joueur][tir_x][tir_y] = -carte[index_joueur][tir_x][tir_y]
else:
print("plouf...")
carte[index_joueur][tir_x][tir_y] = carte[index_joueur][tir_x][tir_y] - 10
#Controle fin de partie
if fct_non_trouve(bateaux[index_joueur]) == 0:
break
#changer de joueur
if carte[index_joueur][tir_x][tir_y] < -10 :
Qui_joue = Qui_joue
else:
if index_joueur == 0 :
Qui_joue = liste_joueurs[1]
else:
Qui_joue = liste_joueurs[0]
index_joueur = liste_joueurs.index(Qui_joue)
print(carte)
print("Joueur ", Qui_joue, " a coule tous les bateaux ennemis!!!") |