Un jeu terrifiant revisité en python

Image mise en avant de notre projet Projets

Un projet basé sur le jeu de billes de Squid Game

Jeu des billes Squid Game

Présentation

Notre projet repose sur les consignes et conseils que nos professeurs de spécialité NSI nous ont donnés. Nous avons fait le choix du jeu des billes dans Squid Game puisque nous avons adoré cette série et que c’est un jeu qui nous semblait intéressant à développer en python.

Règles du Jeu

Pour cela nous allons tout d’abord faire une brève explication des règles du jeu : Les joueurs doivent deviner combien l’autre joueur à de billes dans la main, si le nombre est pair ou impair. Ils misent un nombre de billes de leur choix. S’il gagne, il remporte une partie des billes de l’adversaire, alors que s’il perd il doit lui donner une partie des siennes, que la personne a misé. Le premier qui n’a plus de billes a perdu la partie.

Extrait de l’épisode

Petite représentation du jeu dans la série

Explication des lignes de code

L’importation du module random

from random import randint

Le module random est un module qui regroupe des fonctions permettant de simuler le hasard. Si nous avons fait le choix de ce module c’est qu’il est indispensable dans notre jeu car l’ordinateur doit faire diffèrent choix. Grâce à ce module il est fait donc au hasard.

Définition du nombre de bille de l’ordinateur et du joueur

nb_bille = [10, 10]

Création d’un tuple dans le but de définir les nombres de billes du joueur et de l’ordinateur

Le choix du jeu et de la mise de l’ordinateur

def choix_mise_ordi():  # Definie la mise de l'ordinateur
    print("A l'ordinateur de miser\nIl a miser")
    return randint(1, nb_bille[0])


def choix_jeu_ordi(): # Definie le choix du jeu de l'ordinateur
     print("A L'ordinateur de choisir\nIl a fait ses jeu")
     choix_jeu_comp = randint(1, nb_bille[0])
     if choix_jeu_comp % 2 == 0:
        nb_comp = "pair"
     else:
        nb_comp = "impair"

Ici nous pouvons voir deux fonctions qui définissent la mise et le jeu de l’ordinateur qui se repose sur le module random.

Le choix du jeu et de la mise du joueur

def choix_mise_joueur(): # Definie le choix de la mise du joueur
    choix_mise = int(input("A vous de miser\nCombien voulez vous miser : "),nb_bille[1])
    return choix_mise


def choix_jeu_joueur():
    choix_jeu = int(input("A vous de jouer\nCombien de bille voulez vous jouez : "),nb_bille[1])
    return choix_jeu

Contrairement au script du dessus ici on va demander au joueur de rentrer sa mise et son jeu donc le module random n’est pas nécessaire.

Déduction du joueur et de l’ordinateur

ef deduction_joueur(): # Definie si le joueur pense que l'ordinateur a choisi un nombre pair ou impair
     choix_deduction = int(input("--- Selon vous l'ordinateur a choisi un nombre paire ou impaire ---\n""Tapez 0 si vous pensez que c'est un nombre pair et tapez 1 si vous penser que c'est un nombre impair\n""Votre choix : "))
     if choix_deduction  % 2 == 0:
        print("Vous avez tapé {0}, tu penses donc que l'ordinateur a choisi un nombre de bille pair".format(choix_deduction))
        nb_gamer = "paire"
     else:
        print("{0} est Impair, donc tu penses qu'il a un nombre de bille impair".format(choix_deduction))
        nb_gamer = "impair"
        return nb_gamer


def deduction_ordi(): # Definie si l'ordinateur pense que le joueur a choisi un nombre pair ou impair
     choix_deduction = randint(1, nb_bille[0])
     if choix_deduction % 2 == 0:
        nb_comp = "pair"
     else:
        nb_comp = "impair"
        return nb_comp

Ces fonctions nous permettent de définir les déductions du joueur et de l’ordinateur en fonction du jeu qu’ont fait ses derniers.

Résultat des jeux et incrémentation des points

def resultat_joueur():
    deduction_gamer = deduction_joueur()
    choix_mise_gamer = choix_mise_joueur()
    choix_jeu_computer = choix_jeu_ordi()
    
    if   deduction_gamer == choix_jeu_computer:# incrementation des billes de l'ordinateur vers le joueur
            print("Vous avez gagné, vous avez",nb_bille[1],"billes")
            nb_bille[1] += choix_mise_gamer
            nb_bille[0] -= choix_mise_gamer
    else:                                    # incrementation des billes du joueur vers l'ordinateur
        print("Vous avez perdu, il vous reste",nb_bille[1],"billes")
        nb_bille[1] -= choix_mise_gamer
        nb_bille[0] += choix_mise_gamer


def resultat_ordi():
    deduction_comp = deduction_ordi()
    choix_mise_comp = choix_mise_ordi()
    choix_jeu_gamer = choix_jeu_joueur()
     
    if   deduction_comp == choix_jeu_gamer: # incrementation des billes de l'ordinateur vers le joueur
            print("Vous avez perdu, il vous reste",nb_bille[1],"billes")
            nb_bille[0] += choix_jeu_gamer
            nb_bille[1] -= choix_jeu_gamer
    else:                                    # incrementation des billes du joueur vers l'ordinateur
        print("Vous avez gagné, vous avez",nb_bille[1],"billes")
        nb_bille[0] -= choix_mise_comp
        nb_bille[1] += choix_mise_comp   

Ces fonctions sont les fonctions finales de notre jeu, elles reprennent toutes les fonctions précédentes. De plus il y a l’incrémentation des points.

Les erreurs qu’on a pu faire

  • Un mauvais choix de jeu dans un premier temps car nous voulons faire à la base le 1, 2, 3 soleil de Squid Game
  • Une interface graphique Tkinter impossible à notre niveau et pas forcément utile pour notre jeu

Les changements qu’on a dû réaliser

  • Changement de jeu pour un plus réalisable
  • abandonner idée de l’interface avec Tkinter
  • Se donner des rôles avec son binôme

Nos astuces

Notre première astuce est celle de regarder des vidéos sur YouTube dans le but de s’améliorer en python puisque nous ne sommes pas très fort.

La seconde est celle de rechercher quelques informations sur internet

Conclusion

Ce projet nous a permis d’apprendre beaucoup de choses dans des domaines différents, que l’on ne savait pas au préalable donc un grand merci a nos professeurs.