You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
173 lines
5.0 KiB
173 lines
5.0 KiB
# Jeu de BombParty |
|
import time |
|
import random as rd |
|
import os |
|
|
|
''' |
|
#Nettoyage |
|
clearConsole = lambda: os.system('cls' if os.name in ('nt', 'dos') else 'clear') |
|
clearConsole() |
|
#On importe les mots |
|
with open("mots.txt", "r",encoding="utf8") as motsfichier: |
|
mots = motsfichier.readlines() |
|
|
|
#On retire \n de notre liste de mots |
|
for i in range(len(mots)): |
|
mots[i]=mots[i].replace("\n","") |
|
|
|
#On importe les syllabes |
|
with open("syllabes.txt", "r",encoding="utf8") as syllabesfichier: |
|
syllabes = syllabesfichier.readlines() |
|
|
|
#On retire \n de notre liste de syllabes |
|
for i in range(len(syllabes)): |
|
syllabes[i]=syllabes[i].replace("\n","") |
|
''' |
|
''' |
|
#Tirage au sort de la syllabe |
|
def tirage_syllabe(): |
|
syllabe=rd.choice(syllabes) |
|
return syllabe |
|
''' |
|
#Demander au joueur un mot |
|
def demander_mot(syllabe_a_trouver): |
|
mot=input(f'''Vous devez trouver un mot contenant la syllabe : {syllabe_a_trouver} |
|
Votre proposition : ''') |
|
return mot |
|
''' |
|
#Vérifier si la syllabe est bien dans le mot |
|
def mots_et_syllabes_valable(syllabe_a_trouver,mot_du_joueur): |
|
if syllabe_a_trouver in mot_du_joueur: |
|
return True |
|
else: |
|
print(""" |
|
Ce mot ne possède pas la syllabe requise.""") |
|
return False |
|
''' |
|
#Rechercher le mot dans notre base de données de mots, puis vérifier sa syllabe |
|
''' |
|
def comparer_mot(mot,syllabe_a_trouver): |
|
if mot in mots: |
|
return mots_et_syllabes_valable(syllabe_a_trouver,mot) |
|
else: |
|
print(""" |
|
Ce mot n'existe pas dans notre base de données.""") |
|
return False |
|
''' |
|
# ---------------- Arthur ---------------------- # |
|
|
|
#Détermination du nombre de joueurs |
|
def demander_nb_joueurs(): |
|
resultat=input("""Combien de joueurs ? |
|
Votre proposition : """) |
|
return int(resultat) |
|
|
|
#On vérifie si la valeur entrée fait parties du nombre de joueur compatible au jeu |
|
''' |
|
def check_bon_nb_joueurs(nb): |
|
O=[1,2,3,4,5,6] # Nombre de joueurs possibles |
|
if nb in O: |
|
print("La partie se jouera donc avec",nb,"joueur(s)") |
|
time.sleep(2) |
|
return nb |
|
else: |
|
return check_bon_nb_joueurs(demander_nb_joueurs()) |
|
''' |
|
|
|
#On demande le nombre de joueurs pour notre partie |
|
#nbjoueurs=int(check_bon_nb_joueurs(demander_nb_joueurs)) |
|
#On crée nos variables de points nécéssaires à notre jeu |
|
|
|
#Cette liste contiens nos points de joueurs. Chaque 1 correspond à un joueur. Joueur 2 = pj[0] |
|
#pj=[0,1,1,1,1,1,1] |
|
|
|
#A quel joueur est-ce le tour ? |
|
#tour_du_joueur=0 |
|
#On change de tour |
|
def tour_suivant(tour): |
|
tour=tour+1 |
|
return tour |
|
|
|
#Une partie est-elle en cours ? |
|
partie_en_cours=1 |
|
|
|
# |
|
# Le code du jeu |
|
# |
|
def jeu(tour_du_joueur,pj): |
|
#clearConsole() |
|
#print("Joueur",tour_du_joueur,", c'est votre tour !") |
|
#print("--------------------------") |
|
#syllabe_a_trouver=tirage_syllabe() |
|
mot_du_joueur=demander_mot(syllabe_a_trouver) |
|
if comparer_mot(mot_du_joueur,syllabe_a_trouver)==True: |
|
print("") |
|
print("Bravo, vous avez trouvé un mot !! Vous gagnez 1 point.") |
|
pj=pj+1 |
|
print("") |
|
print("Vous possèdez maintenant",pj,"points !") |
|
print("---------------------------") |
|
time.sleep(5) |
|
return pj |
|
print("") |
|
print("Vous ne gagnez donc aucun point !") |
|
print("-------------------------") |
|
time.sleep(3) |
|
return pj |
|
|
|
|
|
#Script de notre partie de jeu |
|
while partie_en_cours==1: |
|
#Si tout le monde a fini de jouer, on retourne au joueur 1 |
|
if tour_du_joueur>nbjoueurs: |
|
tour_du_joueur=1 |
|
#Si le jeu n'a toujours pas commencé, on commence par le joueur 1 |
|
elif tour_du_joueur==0: |
|
print("Début de la partie !") |
|
tour_du_joueur=1 |
|
if tour_du_joueur==1: |
|
#C'est au joueur 1 |
|
print("") |
|
pj[1] = jeu(tour_du_joueur,pj[1]) |
|
tour_du_joueur = tour_suivant(tour_du_joueur) |
|
elif tour_du_joueur==2: |
|
#C'est au joueur 2 |
|
print("") |
|
pj[2] = jeu(tour_du_joueur,pj[2]) |
|
tour_du_joueur = tour_suivant(tour_du_joueur) |
|
elif tour_du_joueur==3: |
|
#C'est au joueur 3 |
|
print("") |
|
pj[3] = jeu(tour_du_joueur,pj[3]) |
|
tour_du_joueur = tour_suivant(tour_du_joueur) |
|
elif tour_du_joueur==4: |
|
#C'est au joueur 4 |
|
print("") |
|
pj[4] = jeu(tour_du_joueur,pj[4]) |
|
tour_du_joueur = tour_suivant(tour_du_joueur) |
|
elif tour_du_joueur==5: |
|
#C'est au joueur 5 |
|
print("") |
|
pj[5] = jeu(tour_du_joueur,pj[5]) |
|
tour_du_joueur = tour_suivant(tour_du_joueur) |
|
elif tour_du_joueur==6: |
|
#C'est au joueur 6 |
|
print("") |
|
pj[6] = jeu(tour_du_joueur,pj[6]) |
|
tour_du_joueur = tour_suivant(tour_du_joueur) |
|
|
|
''' |
|
Idée future : |
|
|
|
- Contrairement au BombParty originel, il faut qu'on donne des points au joueurs, et non pas qu'on leur enlève des vies. |
|
|
|
- En fonction du temps de réponse au mot, le joueur gagne plus ou moins de points |
|
|
|
- Faire le système de récompenses par lettres sur le côté (comme le vrai) |
|
|
|
- Faire un système de joker |
|
|
|
- Faire un système de récompenses quand on a utilisé toutes les lettres |
|
|
|
- Faire un joli countdown avec .......... pour les delays |
|
''' |