#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Cours OC/python 3 - TP: tous au ZCasino [TP 1.9: zcasino](https://openclassrooms.com/courses/apprenez-a-programmer-en-python/tp-tous-au-zcasino) Un petit jeu de roulette très simplifie ======================================= Le joueur mise sur un numero compris entre 0 et 49 En choisissant son numero, il mise Les numeros pairs sont noire, les impairs sont de rouge Quand la roulette s'arrete: -Si numero gagnant: gain = 3x la mise -Si meme couleur: gain = 50% de la mise -Sinon la mise est perdue """ import math import random import os ############# # VARIABLES # ############# jeu_continu = True credit = 1000 filename = ".highscore" old_highscore = -1 ######### # TEXTE # ######### curr_symb = "€" disclamer = "Bienvenu à la roulette, vous avez un crédit de " + \ str(credit) + curr_symb + ": bonne partie." err_plage = "Il faut saisir un nombre dans la plage indiquée! " err_saisie = "Il faut saisir un nombre! " msg_resultat = "\nLa bille s'arrête sur le nunéro: " msg_numero = "\nVotre nombre est gagnant! Votre gain: " msg_couleur = "\nVotre couleur est gagnante! Votre gain: " msg_perdu = "\nVous perdez votre mise!" msg_continue = "Pour arrêter la partie, tapez « n »: " msg_solde = "Votre solde : " msg_arret = "Vous avez décidé d'arrêter la partie avec un solde de: " msg_final = "Votre solde à atteind 0€: la partie s'arrête" msg_no_score = "Pas d'ancien score." msg_best_score = "Bravo, vous battez le précédent record de gain qui était: " msg_bad_score = "Le record de gain enregistré était: " ################ # DÉBUT DU JEU # ################ print(disclamer) while jeu_continu is True: # Saisie & validation du choix choix_valeur = 50 while choix_valeur >= 50 or choix_valeur < 0: choix_valeur = input("Quel numéro choisissez vous (0-49)?") try: choix_valeur = int(choix_valeur) except ValueError: print(err_saisie) choix_valeur = 50 continue if choix_valeur >= 50 or choix_valeur < 0: print(err_plage) # Saisie & validation de la mise mise = 0 while mise <= 0 or mise > credit: mise = input("Quelle est votre mise (1-" + str(credit) + "?)") try: mise = int(mise) except ValueError: print(err_saisie) mise = 0 continue if mise <= 0 or mise > credit: print(err_plage) result_valeur = random.randrange(50) # Roulette # Comparaison if result_valeur == choix_valeur: gain = mise * 3 msg = msg_resultat + str(result_valeur) + msg_numero + \ str(gain) + curr_symb elif result_valeur % 2 == choix_valeur % 2: gain = math.ceil(mise / 2) msg = msg_resultat + str(result_valeur) + msg_couleur + \ str(gain) + curr_symb else: gain = - mise msg = msg_resultat + str(result_valeur) + msg_perdu credit = credit + gain print(msg) # Affichage de fin de tour if credit > 0: # affiche credit print(msg_solde + str(credit)) ask_continue = str(input(msg_continue)) # demande de continuer if ask_continue == "n": # Arret demandé par le joueur jeu_continu = False msg_final = (msg_arret + str(credit) + curr_symb) else: jeu_continu = False # fin du jeu if os.path.isfile(filename) is True: # On recupere le highscore with open(filename, "r") as highscore: old_highscore = int(highscore.read()) if old_highscore == -1: # Pas encore de partie gagnante msg_score = msg_no_score elif credit > old_highscore and old_highscore != -1: # Highscore battu msg_score = msg_best_score + str(old_highscore) + curr_symb else: msg_score = msg_bad_score + str(old_highscore) + curr_symb if (credit > 0 and old_highscore == -1) or credit > old_highscore: with open(filename, "w") as highscore: highscore.write(str(credit)) print(msg_final) # Affichage du message de fin de partie print(msg_score) # Affichage du score/highscore