Partage
  • Partager sur Facebook
  • Partager sur Twitter

jeu de dé (Zanzibar)

programme python jeu de dé

7 février 2022 à 10:52:15

Bonjour a tous je dois faire un programme python pour jeudi et Voici les règles du jeu que je dois tranformer en code python et avec un langage facile (sinon le prof remarquera que ça ne viens pas de moi). Celui qui peit m'aider je lui serais reconnaissant x1000... merci a vous et bonne journée

Le zanzibar

  • de 2 joueurs à plus
  • 3 dés

Le premier joueur (que l'on déterminera comme on veut mais sans dispute!) lance les dés.
S'il fait un as (ou 1) il marque 100 points, s'il fait un 6 il marque 60 points, les autres faces du dé indiquant le nombre de points correspondant (2= 2 points, 3= 3 points, 4= 4 points, 5= 5 points)
= 100 points
= 2 points
= 3 points
= 4 points
= 5 points
= 60 points
On joue en un lancer de dés et on fait 3 tours.
Le gagnant est celui qui a le plus de points.


-
Edité par BertrantTraussar 7 février 2022 à 12:51:12

  • Partager sur Facebook
  • Partager sur Twitter
7 février 2022 à 11:08:17

Bonjour,

Le message qui suit est une réponse automatique activée par un membre de l'équipe. Les réponses automatiques leur permettent d'éviter d'avoir à répéter de nombreuses fois la même chose, ce qui leur fait gagner du temps et leur permet de s'occuper des sujets qui méritent plus d'attention.
Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter la personne en question par Message Privé.

Pour plus d'informations, nous vous invitons à lire les règles générales du forum

Manque de Politesse

Votre message ne comporte pas ou peu de formules de politesse (« Bonjour », « Merci », « Au revoir », etc.). Les règles du site exigent que chaque nouveau message comporte un minimum de politesse. Après tout, les gens qui répondent le font gratuitement, sur leur temps libre. Ils méritent bien un minimum de considération, n'est-ce pas ?

Manque de précisions

Vous êtes ici sur un forum d'entraide communautaire et non pas sur un forum de demande de service, le but n'est donc pas de fournir une réponse toute faite ou de directement fournir la solution à quiconque viendrait sans la moindre trace. Afin d'obtenir de l'aide et une solution à votre problème, il est fortement recommandé de présenter clairement l'état actuel du problème en nous fournissant :

  • Un descriptif clair et précis du problème => la où vous avez des difficultés
  • La tentative actuelle de résolution que vous avez effectué => Le code que vous avez écrit inséré sur le forum à l'aide du bouton code </>
  • Le résultat attendu et le résultat actuel
  • Toutes pistes de recherches pouvant aider à la résolution

Mauvais titre

Le titre est un élément important qui ne doit pas être négligé. N'oubliez pas cette règle simple : le titre idéal résume la question que vous allez poser en une petite phrase. Il doit permettre aux visiteurs de se repérer facilement dans le forum visité et d'identifier le sujet à sa seule lecture.

Vous pouvez utiliser divers préfixes comme [Erreur], [MySQL], [Compatibilité], etc... Aussi, pensez à consulter les règles propres à chaque forum (visibles dans les topics épinglés en haut des sections).

De plus, choisir un bon titre permet de rendre plus faciles les recherches des autres membres.

Les titres de type "besoin d'aide" ou "problème" ne sont pas tolérés.

Pour modifier votre titre, éditez le premier message de votre sujet.

(titre originel : travail en phyton)

Liens conseillés

  • Partager sur Facebook
  • Partager sur Twitter
7 février 2022 à 13:20:32

Bonjour,

"...avec un langage facile (sinon le prof remarquera que ça ne viens pas de moi)"

Tu rigoles, là ?

Il faut quand même que ca vienne un minimum de toi ...

C'est à faire en mode console ou avec une interface graphique ?

-
Edité par Phil_1857 7 février 2022 à 13:21:16

  • Partager sur Facebook
  • Partager sur Twitter
7 février 2022 à 18:43:42

Bon alors le cœur de ton jeu c'est un lancer de dé, donc un tirage aléatoire d'un entier compris entre 1 et 6 (inclus) 

Ensuite chaque nombre équivaut à un certain score, donc il faut transformer la valeur du dé en score (et comme il y a 3 dés par lancer, on jette 3 fois le dé par exemple et on calcule le score cumulé après chaque jet)

Ensuite, le jeu peut se jouer à 2 ou plus, donc ça serait bien de demander le nombre de joueurs, ça permettrait d'initialiser un tableau des scores par exemples (on pourrait aussi demander le nom des joueurs aussi).
Ensuite il y a 3 tours par joueur (donc je te laisse deviner ce qu'il faut faire) et enfin on détermine le gagnant par celui qui a le plus grand score.

A toi de jouer avec ces indications, comme on ne sait pas ce que tu as vu ou pas, et si il y a des contraintes particulières 

  • Partager sur Facebook
  • Partager sur Twitter
7 février 2022 à 18:56:36

BertrantTraussar a écrit:
> Bonjour a tous je dois faire un programme python pour jeudi ...
Tu as encore de la chance, on est lundi  ...
Je suppose que tu ne commais pas les dictionnaires?
Connais-tu les lisrtes? Les compréhensions?
Connais-tu les fonctions du module random?
etc. ?
  • Partager sur Facebook
  • Partager sur Twitter

Le Tout est souvent plus grand que la somme de ses parties.

8 février 2022 à 10:32:25

Bonjour Bertrant,

Ca ressemblerai à ça ?

  • Partager sur Facebook
  • Partager sur Twitter
8 février 2022 à 11:12:32

sauf qu'il y a 3 dés pour un lancer => Tour 1 -> Joueur 1 Lancer 5 + 3 + 1 -> 5 + 3 + 100 = 108 (etc, avec ou sans la phase intermédiaire de calcul)
  • Partager sur Facebook
  • Partager sur Twitter
8 février 2022 à 12:09:25

Ah oui, exact !

Donc plutôt ça:

  • Partager sur Facebook
  • Partager sur Twitter
9 février 2022 à 9:15:11 - Message modéré pour le motif suivant : Merci d'utiliser le bouton code du forum pour insérer votre code


9 février 2022 à 10:53:11

Bonjour, pas d'image de code inutilisable par copier coller pour tests éventuelles.

Merci de colorer votre code à l'aide du bouton Code

Les forums d'Openclassrooms disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source afin de les rendre plus lisibles et faciles à manipuler par les intervenants. Pour cela, il faut utiliser le bouton Code de l'éditeur, choisir un des langages proposés et coller votre code dans la zone prévue. Si vous utilisez l'éditeur de messages en mode Markdown, il faut utiliser les balises <pre class="brush: python;">Votre code ici</pre>.

En image cela donne :

Liens conseillés

  • Partager sur Facebook
  • Partager sur Twitter
9 février 2022 à 17:12:36

Bonjour Bertrant,

En gros, pour obtenir ce que tu vois sur mon image postée hier à 12h09, je fais ceci:

print du titre
question sur le nombre de joueurs

initialisation d'une liste pour compter les points : 0 fois le nb de joueurs
initialisation d'une liste pour les scores en fonction du lancer du dé : [100,2,3,4,5,60]
initialisation d'une liste avec 3 fois 0 pour le lancer de 3 dés

boucle sur le nombre de tours (3)
    boucle sur le nb de joueurs
        boucle sur 3 tours pour 3 lancer de dés avec random entre 1 et 6
            remplir la liste des lancer avec la valeur prise dans la liste des scores (ex: 1 donne 100)
        print des 3 lancer du joueur courant
        ajout de la somme des 3 lancers dans la liste pour compter les points du joueur courant
        (ex pour le 1er joueur : liste[0] += somme de la liste des 3 lancers)

Affichage des résultats:
boucle d'indice n sur la liste des comptes
    print n+1 : liste_des_comptes[n]



-
Edité par Phil_1857 9 février 2022 à 17:16:05

  • Partager sur Facebook
  • Partager sur Twitter
9 février 2022 à 18:45:46

Phil_1857 a écrit:

Bonjour Bertrant,

En gros, pour obtenir ce que tu vois sur mon image postée hier à 12h09, je fais ceci:

print du titre
question sur le nombre de joueurs

initialisation d'une liste pour compter les points : 0 fois le nb de joueurs
initialisation d'une liste pour les scores en fonction du lancer du dé : [100,2,3,4,5,60]
initialisation d'une liste avec 3 fois 0 pour le lancer de 3 dés

boucle sur le nombre de tours (3)
    boucle sur le nb de joueurs
        boucle sur 3 tours pour 3 lancer de dés avec random entre 1 et 6
            remplir la liste des lancer avec la valeur prise dans la liste des scores (ex: 1 donne 100)
        print des 3 lancer du joueur courant
        ajout de la somme des 3 lancers dans la liste pour compter les points du joueur courant
        (ex pour le 1er joueur : liste[0] += somme de la liste des 3 lancers)

Affichage des résultats:
boucle d'indice n sur la liste des comptes
    print n+1 : liste_des_comptes[n]



-
Edité par Phil_1857 il y a environ 1 heure

Bonjour Phil je vous remercie infiniment mais j'aimerais bien si possible si cela nous vous dérange pas de me le traduire en langage python car je ne comprend absolument rien... pour ainsi directement le copier coller sur la console

  • Partager sur Facebook
  • Partager sur Twitter
9 février 2022 à 19:08:55

Le but ici ce n'est pas vraiment de faire le code à ta place. Tu as du voir quelques bases de python si on te demande d'écrire ce jeu (lecture d'une saisie utilisateur (input), affichage (print), boucle for/while, condition if, les listes)
  • Partager sur Facebook
  • Partager sur Twitter
9 février 2022 à 19:18:15

umfred a écrit:

Le but ici ce n'est pas vraiment de faire le code à ta place. Tu as du voir quelques bases de python si on te demande d'écrire ce jeu (lecture d'une saisie utilisateur (input), affichage (print), boucle for/while, condition if, les listes)


En vérité pour tout te dire le seul truc qui me pose problème c'est les listes car j'ai était positif et j'ai raté les cours dessus sinon pour le reste je me débrouille mais juste j'ai vraiment besoin d'aide pour les liste.
  • Partager sur Facebook
  • Partager sur Twitter
9 février 2022 à 19:59:51 - Message modéré pour le motif suivant : Merci d'utiliser le bouton code du forum pour insérer votre code


10 février 2022 à 1:41:42

J'ajoute ce lien à ceux de umfred:


https://www.programiz.com/python-programming/list

  • Partager sur Facebook
  • Partager sur Twitter

Le Tout est souvent plus grand que la somme de ses parties.

10 février 2022 à 16:18:14

Bonjour a tous,  j'ai essayé grâce à phil de faire mon programme mais je n'y arrive pas. voici mon programme, que puis-je changer?
print("jeu du zanzibar:")
input("nombre de joueurs?")

def de():
    return de

points = [0,0] #initialisation d'une liste pour compter les points : 0 fois le nb de joueurs
scores = [100,2,3,4,5,60] #initialisation d'une liste pour les scores en fonction du lancer du dé
lancer_de_dé = [0,0] #initialisation d'une liste avec 3 fois 0 pour le lancer de 3 dés

for i in range(3): #boucle sur le nombre de tours
    for k in range(2): #boucle sur le nombre de joueurs
        for s in range(3):
            z=1 #position initiale
            z1=0 #nouvelle position

            def dé():
                print (z1)

            dé ()
            z=z1


            if scores == 1: #remplir la liste des lancer avec la valeur prise dans la liste des scores
                points[0]=scores
            if scores == 2:
                points[1]=scores
            if scores == 3:
                points[2]=scores
            if scores == 4:
                points[3]=scores
            if scores == 5:
                points[4]=scores
            if scores == 6:
                points[5]=scores
        print(lancer_de_dé) #affichage des 3 lancers
  • Partager sur Facebook
  • Partager sur Twitter
10 février 2022 à 18:14:27

BertrantTraussar a écrit:
> Bonjour a tous je dois faire un programme python pour jeudi et Voici les règles du jeu que je dois tranformer en code python et avec un langage facile
On est maintenant jeudi ...
> Bonjour a tous,  j'ai essayé grâce à phil de faire mon programme mais je n'y arrive pas. voici mon programme, que puis-je changer?
Hmmm, à peu près tout ...
Dans quelle variable mets-tu le nombre de joueurs?
Le lien vers le tuto de Pascal Ortiz te dirait clairement comment initialiser une liste vide d'une longueur variable.
Je ne vois rien qui permet de choisir un dé au hasard.
Les liens fournis par humfred et moi te diraient comment accéder à un élément d'une liste ou le modifier.
lancer_de_dé = [0,0] #initialisation d'une liste avec 3 fois 0 pour le lancer de 3 dés
Je ne vois que 2 entrées ...
            if scores == 1: #remplir la liste des lancer avec la valeur prise dans la liste des scores
                points[0]=scores
Autre exemple où tu ne comprends pas comment accéder à un élément d'une liste.
Ça peut ressembler à ceci:
points[joueur] += score[lancer]
  • Partager sur Facebook
  • Partager sur Twitter

Le Tout est souvent plus grand que la somme de ses parties.

10 février 2022 à 20:14:22

PierrotLeFou a écrit:

BertrantTraussar a écrit:
> Bonjour a tous je dois faire un programme python pour jeudi et Voici les règles du jeu que je dois tranformer en code python et avec un langage facile
On est maintenant jeudi ...
> Bonjour a tous,  j'ai essayé grâce à phil de faire mon programme mais je n'y arrive pas. voici mon programme, que puis-je changer?
Hmmm, à peu près tout ...
Dans quelle variable mets-tu le nombre de joueurs?
Le lien vers le tuto de Pascal Ortiz te dirait clairement comment initialiser une liste vide d'une longueur variable.
Je ne vois rien qui permet de choisir un dé au hasard.
Les liens fournis par humfred et moi te diraient comment accéder à un élément d'une liste ou le modifier.
lancer_de_dé = [0,0] #initialisation d'une liste avec 3 fois 0 pour le lancer de 3 dés
Je ne vois que 2 entrées ...
            if scores == 1: #remplir la liste des lancer avec la valeur prise dans la liste des scores
                points[0]=scores.
Autre exemple où tu ne comprends pas comment accéder à un élément d'une liste.
Ça peut ressembler à ceci:
points[joueur] += score[lancer]

C'est trop pour moi j'abandonne quitte a me prendre un 0/20.

  • Partager sur Facebook
  • Partager sur Twitter
11 février 2022 à 2:25:43

Tu n'as pas été très persévérant
-
from random import randint
njoueurs = int(input("Donnez le nombre de joueurs "))
points = [0]*njoueurs   # Liste des points
scores = [100, 2, 3, 4, 5, 60]   # Liste des scores
for t in range(3):   # Boucle sur les tours
    for joueur in range(njoueurs):   # Boucle sur les joueurs
        for d in range(3):   # Boucle sur les dés
            valeur = randint(1, 6)   # Valeur du d-ième dé (de 1 à 6)
            points[joueur] += scores[valeur-1]   # Les indices commencent à 0
meilleur = -1   # Différent de tous
maximum = -1   # Plus petit que tous
for joueur in range(njoueurs):
    print("Pour le joueur", joueur+1, "le score est", points[joueur])
    if points[joueur] > maximum:
        maximum = points[joueur]
        meilleur = joueur
print("Le meilleur est", meilleur+1, "avec un score de", maximum)
-
Donnez le nombre de joueurs 5                                                                                           
Pour le joueur 1 le score est 201                                                                                       
Pour le joueur 2 le score est 415                                                                                       
Pour le joueur 3 le score est 241                                                                                       
Pour le joueur 4 le score est 235                                                                                       
Pour le joueur 5 le score est 332                                                                                       
Le meilleur est 2 avec un score de 415
  • Partager sur Facebook
  • Partager sur Twitter

Le Tout est souvent plus grand que la somme de ses parties.

11 février 2022 à 9:54:26

Bonjour,

C'est vrai que tu ne maitrises pas tout:

input("nombre de joueurs?")    avec input, il faut mettre la réponse dans une variable : nb_joueurs = input("nombre de joueurs?")

lancer_de_dé = [0,0] #initialisation d'une liste avec 3 fois 0 pour le lancer de 3 dés

ok, mais il n'y a que 2 fois 0 dans ta liste !

def dé(): en général, en informatique, on ne met pas de caractères accentués dans les noms de variables ou de fonctions

de plus, tu redéfini plusieurs fois ta fonction car elle est dans la boucle !

Ta série de test if à la fin est bizarre

Et finalement, on a du te donner la solution toute cuite ...

Moi, j'ai fait comme ça:

import random

print('\n' + ''' Jeu du Zanzibar '''.center(40,'*'))
joueurs = int(input('\nNombre de joueurs ? : '))
print('\nAppuyer sur Entrée entre chaque tour\n')

comptes = [0 for x in range(joueurs)]
scores = [100,2,3,4,5,60]
lancer = [0,0,0]

for k in range(3):
    print('*** Tour {}'.format(k+1))
    for j in range(joueurs):
        for i in range(3): lancer[i] = scores[random.randint(1,6)-1]

        print('\tJoueur {}  3 dés : {} {} {}'.format(j+1, lancer[0],lancer[1],lancer[2]))
        comptes[j] += sum(lancer)

    if(k < 2): input()

print('\n*** Résultats :')
comptes_tries = [(comptes[i],i) for i in range(len(comptes))]
comptes_tries.sort()
for compte in comptes_tries: print('Joueur {} : {}'.format(compte[1]+1, compte[0]))



  • Partager sur Facebook
  • Partager sur Twitter
25 janvier 2023 à 3:21:18

Le jeu du black jack python 

Bonjour, 

j’ai un jeu à faire et je n’y arrive pas malgré mes plusieurs tentative. 

la Règle du jeu est la suivant:

un joueur joue contre un ordinateur. le joueur lance le nombre de fois qu’il veut le dés. A la fin la somme des nombres de fois qu’il a lancé le des ne doit pas faire plus que 21 et de même pour l’ordinateur.

je suis preneuse de toute aide!! 

merci à toute personne qui prend le temps de lire ou me répondre 

  • Partager sur Facebook
  • Partager sur Twitter
25 janvier 2023 à 4:22:13

@LolaLutani Bonsoir, merci de ne pas squatter les sujet des autres et de ce fait de créer un déterrage, créer votre propre sujet.

Déterrage

Citation des règles générales du forum :

Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.

Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre.
En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.

Au lieu de déterrer un sujet il est préférable :

  • soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
  • soit de créer un nouveau sujet décrivant votre propre contexte
  • ne pas répondre à un déterrage et le signaler à la modération

Je ferme ce sujet. En cas de désaccord, me contacter par MP.

  • Partager sur Facebook
  • Partager sur Twitter