Aide programmation Python

Fermé
CLBOEM Messages postés 2 Date d'inscription mercredi 24 avril 2019 Statut Membre Dernière intervention 28 avril 2019 - Modifié le 24 avril 2019 à 15:24
quent217 Messages postés 421 Date d'inscription vendredi 25 septembre 2015 Statut Membre Dernière intervention 1 mars 2024 - 28 avril 2019 à 22:00
Bonjour a tous, je suis en terminale S avec spé ISN. Mon programme ne marche pas mais je ne sais plus comment faire.. et je dois le rendre pour dans 1semaine..
Je vous copie et colle mon script python, j'ai voulu faire un jeu de UNO!
Merci beaucoup a ceux qui vont m'aider.

print("Bonjour ! En reoute pour le jeu !")

from random import *
import random

joueur = []
choix = []
carte_en_jeu = []
carte_depart = []
carte_tiree = []
carte = []
pioche = []
joueur1 = [joueur]
victoire =[]

couleurs = ["rouge","jaune","vert","bleu"]

carte = [(x,y) for x in range(11) for y in couleurs]*2

carte.append("(+2vert)")
carte.append("(+2rouge)")
carte.append("(+2jaune)")
carte.append("(+2bleu)")
carte.append("(+4)")
carte.append("(+4)")
carte.append("(+4)")
carte.append("(+4)")

carte.append(carte[0])
carte.append(carte[1])

shuffle(carte)
nom = input("saisissez votre prénom")
def creer_joueur():
    global carte_depart

    main = []
    for i in range(7):
        c = (choice(carte))

        main.append(c)
        carte.remove(c)

    joueur.append(nom,main)
    carte_depart = (choice(carte))
    carte_depart.append(c[0])
    carte_depart.append(c[1])
    carte_depart.append()
    print("La carte départ est {}".format(carte_depart))
    return(creer_joueur)

def joueur_actuel():
    for i in range(4):
        creer_joueur()
    pioche = carte
    print(pioche)


    for j in joueur:
        print(j[0],j[1])

    actif = (choice(joueur))
    print(actif[0], "commencer a jouer")
    encours = True
    return(joueur_actuel)

def montre_main(actif):
    main=actif
    print(main)
    return main

def selection_carte(main):
    global carte_tiree
    choix = input("Quelle carte choisissez-vous ?")

    carte_tiree.append(choix[0])
    carte_tiree.append(choix[1])

    print("La carte choisie est()".format(carte_tiree))
    return carte_tiree

def joue(joueur):
    global carte_tiree
    global carte_depart


    print(joueur)

    if carte_tiree[0] == carte_depart[0] or carte_tiree[1] == carte_depart[1]:
        carte_tiree = selection_carte(main)
        carte_en_jeu = selection_carte(main)

    else:
        print("Mauvaise carte !")
    return joue

print("La nouvelle carte est{}")

victoire == False
actuel = joueur1

while victoire == False:
    creer_joueur()
    joueur_actuel()
    montre_main(actif)
    selection_carte(main)
    joue(joueur)


    joue(actuel)
    if victoire == True:
        print("Vous avez gagné")
        break
A voir également:

1 réponse

heisenberg224 Messages postés 2 Date d'inscription mercredi 24 avril 2019 Statut Membre Dernière intervention 25 avril 2019
24 avril 2019 à 19:03
Ton code ne marche pas pour la raisons suivante :
T'utilises tes variables (Listes) main et actif dans différentes fonctions comme "selection_carte()" ou "joue()", mais elles ne sont pas déclarées de façon globale.
T'as déclaré par exemple ta variable main dans la fonction creer_joueur(), tu ne peux pas donc la réutiliser en dehors d'elle.
Pour y remédier, tu peux les déclarer comme tu l'as fait avec tes variables joueur, choix, carte_en_jeu, ...
J'espère avoir t'aider et bon courage pour ton projet.
0
CLBOEM Messages postés 2 Date d'inscription mercredi 24 avril 2019 Statut Membre Dernière intervention 28 avril 2019
28 avril 2019 à 15:48
Merci pour les conseils et j'ai changé ce que vous m'avez dit sauf que ca me met l'erreur suivant dans"random" : raise IndexError('Cannot choose from an empty sequence') from None
0
quent217 Messages postés 421 Date d'inscription vendredi 25 septembre 2015 Statut Membre Dernière intervention 1 mars 2024 346 > CLBOEM Messages postés 2 Date d'inscription mercredi 24 avril 2019 Statut Membre Dernière intervention 28 avril 2019
28 avril 2019 à 22:00
Pouvez-vous nous montrer votre nouveau code ?
0