#!/usr/bin/env python
# -*- coding: utf-8 -*-
#Pendu par OraDioxine
import random
class Pendu:
def __init__(self): #Définition des variables
self.nbJoueurs = 0
self.listJoueurs = []
self.nextWord = ["PLAY", "JOUER", "DEMARRER", "LANCER", "START", ""] #Liste des mots pour passer le listing des joueurs
self.continueBool = True #Booléan pour listing des joueurs
self.nomJoueur = ""
self.multijoueur = None
self.useCustomWords = False
self.charLimit = [0,0]
self.maxTries = 8
def listingJoueurs(self): #Création de la liste des joueurs
while self.continueBool:
self.nomJoueur = input("Nom du joueur ? : ")
if self.nomJoueur.upper() not in self.nextWord:
self.listJoueurs.append(self.nomJoueur)
self.nbJoueurs += 1
else:
if self.nbJoueurs == 0:
print("Merci de créer au moins au joueur")
else:
self.continueBool = False
if self.nbJoueurs == 1:
self.multiplayer = False
if self.nbJoueurs > 1:
self.multiplayer = True
def options(self, useCustomWords, charLimit, maxTries):
if useCustomWords == True or useCustomWords == False:
self.useCustomWords = useCustomWords
else:
print("Paramètre incorrect (True/False)")
if isinstance(charLimit, list):
self.charLimit = charLimit
else:
print("Paramètre incorrect (liste à 2 paramètres)")
if isinstance(maxTries, int):
self.maxTries = maxTries
else:
print("Paramètre incorrect (Chiffre entier)")
def game(self):
if self.multiplayer == False:
#Mode de jeu solo
self.listWordFile = open("listWord.txt", "r")
self.maxLines = 0
while self.listWordFile.readline(): #On détermine le nombre de lignes
self.maxLines += 1
self.listWordFile.seek(0)
self.randomSelect = random.randint(1,self.maxLines)
self.inc = 0
while self.inc != self.randomSelect: #On sélectionne un mot au hasard
self.chosenWord = self.listWordFile.readline()
self.inc += 1
elif self.multiplayer == True:
#Mode de jeu multi
self.tourPlayer = random.randint(0, len(self.listJoueurs) - 1)
self.tourAdv = self.tourPlayer
while self.tourAdv == self.tourPlayer:
self.tourAdv = random.randint(0, len(self.listJoueurs) - 1)
print("C'est au tour de", self.listJoueurs[self.tourPlayer], "d'entrer un mot pour", self.listJoueurs[self.tourAdv])
self.chosenWord = input("Rentrez votre mot : ")
print("\n\n\n\n\n\n\n")
elif self.multiplayer == None:
#Listing non défini
print("Votre listing n'a pas été défini, merci de le lancer")
if self.multiplayer != None: #Code du jeu
self.chosenWord = self.chosenWord.replace("\n","")
print("Devinez le mot,", self.listJoueurs[0], "!")
self.showList = [] #Liste contenant le mot
self.hiddenList= [] #Liste contenant le mot en caché
self.inc = 0
self.wordFound = False
self.playerTries = 0
while self.inc != len(self.chosenWord): #On crée le mot dans une liste
self.showList.append(self.chosenWord[self.inc])
self.inc += 1
self.inc = 0
while self.inc != len(self.chosenWord): #On crée le mot caché avec des _
self.hiddenList.append("_")
self.inc += 1
while self.wordFound == False or self.playerTries == self.maxTries:
self.goodLetter = False
self.inc = 0
self.hiddenWord = ""
while self.inc != len(self.chosenWord): #On crée le mot caché avec des _
self.hiddenWord += self.hiddenList[self.inc]
self.hiddenWord += " "
self.inc += 1
self.tryPlayer = ""
print(self.hiddenWord)
print("Essais restants :", self.maxTries - self.playerTries)
self.tryPlayer = input("Rentrez une lettre ! : ")
if self.tryPlayer.upper() == self.chosenWord.upper():
self.tryPlayer = self.chosenWord
self.wordFound = True
elif len(self.tryPlayer) == 1 and self.wordFound == False:
self.inc = 0
while len(self.chosenWord) != self.inc:
if self.tryPlayer.upper() == self.showList[self.inc].upper():
self.hiddenList[self.inc] = self.showList[self.inc]
self.goodLetter = True
self.inc += 1
else:
pass
if self.hiddenList == self.showList:
self.wordFound = True
if self.goodLetter == False:
self.playerTries += 1
if self.wordFound == True:
print("Bravo ! Le mot était bien", self.chosenWord)
else:
print("Dommage ! Le mot était", self.chosenWord)
def downloadList(self, codeList):
def autostart(self):
self.listingJoueurs()
self.options(False, [0,0],
self.game()
Pendu = Pendu()
Pendu.listingJoueurs()
Pendu.options(False, [0,0],
while 1:
Pendu.game()