Le Cavalier d’Euler

import pygame

pygame.init()
ecran = pygame.display.set_mode((640, 640))

continuer = True
while continuer:
    for event in pygame.event.get():
        if event.type == pygame.KEYDOWN:
            continuer = False
    pygame.display.flip()
pygame.quit()

Grâce au code ci-dessus, on fait apparaître la base de échiquier(noir).

Ensuite, on établit un code qui nous permet de faire apparaître les premières cases :

import pygame
blanc=(255,255,255)
noir=(0,0,0)
jaune=(255,255,0)
cases=80

pygame.init()
ecran = pygame.display.set_mode((640, 640))
pygame.draw.rect(ecran,blanc, (0,0,cases,cases))
pygame.draw.rect(ecran,jaune, (80,0,cases,cases))
continuer= True

while continuer:
    for event in pygame.event.get():
        if event.type == pygame.KEYDOWN:
            continuer=False
    pygame.display.flip()
pygame.quit()

Suite aux deux codes qui ont été établit on forme alors l’échiquier de façon complète :

import pygame
import random
n,p=8,8
blanc=(255,255,255)
noir=(0,0,0)
cases=80
def damier():
    for i in range(8):
        for j in range(8):
            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))
pygame.init()
ecran=pygame.display.set_mode((640, 640))
damier()
continuer=True
while continuer:
     for event in pygame.event.get():
         if event.type == pygame.KEYDOWN:
             continuer=False
     pygame.display.flip()
pygame.quit()

On peut alors intégrer une photo et déplacer le cavalier sur tout l’échiquier :

import pygame
import random
n,p=8,8
blanc=(255,255,255)
orange=(255,128,0)
cases=80
echiquier=[[0]*n for i in range(p)]
X1=random.randint(0,n-1)
Y1=random.randint(0,p-1)

def damier():
    for i in range(8):
        for j in range(8):
            if (i+j)%2==1:
                pygame.draw.rect(ecran,blanc, (cases*i,cases*j,cases,cases))
            else:
                pygame.draw.rect(ecran,orange, (cases*i,cases*j,cases,cases))
pygame.init()
ecran=pygame.display.set_mode((640, 640))
image=pygame.image.load("Bebeyoda.JPEG")
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
            X1=pos_mouse[0]//80
            Y1=pos_mouse[1]//80
            damier()
            ecran.blit(image1, (cases*X1, cases*Y1))
            pygame.display.flip()
        if event.type == pygame.KEYDOWN:
            continuer=False
    pygame.display.flip()
pygame.quit()

On obtient un rendu customisé selon les paramètres qu’on a appliqués :

Voici la photo de mon échiquier :

Voici la partie du code qui nous permet de déplacer le cavalier sur l’échiquier :

def damier():
    for i in range(8):
        for j in range(8):
            if (i+j)%2==1:
                pygame.draw.rect(ecran,blanc, (cases*i,cases*j,cases,cases))
            else:
                pygame.draw.rect(ecran,orange, (cases*i,cases*j,cases,cases))
pygame.init()
ecran=pygame.display.set_mode((640, 640))
image=pygame.image.load("Bebeyoda.JPEG")
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
            X1=pos_mouse[0]//80
            Y1=pos_mouse[1]//80
            damier()
            ecran.blit(image1, (cases*X1, cases*Y1))
            pygame.display.flip()
        if event.type == pygame.KEYDOWN:
            continuer=False
    pygame.display.flip()
pygame.quit()

Pour finir, on établit un code ou doit se déplacer le plus de fois sans se bloquer, vous pouvez tester cela avec le code ci-dessous :

import pygame
import random
n,p=8,8
coup=0
blanc=(255,255,255)
orange=(255,128,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,orange, (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("Bebeyoda.JPEG")
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()

Aucune réponse

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *