J'ai créé un programme bataille navale assez simple et j'ai voulu le modéliser avec pygame.
J'ai créer un fond avec 2 tableaux vierges, l'un servira de tableau données, c'est a dire la ou la souris cliquera pour choisir la case et le second tableau sert a afficher ce qu'on a trouvé en cliquant sur une certaine case.
Le problème est que je n’arrive pas a faire afficher ce que l'on a trouvé, dans le bon tableau car cela n’affiche rien...
C''est pourquoi j'aimerai trouver quelqu'un qui puisse m'aider, merci d'avance
#-----------------------------Importations--------------------------------------
import pygame
from pygame.locals import *
from numpy import zeros
from random import randrange
#-----------------------------Initialisations-----------------------------------
pygame.init()
titre_fenetre="Bataille Navale (OTT Ludovic)"
pygame.display.set_caption(titre_fenetre)
fenetre=pygame.display.set_mode((1500,800)) #Creation de la fenetre
fond=pygame.image.load("background.png").convert() #Creation et redimenssion du Background
fenetre.blit(fond,(0,0)) #Endroit ou sera place le background
bateau=pygame.image.load("cross31.png").convert_alpha() #Essai d'un bateau
x=0
y=0
#fenetre.blit(bateau,(x,y))
n=0
tours=0
#-------------------------------Fonctions---------------------------------------
def place_bat1(): #Fonction de placement des bateaux
for i in range (12):
x=randrange(0,5)
y=randrange(0,5)
while tab[x,y]==1:
x=randrange(0,5)
y=randrange(0,5)
tab[x,y]=1
def ligCase(y):
lig=(y-355)//60
return lig
def colCase(x):
col=(x-255)//60
return col
def touche(col,lig): #Fonction determination emplacements bateaux
if tab[col,lig]==1:
if trouve[col,lig]==1:
print ("Deja touche, reessaye")
return 0
else:
trouve[col,lig]=1
print("Touche, continue ainsi")
return 1
else:
trouve[col,lig]=9
print("Dans l'eau, essaye une autre case")
return 0
#--------------------------------Programme--------------------------------------
pygame.display.flip() #Rafraichissement de la fenetre pour afficher le background
print("Tableau des bateaux :") #On affiche le tableau avec les bateaux places
tab=zeros((5,5),"i") #Creation d'un premier tableau vide
place_bat1()
print(tab)
trouve=zeros((5,5),"i") #Creation du deuxieme tableau vide
#Boucle infinie pour laisser la fenetre ouverte
continuer=1
while continuer:
for event in pygame.event.get(): #Attente des evenements et si on appuit sur la fleche rouge pour fermer la fenetre, celle si ce ferme
if event.type==QUIT:
continuer=0
if event.type==MOUSEBUTTONDOWN: #On regarde ou clique la souris
if event.button==1:
x=event.pos[0] #le -16 est la pour que la croix soit placee au milieu du pointeur de la sourie
y=event.pos[1]
print(x,y)
lig=ligCase(y)
col=colCase(x)
if touche(lig,col)==1:
fenetre.blit(bateau,(100,100))
pygame.display.flip()
fenetre.blit(fond,(0,0)) #Affichage fond pour pas le perdre au raffraichissement
eau=pygame.image.load("ocean5.png").convert_alpha() #Essai emplacement aucun bateau
fenetre.blit(eau,(391,371))
pygame.display.flip() #Rafraichissement
pygame.quit()
Pygame bataille navale
× 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.