Programa del juego de la ruleta

Resuelto
DarkSniper -  
FiceA Mensajes publicados 38 Estado Miembro -
Hola a todos los ceros,
aquí está mi problema, con un amigo, queremos programar el juego de la ruleta (el que se encuentra en los casinos) en lenguaje python. El problema es que tenemos dificultades para estructurar nuestro programa porque hemos añadido una dificultad que es la elección del número de jugadores para la partida.
Les explico el programa que queremos crear:

Desarrollo de una partida: "Introducción":

-Se elige el número de jugadores

-Se asigna un nombre a cada jugador (ej: el 1º será jugador1, el 2º será jugador2,...)

-Luego se indica el monto de su cartera (ej: 1000€ cada uno)

-A continuación, la apuesta mínima así como la apuesta máxima

El juego (para hacer en bucle):

-Se le pide al jugador, uno a uno, que elija un número entre 0 y 36, luego el monto de su apuesta

-Cuando se han hecho las apuestas, el programa genera un número aleatorio entre 0 y 36

-Luego se muestra este número ganador, y para cada jugador, se muestran sus ganancias o pérdidas.

-Se muestra, además, el monto de su cartera (actualizado)

-Si hay una quiebra (es decir, si uno de los jugadores ya no tiene dinero en su cartera), la partida se detiene

-Por último, se pregunta si quieren hacer otra ronda o salir

Este es el programa que nos gustaría concebir.

Nos hemos inclinado por el uso de listas/arreglos con el uso del bucle For, que creo que es la manera más simple de hacer este programa. Pero teniendo algunas lagunas en el uso de estas listas/arreglos, decidimos pedirles un poco de ayuda.

Todas las ideas son bienvenidas, gracias de antemano por la ayuda que puedan aportar sobre este tema.

3 respuestas

DarkSniper
 
```python
from random import randrange

class Joueur:
def __init__(self, nom, argent):
self.nom = str(nom)
self.argent = int(argent)
self.numero = 0
self.mise = 0

nbJoueurs = int(input("Nombre de joueurs : "))
joueurs = []
sargent = []

sargent_initial = input("Argent de départ : ")
for _ in range(nbJoueurs):
sargent.append(int(sargent_initial))

continuer_partie = True

while continuer_partie:
for x in range(nbJoueurs):
joueurs.append(Joueur(input(("Numero choisit du joueur " + str(x + 1) + " : ")), sargent[x]))

for x in range(nbJoueurs):
joueurs[x].mise = int(input("Mise du joueur " + str(x + 1) + " : "))

# Affichage du numero gagnant (aléatoirement)
numero_gagnant = randrange(1, 37)
print("La roulette tourne,...... tourne, ...... tourne, ...... tourne, et s'arrete sur le numero", numero_gagnant)

for x in range(nbJoueurs):
if joueurs[x].numero == numero_gagnant:
print("Felicitation, votre numero est le bon, vous obtenez ", joueurs[x].mise * 35, "euros!")
sargent[x] = sargent[x] + joueurs[x].mise * 35
else:
print("Desoler l'ami, c'est pas pour cette fois. Vous perdez votre mise qui est de", joueurs[x].mise, "euros")
sargent[x] = sargent[x] - joueurs[x].mise

# On interrompt la partie si le joueur est ruine
for x in range(nbJoueurs):
if sargent[x] <= 0:
print("Vous etes ruine! C'est la fin de la partie.")
continuer_partie = False
break
else:
# On affiche l'argent du joueur
print("Le joueur " + str(x + 1) + " a desormais", sargent[x], "euros")

quitter = input("Souhaitez-vous quitter le casino (o/n) ? ")
if quitter.lower() == "o":
print("Vous quittez le casino avec vos gains.")
continuer_partie = False
```
3
Zephirr Mensajes publicados 320 Fecha de registro   Estado Miembro Última intervención   100
 
¿Utilizas Python 2 o 3?
0
Zephirr Mensajes publicados 320 Fecha de registro   Estado Miembro Última intervención   100
 
No has entendido aparentemente
sargent
:
es el dinero de partida para todos los jugadores (s de start) que es un int.

Para acceder al dinero de uno de los jugadores, no debes hacer
sargent[x]
sino
jugadores[x].argent


Finalmente, con un objetivo de optimización, en lugar de
for x in range(0, nbJoueurs): jugadores.append(Jugador(input(("Número elegido del jugador "+str(x+1)+" : ")), sargent)) for x in range(0, nbJoueurs): jugadores[x].mise = int(input("Apuesta del jugador "+str(x+1)+" : "))

mejor pon:
for x in range(0, nbJoueurs): jugadores.append(Jugador(input(("Número elegido del jugador "+str(x+1)+" : ")), sargent)) jugadores[x].mise = int(input("Apuesta del jugador "+str(x+1)+" : "))
0