un truc avec locals() .. mais parait que c'est très mal ...
j'ai commencé un code si ça t'intéresse.
from random import randint
from pygame import *
time.Clock() # initialise l'orloge en moins barbant
# creation du mask noir
mask = Surface((640,640),SRCALPHA)
mask.fill((0,0,0))
draw.circle(mask,(0,0,0,0),(320,320),320,0)
draw.circle(mask,(0,0,0),(320,320),140,0)
draw.line(mask,(0,0,0),(320,0),(320,640),9)
draw.line(mask,(0,0,0),(0,320),(640,320),9)
# creation de la fenetre
scr = display.set_mode((640,640))
# init des constantes et affichage du plateau par la meme occasion
DarkColor = (100,0,0),(0,0,100),(0,100,0),(100,0,100)
LightColor = (255,0,0),(0,0,255),(0,255,0),(255,0,255)
Rectangle = scr.fill(DarkColor[0],(0,0,320,320)), scr.fill(DarkColor[1],(320,0,320,320)), scr.fill(DarkColor[2],(0,320,320,320)), scr.fill(DarkColor[3],(320,320,320,320))
scr.blit(mask,(0,0))
display.flip()
# joue la sequence de simon
def play_sequence():
print "regarde !!!"
for chx in SimonSeq:
time.wait(500)
scr.fill(LightColor[chx],Rectangle[chx])
display.update(scr.blit(mask,(0,0)))
time.wait(500)
scr.fill(DarkColor[chx],Rectangle[chx])
display.update(scr.blit(mask,(0,0)))
Game = True
SimonSeq = []
while Game:
# simon ajoute une valeur a sa sequence puis la joue
SimonSeq.append(randint(0,3))
PlayerSeq = []
x = 0
time.wait(500)
play_sequence()
event.clear()
print 'a toi !!!'
laps = 1000+len(SimonSeq)*500
limit = time.get_ticks() + laps
# etc ...
while x < len(SimonSeq):
ev = event.poll()
color = scr.get_at(mouse.get_pos())
# etc ...
if ev.type == MOUSEBUTTONDOWN and ev.button == 1 and color in DarkColor:
chx = DarkColor.index(color)
scr.fill(LightColor[chx],Rectangle[chx])
scr.blit(mask,(0,0))
PlayerSeq.append(chx)
x += 1
if PlayerSeq != SimonSeq[:len(PlayerSeq)]:
Game = False
break
while mouse.get_pressed()[0] and scr.get_at(mouse.get_pos()) == LightColor[chx] and time.get_ticks() < limit:
event.pump()
draw.arc(scr,(255,100,200),(190,190,260,260),0,(6.28/laps)*(laps-limit+time.get_ticks()),120)
display.flip()
scr.fill(DarkColor[chx],Rectangle[chx])
scr.blit(mask,(0,0))
if time.get_ticks() > limit:
Game = False
break
draw.arc(scr,(255,100,200),(190,190,260,260),0,(6.28/laps)*(laps-limit+time.get_ticks()),120)
display.flip()
sa marche nikel .
Je vois des points sur lesquels je me prenait la tete alors toi c'est réglé vite et bien .. l'exemple qui me vient c'est quand tu joue la séquence de simon .
moi je n'ai pas trouvé mieux que de creer une variable qui est incrementé a 1 et ensuite remise a zero pour rendre la couleur de simon et ensuite rendre le fond ..
En 5 ligne tu règle le tout lol!
sa me prend le double voir le triple de ligne et en plus sa me force a creer 2 variables..
bon allé , un petit café et je me remet sur mon simon , j'aimerais bien posté la nouvelle version aujourd'hui..
je vois que j'ai de la concurence
la moindre étape sa me prend des heures par moment , la plupart du temp c'est juste une question de logique ..
l'autre par du temp c'est que a force de creer des variables je m'y perd , au début je les nommes bien , des noms facilement identifiable et au bout d'un moment je me met a utilisé des lettres simples .. ce qui ma ammené a bien des soucis .. xD
a ton niveau il te faudrait des exercices plus costaud .. du style une simulation de rubiks cube
a ton niveau il te faudrait des exercices plus costaud .. du style une simulation de rubiks cube
c'est exagéré dans la mesure où c'est la seule lib que je connaisse ... mais merci pour le compliment.
j'ai ajouté la temporisation à mon précédant code.
Bon sinon pour le rubiks , je me rend pas trop compte de la difficulté d'utilisé la 3D , par contre je crois avoir compris que tu aimes les jeux style casse-tete ! alors en voici 2 qui peuvent etre fait en 2D :
- La tour d'Hanoï , techniquement pas trop dur je pense - Tour d'Hanoi
- La tour de babel , il est cylindrique mais on peu le mettre a plat . un peu plus dur a mettre en place que le précédent
Python c'est bon, mangez-en.
Python c'est bon, mangez-en.