#------------# #Importations# #------------# from Fonctions import* import math import random import pygame import numpy as np from pygame.locals import * from math import* import copy import time #---------# #Variables# #---------# #Bases# T=50 Repère=["x","y","z"] EcranAtt={"Longueur":700,"Hauteur":700} VisionAtt={"Horizontal":70,"Vertical":40} #180,90 EspaceAtt={"Longueur":T,"Hauteur":T,"Profondeur":T} #Espace# L=EspaceAtt["Longueur"] H=EspaceAtt["Hauteur"] P=EspaceAtt["Profondeur"] #Positions# Milieu=[L//2,H//2,P//2] P1=[L//2+80,H//2-35,0] P5=[L//2+8,H//2-6,0] P2=[350,150,250] P3=[3,1,2] P4=[35,15,25] P6=[L//2+20,H//2-15,0] #Couleurs# BLACK = ( 0, 0, 0) WHITE = ( 255, 255, 255) GREEN = ( 0, 255, 0) RED = ( 255, 0, 0) BLUE = ( 0, 0, 255) YELLOW = ( 255, 255, 0) COULEUR=GREEN FOND=BLACK #---------# #Fonctions# #---------# #Echecs# #Secondaires# def ColorierFace(x,y,z,Z,Couleur): global Espace for j in range(y,Y): for i in range(x,X): Espace[z][j][i]=Couleur def VoirLigne(Ligne): i=0 while i=len(Espace[0][0])-1: Bool=False if y<0 or y>=len(Espace[0])-1: Bool=False if z<0 or z>=len(Espace)-1: Bool=False return Bool def Plaquer(Espace,Plan,Dimension,Valeur): V=Valeur D=Dimension for j in range(len(Plan)): for i in range(len(Plan[j])): if D=="z": Espace[V][j][i]=Plan[j][i] if D=="y": Espace[j][V][i]=Plan[j][i] if D=="x": Espace[j][i][V]=Plan[j][i] #print(i,j,V,len(Plan),len(Plan[0]),len(Espace),len(Espace[0])) return Espace def ContourD2(Espace,Couleur): l=len(Espace[0][0]) h=len(Espace[0]) p=len(Espace) Plan=Dimensionner([h,p]) Plan=ContourD1(Plan,Couleur) Espace=Plaquer(Espace,Plan,"x",0) Espace=Plaquer(Espace,Plan,"x",l-1) Plan=Dimensionner([l,p]) Plan=ContourD1(Plan,Couleur) Espace=Plaquer(Espace,Plan,"y",0) Espace=Plaquer(Espace,Plan,"y",h-1) return Espace def Insérer(Espace,Objet,Coordonnées): L1=len(Objet[0][0]) H1=len(Objet[0]) P1=len(Objet) C=Coordonnées[:] k2=-P1//2+C[2] k1=-H1//2+C[1] k0=-L1//2+C[0] for P in range(P1): for H in range(H1): for L in range(L1): p=P+k2 h=H+k1 l=L+k0 Espace[p][h][l]=Objet[P][H][L] return Espace def ContourD1(Plan,Couleur): l1=len(Plan[0]) l2=len(Plan) for i in range(l1): Plan[0][i]=Couleur Plan[l2-1][i]=Couleur for j in range(l2): Plan[j][0]=Couleur Plan[j][l1-1]=Couleur return Plan def Face(Espace,Ecran): L=len(Espace[0][0]) H=len(Espace[0]) P=len(Espace) for Z in range(0,P): for Y in range(0,H): for X in range(0,L): K=P-Z-1 if Espace[K][Y][X]!=None: Ecran[Y][X]=Espace[K][Y][X] return Ecran def Elargir(Liste,Facteur=2): Sortie=[] for i in Liste: for d in range(Facteur): Sortie.append(i) return Sortie def Agrandir(Espace,Facteur): h=len(Espace[0]) p=len(Espace) for k in range(p): for j in range(h): Espace[k][j]=Elargir(Espace[k][j],Facteur) for k in range(p): Espace[k]=Elargir(Espace[k],Facteur) Espace=Elargir(Espace,Facteur) return Espace def Dimensionner(Attributs,Valeur=None): Type=type(Attributs) if Type==dict: Liste=list(Attributs.values()) elif Type==list: Liste=Attributs else: Erreurs("Dimensionner") return None if len(Liste)==2: Objet=[[Valeur for i in range(Liste[0])] for j in range(Liste[1])] if len(Liste)==3: Objet=[[[Valeur for i in range(Liste[0])] for j in range(Liste[1])] for k in range(Liste[2])] return Objet def Contact(x,y,Alpha,i): Angle=i*math.tan(Alpha) Y1=int(float(x-0.5)*Angle) Y2=int(float(x+0.5)*Angle) if Y1