Nous avons crée un jeu d’échec où seul le cavalier est présent. À chaque déplacement, le cavalier dépose une image mais ne peut plus se déplacer dans les cases déjà visité. L’objectif est de remplir toute les cases du plateau.
Voici le programme :
import pygame import random n,p=8,8 coup=0 blanc=(255,255,255) noir=(0,0,0) cases=80 echiquier=[[0]*n for i in range(p)] X1=random.randint(0,n-1) Y1=random.randint(0,p-1) echiquier[X1][Y1]=1 coup=coup+1 pos = [[2,1],[1,2],[-1,2],[-2,1],[-2,-1],[-1,-2],[1,-2],[2,-1]] def damier(): i=0 j=0 for i in range (8): for j in range(8): labelx=int(cases*(i+0.5)) labely=int(cases*(j+0.5)) if (i+j)%2==1: pygame.draw.rect(ecran,blanc, (cases*i,cases*j,cases,cases)) else: pygame.draw.rect(ecran,noir, (cases*i,cases*j,cases,cases)) def possible(X,Y) : j=0 if ((X>=0) and (X<8) and (Y>=0) and (Y<8) and (echiquier[X][Y]==0)) : for k in range(8): if (X ==X1 + pos[k][0] and Y==Y1 + pos[k][1]): j=j+1 if j!=0: return True else: return False pygame.init() pygame.font.init() font = pygame.font.Font(None, 48) ecran = pygame.display.set_mode((640, 640)) image = pygame.image.load("cavalier echec.jpg") image1=pygame.transform.scale(image,(cases,cases)) damier() ecran.blit(image1, (cases*X1, cases*Y1)) continuer = True pos_mouse=[] while continuer: for event in pygame.event.get(): if event.type == pygame.MOUSEBUTTONDOWN: pos_mouse = event.pos X=pos_mouse[0]//80 Y=pos_mouse[1]//80 if possible(X,Y)==True: coup=coup+1 X1=X Y1=Y echiquier[X][Y]=coup ecran.blit(image1, (cases*X1, cases*Y1)) pygame.display.flip() if event.type == pygame.KEYDOWN: continuer = False pygame.display.flip() pygame.quit()
Cliquez dans « l’image » puis collez le dans le programme pour pouvoir l’inclure dans ce dernier.
Aucune réponse