Jeux échec
robinmoon
-
Phil_1857 Messages postés 1956 Statut Membre -
Phil_1857 Messages postés 1956 Statut Membre -
Bonjour, je suis en apprentissage de pygame et je commence a faire un jeu d'échec en pygame et je suis bloqué dessus depuis 3 jour sur comment détecter les pièces et par la suite faire des déplacements même si je pense que j'utiliserais des calculs de coordonnées. Merci d'avance pour l'aide !
import pygame
from pygame.locals import *
import time
case = 84
A = 60
B = 60 + case
C = 60 + case * 2
D = 60 + case * 3
E = 60 + case * 4
F = 60 + case * 5
G = 60 + case * 6
H = 60 + case * 7
Huit = 60
Sept = 60 + case
Six = 60 + case * 2
Cinq = 60 + case * 3
Quatre = 60 + case * 4
Trois = 60 + case * 5
Deux = 60 + case * 6
Un = 60 + case * 7
SIZE = 100
WIDTH = 8
HEIGHT = 8
pygame.init()
fenetre = pygame.display.set_mode((800,800))
echiquier = pygame.image.load("plateau.png").convert_alpha()
fenetre.blit(echiquier,(0,0))
#Placement reines
QeB= pygame.image.load("Reine_Blanc.png").convert_alpha()
fenetre.blit(QeB,(D,Un))
pygame.display.flip()
QeW= pygame.image.load("Reine_Noir.png").convert_alpha()
fenetre.blit(QeW,(D,Huit))
pygame.display.flip()
#Placement rois
KiB= pygame.image.load("Roi_Noir.png").convert_alpha()
fenetre.blit(KiB,(E,Huit))
pygame.display.flip()
KiW= pygame.image.load("Roi_Blanc.png").convert_alpha()
fenetre.blit(KiW,(E,Un))
pygame.display.flip()
#Placement fous
BB= pygame.image.load("Fou_Noir.png").convert_alpha()
fenetre.blit(BB,(F,Huit))
pygame.display.flip()
BW= pygame.image.load("Fou_Blanc.png").convert_alpha()
fenetre.blit(BW,(F,Un))
pygame.display.flip()
BB= pygame.image.load("Fou_Noir.png").convert_alpha()
fenetre.blit(BB,(C,Huit))
pygame.display.flip()
BW= pygame.image.load("Fou_Blanc.png").convert_alpha()
fenetre.blit(BW,(C,Un))
pygame.display.flip()
#Placement cavaliers
KB= pygame.image.load("Cavalier_Noir.png").convert_alpha()
fenetre.blit(KB,(B,Huit))
pygame.display.flip()
KW= pygame.image.load("Cavalier_Blanc.png").convert_alpha()
fenetre.blit(KW,(B,Un))
pygame.display.flip()
KB= pygame.image.load("Cavalier_Noir.png").convert_alpha()
fenetre.blit(KB,(G,Huit))
pygame.display.flip()
KW= pygame.image.load("Cavalier_Blanc.png").convert_alpha()
fenetre.blit(KW,(G,Un))
pygame.display.flip()
#Placement tours
RB= pygame.image.load("Tour_Noir.png").convert_alpha()
fenetre.blit(RB,(A,Huit))
pygame.display.flip()
RW= pygame.image.load("Tour_Blanc.png").convert_alpha()
fenetre.blit(RW,(A,Un))
pygame.display.flip()
RB= pygame.image.load("Tour_Noir.png").convert_alpha()
fenetre.blit(RB,(H,Huit))
pygame.display.flip()
RW= pygame.image.load("Tour_Blanc.png").convert_alpha()
fenetre.blit(RW,(H,Un))
pygame.display.flip()
#Placement pions noirs
PB= pygame.image.load("Pion_Noir.png").convert_alpha()
fenetre.blit(PB,(A,Sept))
pygame.display.flip()
PB= pygame.image.load("Pion_Noir.png").convert_alpha()
fenetre.blit(PB,(B,Sept))
pygame.display.flip()
PB= pygame.image.load("Pion_Noir.png").convert_alpha()
fenetre.blit(PB,(C,Sept))
pygame.display.flip()
PB= pygame.image.load("Pion_Noir.png").convert_alpha()
fenetre.blit(PB,(D,Sept))
pygame.display.flip()
PB= pygame.image.load("Pion_Noir.png").convert_alpha()
fenetre.blit(PB,(E,Sept))
pygame.display.flip()
PB= pygame.image.load("Pion_Noir.png").convert_alpha()
fenetre.blit(PB,(F,Sept))
pygame.display.flip()
PB= pygame.image.load("Pion_Noir.png").convert_alpha()
fenetre.blit(PB,(G,Sept))
pygame.display.flip()
PB= pygame.image.load("Pion_Noir.png").convert_alpha()
fenetre.blit(PB,(H,Sept))
pygame.display.flip()
#Placement pions blancs
PW= pygame.image.load("Pion_Blanc.png").convert_alpha()
fenetre.blit(PW,(A,Deux))
pygame.display.flip()
PW= pygame.image.load("Pion_Blanc.png").convert_alpha()
fenetre.blit(PW,(B,Deux))
pygame.display.flip()
PW= pygame.image.load("Pion_Blanc.png").convert_alpha()
fenetre.blit(PW,(C,Deux))
pygame.display.flip()
PW= pygame.image.load("Pion_Blanc.png").convert_alpha()
fenetre.blit(PW,(D,Deux))
pygame.display.flip()
PW= pygame.image.load("Pion_Blanc.png").convert_alpha()
fenetre.blit(PW,(E,Deux))
pygame.display.flip()
PW= pygame.image.load("Pion_Blanc.png").convert_alpha()
fenetre.blit(PW,(F,Deux))
pygame.display.flip()
PW= pygame.image.load("Pion_Blanc.png").convert_alpha()
fenetre.blit(PW,(G,Deux))
pygame.display.flip()
PW= pygame.image.load("Pion_Blanc.png").convert_alpha()
fenetre.blit(PW,(H,Deux))
pygame.display.flip()
pièces =[RB,KB,BB,QeB,KiB,PB,PW,RW,KW,BW,QeW,KiW]
Echiquier = [ ['RB','KB','BB','QeB','KiB','BB','KB','RB'],
['PB','PB','PB','PB','PB','PB','PB','PB'],
[' ',' ',' ',' ',' ',' ',' ',' '],
[' ',' ',' ',' ',' ',' ',' ',' '],
[' ',' ',' ',' ',' ',' ',' ',' '],
[' ',' ',' ',' ',' ',' ',' ',' '],
['PW','Pw','PW','PW','PW','PW','PW','PW'],
['RW','KW','BW','QeW','KiW','BW','KW','RW'] ]
while True:
for event in pygame.event.get():
if event.type == MOUSEBUTTONDOWN :
x_souris = event.pos[0]
y_souris = event.pos[1]
print(x_souris, y_souris)
colonne = (y_souris-60) //case
ligne = ( x_souris-60) //case
print(ligne,colonne)
Configuration: Windows / Chrome 88.0.4324.190
A voir également:
- Code source jeu d'echec python
- Code ascii - Guide
- Citizen code python - Accueil - Outils
- Mode sans echec ps4 - Guide
- Code puk bloqué - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
7 réponses
bonjour,
"comment détecter les pièces": en examinant le contenu de Echiquier.
as-tu déjà fait des jeux plus simples?
"comment détecter les pièces": en examinant le contenu de Echiquier.
as-tu déjà fait des jeux plus simples?
base
nn pas encore mais j'apprends avec l'aide de qlq qui prends des cour de en première et ducoup je le fais en même temps et donc c'est le premier jeu que je fais
nn pas encore mais j'apprends avec l'aide de qlq qui prends des cour de en première et ducoup je le fais en même temps et donc c'est le premier jeu que je fais
Bonjour,
L'indentation étant importante en Python, merci de copier/coller ici ton code complet avec les balises de code
mode d'emploi:
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Visuellement, ça doit ressembler à ceci (avec la coloration syntaxique) :
Ceci dit, moi j'initialiserai une variable tableau à 2 dimensions (lignes, colonnes) qui contiendrait les noms des pièces
Ensuite, on peut interroger une case donnée: Echiquier [ligne][colonne], ou bien parcourir le tableau avec deux boucles
imbriquées:
Ensuite, après un déplacement de pièces dans le tableau, on met à jour l'affichage graphique en fonction de celui-ci
L'indentation étant importante en Python, merci de copier/coller ici ton code complet avec les balises de code
mode d'emploi:
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Visuellement, ça doit ressembler à ceci (avec la coloration syntaxique) :
def test():
print('test')
test()
Ceci dit, moi j'initialiserai une variable tableau à 2 dimensions (lignes, colonnes) qui contiendrait les noms des pièces
Ensuite, on peut interroger une case donnée: Echiquier [ligne][colonne], ou bien parcourir le tableau avec deux boucles
imbriquées:
for k in range(0,nb_lignes):
for j in range(0,nb_colonnes):
Ensuite, après un déplacement de pièces dans le tableau, on met à jour l'affichage graphique en fonction de celui-ci
[ligne] et [colonne], je pense avoir compris, mais donc ça correspond a l'emplacement dans ma liste, donc par exemple pour RB j'ai Echiquier[O] [O]ou bien Echiquier [0] [ 7], si j'ai bien compris ? et après comment je le détecte sur l'écran que tel case correspond a tel emplacement dans mon tableau ?
ok voila le code :
Merci d'avance si tu trouves un truc !
import pygame
from pygame.locals import *
import time
coord=[
'a8','b8','c8','d8','e8','f8','g8','h8',
'a7','b7','c7','d7','e7','f7','g7','h7',
'a6','b6','c6','d6','e6','f6','g6','h6',
'a5','b5','c5','d5','e5','f5','g5','h5',
'a4','b4','c4','d4','e4','f4','g4','h4',
'a3','b3','c3','d3','e3','f3','g3','h3',
'a2','b2','c2','d2','e2','f2','g2','h2',
'a1','b1','c1','d1','e1','f1','g1','h1'
]
pygame.init()
fenetre = pygame.display.set_mode((800,800))
echiquier = pygame.image.load("plateau.png").convert_alpha()
fenetre.blit(echiquier,(0,0))
#Placement reines
QeB= pygame.image.load("Reine_Blanc.png").convert_alpha()
fenetre.blit(QeB,(D,Un))
pygame.display.flip()
QeW= pygame.image.load("Reine_Noir.png").convert_alpha()
fenetre.blit(QeW,(D,Huit))
pygame.display.flip()
#Placement rois
KiB= pygame.image.load("Roi_Noir.png").convert_alpha()
fenetre.blit(KiB,(E,Huit))
pygame.display.flip()
KiW= pygame.image.load("Roi_Blanc.png").convert_alpha()
fenetre.blit(KiW,(E,Un))
pygame.display.flip()
#Placement fous
BB= pygame.image.load("Fou_Noir.png").convert_alpha()
fenetre.blit(BB,(F,Huit))
pygame.display.flip()
BW= pygame.image.load("Fou_Blanc.png").convert_alpha()
fenetre.blit(BW,(F,Un))
pygame.display.flip()
BB= pygame.image.load("Fou_Noir.png").convert_alpha()
fenetre.blit(BB,(C,Huit))
pygame.display.flip()
BW= pygame.image.load("Fou_Blanc.png").convert_alpha()
fenetre.blit(BW,(C,Un))
pygame.display.flip()
#Placement cavaliers
KB= pygame.image.load("Cavalier_Noir.png").convert_alpha()
fenetre.blit(KB,(B,Huit))
pygame.display.flip()
KW= pygame.image.load("Cavalier_Blanc.png").convert_alpha()
fenetre.blit(KW,(B,Un))
pygame.display.flip()
KB= pygame.image.load("Cavalier_Noir.png").convert_alpha()
fenetre.blit(KB,(G,Huit))
pygame.display.flip()
KW= pygame.image.load("Cavalier_Blanc.png").convert_alpha()
fenetre.blit(KW,(G,Un))
pygame.display.flip()
#Placement tours
RB= pygame.image.load("Tour_Noir.png").convert_alpha()
fenetre.blit(RB,(A,Huit))
pygame.display.flip()
RW= pygame.image.load("Tour_Blanc.png").convert_alpha()
fenetre.blit(RW,(A,Un))
pygame.display.flip()
RB= pygame.image.load("Tour_Noir.png").convert_alpha()
fenetre.blit(RB,(H,Huit))
pygame.display.flip()
RW= pygame.image.load("Tour_Blanc.png").convert_alpha()
fenetre.blit(RW,(H,Un))
pygame.display.flip()
#Placement pions noirs
PB= pygame.image.load("Pion_Noir.png").convert_alpha()
fenetre.blit(PB,(A,Sept))
pygame.display.flip()
PB= pygame.image.load("Pion_Noir.png").convert_alpha()
fenetre.blit(PB,(B,Sept))
pygame.display.flip()
PB= pygame.image.load("Pion_Noir.png").convert_alpha()
fenetre.blit(PB,(C,Sept))
pygame.display.flip()
PB= pygame.image.load("Pion_Noir.png").convert_alpha()
fenetre.blit(PB,(D,Sept))
pygame.display.flip()
PB= pygame.image.load("Pion_Noir.png").convert_alpha()
fenetre.blit(PB,(E,Sept))
pygame.display.flip()
PB= pygame.image.load("Pion_Noir.png").convert_alpha()
fenetre.blit(PB,(F,Sept))
pygame.display.flip()
PB= pygame.image.load("Pion_Noir.png").convert_alpha()
fenetre.blit(PB,(G,Sept))
pygame.display.flip()
PB= pygame.image.load("Pion_Noir.png").convert_alpha()
fenetre.blit(PB,(H,Sept))
pygame.display.flip()
#Placement pions blancs
PW= pygame.image.load("Pion_Blanc.png").convert_alpha()
fenetre.blit(PW,(A,Deux))
pygame.display.flip()
PW= pygame.image.load("Pion_Blanc.png").convert_alpha()
fenetre.blit(PW,(B,Deux))
pygame.display.flip()
PW= pygame.image.load("Pion_Blanc.png").convert_alpha()
fenetre.blit(PW,(C,Deux))
pygame.display.flip()
PW= pygame.image.load("Pion_Blanc.png").convert_alpha()
fenetre.blit(PW,(D,Deux))
pygame.display.flip()
PW= pygame.image.load("Pion_Blanc.png").convert_alpha()
fenetre.blit(PW,(E,Deux))
pygame.display.flip()
PW= pygame.image.load("Pion_Blanc.png").convert_alpha()
fenetre.blit(PW,(F,Deux))
pygame.display.flip()
PW= pygame.image.load("Pion_Blanc.png").convert_alpha()
fenetre.blit(PW,(G,Deux))
pygame.display.flip()
PW= pygame.image.load("Pion_Blanc.png").convert_alpha()
fenetre.blit(PW,(H,Deux))
pygame.display.flip()
pièces =[RB,KB,BB,QeB,KiB,PB,PW,RW,KW,BW,QeW,KiW]
Echiquier = [ ['RB','KB','BB','QeB','KiB','BB','KB','RB'],
['PB','PB','PB','PB','PB','PB','PB','PB'],
[' ',' ',' ',' ',' ',' ',' ',' '],
[' ',' ',' ',' ',' ',' ',' ',' '],
[' ',' ',' ',' ',' ',' ',' ',' '],
[' ',' ',' ',' ',' ',' ',' ',' '],
['PW','Pw','PW','PW','PW','PW','PW','PW'],
['RW','KW','BW','QeW','KiW','BW','KW','RW'] ]
while True:
for event in pygame.event.get():
if event.type == MOUSEBUTTONDOWN :
x_souris = event.pos[0]
y_souris = event.pos[1]
print(x_souris, y_souris)
colonne = (y_souris-60) //case
ligne = ( x_souris-60) //case
print(ligne,colonne)
Merci d'avance si tu trouves un truc !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Moi, je n'utilise pas Pygame, mais tkinter
J'ai déjà fait un jeu, non pas d'échecs, mais de dames
En gros, je déplace un pion noir comme ceci:
sachant que:
WHITE = 0
BLACK = 1
WHITE_K = 2
BLACK_K = 3
(ca permet de manipuler des noms au lieu de chiffres)
J'ai déjà fait un jeu, non pas d'échecs, mais de dames
En gros, je déplace un pion noir comme ceci:
cliquer pion sur damier -> fonction évènement clic gauche souris :
on initialise une variable bouton_gauche à True
déplacer le pion avec la souris bouton toujours appuyé -> fonction évènement mouvement souris :
si bouton_gauche :
récup' coordonnées x,y à l'instant t
déplacer objet pion à x,y
et ainsi de suite, tant qu'on déplace la souris
relâcher bouton gauche souris -> fonction évènement relachement bouton souris :
bouton_gauche = False
appel fonction mise_a_jour_tableau
fonction mise_a_jour_tableau:
conversion x,y case de départ en ligne/colonne : l1,c1
idem case arrivée : l2,c2
damier[l1][c1] = ''
damier[l2][c2] = BLACK
test si on a survolé un pion à prendre, si oui:
damier[ligne][colonne] = ''
déplacement du pion pris sur le coté
test si on est arrivé en bordure de damier : dame !, si oui:
on efface un pion pris par l'adversaire et on le redessine sur la case d'arrivée (un peu
décalé pour montrer les 2 pions)
damier [l2][c2] = BLACK_K
sachant que:
WHITE = 0
BLACK = 1
WHITE_K = 2
BLACK_K = 3
(ca permet de manipuler des noms au lieu de chiffres)