Le cavalier d’Euler

Définition de l’espace de jeu (création de l’échiquier) :

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()

Programme pour mettre de la couleur aux 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()

Programme pour remplir avec des couleurs les cases de tous l’échiquier :

import pygame
import random
n,p=8,8
violet=(255,0,255)
jaune=(255,255,0)
cases=80
def damier():
    for i in range (8):
        for j in range (8):
            if (i+j)%2==1:
                pygame.draw.rect(ecran,violet, (cases*i,cases*j,cases,cases))
            else:
                pygame.draw.rect(ecran,jaune, (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()

Programme pour mettre un ‘cavalier’ sur l’échiquier :

import pygame
import random
n,p=8,8
rouge=(255,0,0)
jaune=(240,200,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,rouge, (cases*i,cases*j,cases,cases))
            else:
                pygame.draw.rect(ecran,jaune, (cases*i,cases*j,cases,cases))

pygame.init()
ecran=pygame.display.set_mode((640,640))
image = pygame.image.load("ronald.jpg")
image1= pygame.transform.scale(image,(cases,cases))
damier()
ecran.blit(image1, (cases*X1, cases*Y1))
continuer = True

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

Le rendu de l’échiquier :

La photo du cavalier :

Le programme pour déplacer le cavalier:

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,jaune, (cases*i,cases*j,cases,cases))

pygame.init()
pygame.font.init()
ecran=pygame.display.set_mode((640,640))
image = pygame.image.load("ronald.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
            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()

Programme finale pour mettre le jeu en place :

import pygame
import random
n,p=8,8
coup=0
rouge=(255,0,0)
jaune=(240,200,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,rouge, (cases*i,cases*j,cases,cases))
            else:
                pygame.draw.rect(ecran,jaune, (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("ronald.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()  

Exemple du jeu :

No Responses

Leave a Reply

Your email address will not be published. Required fields are marked *