π
<-

Jeu : Mastermind

Jeu : Mastermind

Message non lude Wander » 16 Jan 2019, 22:44

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
Avatar de l’utilisateur
Wander
Niveau 0: MI (Membre Inactif)
Niveau 0: MI (Membre Inactif)
Prochain niv.: 0%
 
Messages: 2
Inscription: 16 Jan 2019, 22:32
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: Jeu : Mastermind

Message non lude meSitti2 » 17 Jan 2019, 11:03

I want to know if there are people still playing the forums again.
Avatar de l’utilisateur
meSitti2
Niveau 0: MI (Membre Inactif)
Niveau 0: MI (Membre Inactif)
Prochain niv.: 0%
 
Messages: 1
Inscription: 17 Jan 2019, 08:45
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: A

Re: Jeu : Mastermind

Message non lude parisse » 17 Jan 2019, 13:44

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.
Code: Tout sélectionner
# 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
Avatar de l’utilisateur
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 94.2%
 
Messages: 3810
Inscription: 13 Déc 2013, 16:35
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: Jeu : Mastermind

Message non lude Wander » 17 Jan 2019, 17:28

Bonjour,

Merci bien de votre réponse et pour les idées d'améliorations !
Avatar de l’utilisateur
Wander
Niveau 0: MI (Membre Inactif)
Niveau 0: MI (Membre Inactif)
Prochain niv.: 0%
 
Messages: 2
Inscription: 16 Jan 2019, 22:32
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: Jeu : Mastermind

Message non lude cent20 » 08 Sep 2019, 17:57

lien brisé ! La prochaine fois qu'un utilisateur propose un code il faut coller le script dans le forum, sinon ça disparaît... :f45:
Image
Enseignant Maths & NSI : Projets, tutos & ressources NumWorks.
📙 Mes 3 livres : Apprendre avec l'IA | Découvrir la NumWorks | Discovering the NumWorks.
Soutenez l'évolution de la NumWorks (un 👍 suffit) : #2292 & #1680.
Avatar de l’utilisateur
cent20VIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 51.4%
 
Messages: 1128
Images: 67
Inscription: 17 Mai 2012, 09:49
Localisation: Avignon
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: nsi_xyz

Re: Jeu : Mastermind

Message non lude critor » 08 Sep 2019, 17:58

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 ?...
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 53.7%
 
Messages: 42421
Images: 17170
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor


Retourner vers Programmation Python

Qui est en ligne

Utilisateurs parcourant ce forum: ClaudeBot [spider] et 1 invité

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
3325 utilisateurs:
>3301 invités
>16 membres
>8 robots
Record simultané (sur 6 mois):
29271 utilisateurs (le 11/07/2025)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)