Bonjour,
Possédant depuis peu une numworks, je m'essaye a la programmation de jeu dessus.
J'ai développé un petit mastermind, jeu de mon enfance !
Il est possible d'aller au maximum sur une grille de 15 de longueur et 6 de large.
12 couleurs au choix, sachant qu'il est possible d'en rajouter dans le code facilement.
Le jeu permet d'avoir ou non des doublons de couleur et des cases vides.
Une fois une proposition de code faite, le jeu répond par des points noir pour les couleurs bien placées et une pion rouge pour celles mal placées. Lancer le jeu avec : md()
Je vous laisse le lien : https://workshop.numworks.com/python/au ... mastermind
J'ai appris la programmation seul, le code n'est donc pas forcément optimisé
Si vous avez des pistes d'amélioration !
J'espère avoir posté ceci au bon endroit dans le forum.
Cordialement.
A.Bossard
Jeu : Mastermind
6 posts
• Page 1 of 1
-
Wander
Niveau 0: MI (Membre Inactif)- Posts: 2
- Joined: 16 Jan 2019, 22:32
- Gender:
- Calculator(s):→ MyCalcs profile
Re: Jeu : Mastermind
I want to know if there are people still playing the forums again.
-
meSitti2
Niveau 0: MI (Membre Inactif)- Posts: 1
- Joined: 17 Jan 2019, 08:45
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: A
Re: Jeu : Mastermind
Excellent!
Je viens de faire une adaptation pour Casio Graph 90+e. Les principaux changements sont la largeur fixee a 4 (taille de l'ecran et position de l'inputline) et la possibilite de passer des parametres en ligne de commande, en particulier de pouvoir jouer tout de suite avec des parametres par defaut, que vous pouvez back-porter sur la Numworks. Le code est aussi plus compact pour Casio car KhiCAS a des primitives pour tracer des cercles remplis et des rectangles/segments. Attention, il faut mettre a jour KhiCAS.
Je viens de faire une adaptation pour Casio Graph 90+e. Les principaux changements sont la largeur fixee a 4 (taille de l'ecran et position de l'inputline) et la possibilite de passer des parametres en ligne de commande, en particulier de pouvoir jouer tout de suite avec des parametres par defaut, que vous pouvez back-porter sur la Numworks. Le code est aussi plus compact pour Casio car KhiCAS a des primitives pour tracer des cercles remplis et des rectangles/segments. Attention, il faut mettre a jour KhiCAS.
- Code: Select all
# jeu de Mastermind, md(-1) parametres par defaut, md() pour les definir
# D'apres le script de Aurelien Bossard pour Numworks
# https://workshop.numworks.com/python/aurelienbossard/mastermind
def md(long=0,Color=0,multi=-1,vide=-1):
larg=4
if long==-1:
long=15
Color=6
multi=0
vide=0
if long==0:
long=min(15,max(1,int(input("Nombre d'essais ?"))))
if Color==0:
Color=min(12,max(4,int(input("Nombre de Couleurs ?"))))
if multi==-1:
multi=int(input("Doublons 0/1 ?"))
if vide==-1:
vide=int(input("Cases vides 0/1 ?"))
for y in range(20,20+20*larg+1,20):
draw_line(0,y, 20*long+1,y,0)
for x in range(0,20*long+1,20):
draw_line( x,20,x,20+20*larg,0)
Colors=[red,blue,green,yellow,magenta,cyan,black,544,63872,28672,10,55296,1760,27,65376,64288,63500,1247,63515,2028]
Couleur=Colors[0:Color]
if vide==1:
Couleur.append(65535)
for a in range(0,len(Couleur)):
draw_circle(10+20*a,210,8,Couleur[a]+filled)
draw_string(str(a+1),20*a,184)
for x in range(0,20*len(Couleur)+1):
for y in range(185,221,15):
if y>200:
y+=5
set_pixel(x,y,0)
for x in range(0,20*len(Couleur)+1,20):
draw_line(x,185,x,220,0)
code=[]
compteur=0
while compteur<larg:
Rand=choice(Couleur)
if multi==0:
if Rand not in code:
code.append(Rand)
compteur+=1
else:
code.append(Rand)
compteur+=1
Longueur=-1
while Longueur<long-1:
liste=[]
Longueur+=1
largueur=0
while largueur<larg:
c=input("")
if c=="":
continue
c=int(c)-1
if 0<=c<len(Couleur):
draw_circle(10+20*Longueur,30+20*largueur,8,Couleur[c]+filled)
largueur+=1
liste.append(Couleur[c])
comp=[]
copyl=[]
copyc=[]
for a in range(0,larg):
copyc.append(code[a])
copyl.append(liste[a])
for a in range(0,larg):
if copyl[a]==copyc[a]:
comp.append(0)
copyc[a]=0
copyl[a]=1
for a in range(0,larg):
for b in range(0,larg):
if copyl[a]==copyc[b]:
comp.append(55296)
copyl[a]=1
copyc[b]=0
for a in range(0,len(comp)):
fill_rect(1+10*(a%2)+20*Longueur,21+20*larg+10*(int(a/2)),10,10,comp[a])
if liste==code:
draw_string("Gagne ! :"+str(Longueur+1)+" coups",20,160)
return 1
draw_string("Perdu !",20,160)
for a in range(0,len(code)):
draw_circle(310,30+20*a,8,code[a]+filled)
for a in range(0,len(code)):
draw_rectangle(300,20+20*a,20,20)
return 0
-
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)- Posts: 3667
- Joined: 13 Dec 2013, 16:35
- Gender:
- Calculator(s):→ MyCalcs profile
Re: Jeu : Mastermind
Bonjour,
Merci bien de votre réponse et pour les idées d'améliorations !
Merci bien de votre réponse et pour les idées d'améliorations !
-
Wander
Niveau 0: MI (Membre Inactif)- Posts: 2
- Joined: 16 Jan 2019, 22:32
- Gender:
- Calculator(s):→ MyCalcs profile
Re: Jeu : Mastermind
lien brisé ! La prochaine fois qu'un utilisateur propose un code il faut coller le script dans le forum, sinon ça disparaît...
Enseignant de mathématiques et d'informatique. Spécialité NSI : Des projets, des tutos, mais aussi de l'art
Calculatrice NumWorks : Des applications et des jeux, scripts, 📙 Découvrir la NumWorks
-
cent20VIP++
Niveau 14: CI (Calculateur de l'Infini)- Posts: 1052
- Images: 67
- Joined: 17 May 2012, 09:49
- Location: Avignon
- Gender:
- Calculator(s):→ MyCalcs profile
- Twitter: nsi_xyz
Re: Jeu : Mastermind
Merci.
Là par contre, l'utilisateur existe toujours :
https://workshop.numworks.com/python/aurelienbossard/
Il a supprimé son script ou l'a passé en privé alors ?...
Là par contre, l'utilisateur existe toujours :
https://workshop.numworks.com/python/aurelienbossard/
Il a supprimé son script ou l'a passé en privé alors ?...
-
critorAdmin
Niveau 19: CU (Créateur Universel)- Posts: 42004
- Images: 15907
- Joined: 25 Oct 2008, 00:00
- Location: Montpellier
- Gender:
- Calculator(s):→ MyCalcs profile
- YouTube: critor3000
- Twitter: critor2000
- GitHub: critor
6 posts
• Page 1 of 1
Return to Programmation Python
Who is online
Users browsing this forum: ClaudeBot [spider] and 0 guests