Skip to content
Extraits de code Groupes Projets
Valider 8f11bd07 rédigé par Loïc Wikle DUBARD's avatar Loïc Wikle DUBARD
Parcourir les fichiers

script useless/quizz.py complet

parent d30ca128
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -3,6 +3,9 @@
## 17 aout 2019
**Ajouts:**
- meteo : on peut demander des prévisions dans n heures
- script useless/quizz.py complet, manque plus que de l'implementé dans le script principal
**Fixes:**
- sons compris/pascompris plus intuitifs
---
......
......@@ -3,32 +3,124 @@
import requests
# import urllib
import html
# import html
from random import shuffle
from googletrans import Translator
translator = Translator()
def escape(html):
return html.encode('utf8').replace('"', "'")
# def escape(html):
# return html.encode('utf8').replace('"', "'")
class Quizz(object):
@staticmethod
def quizz():
req = requests.get("https://opentdb.com/api.php?amount=1&difficulty=easy")
al = req.json()
pas_reponse = []
rep = al['results'][0]
question = html.escape(rep['question'])
reponse = html.escape(rep['correct_answer'])
question = rep['question']
reponse = rep['correct_answer']
choix = [reponse]
for f in rep['incorrect_answers']:
pas_reponse.append(html.escape(f))
choix.append(html.escape(f))
pas_reponse.append(f)
choix.append(f)
shuffle(choix)
return {'question': translator.translate(question, src='en', dest='fr').text, 'reponse': reponse, 'choix': choix, 'pas_reponse': pas_reponse}
def __init__(self):
self._status = 0 # 0 : not started, 1 : started, 2 : reponse trouvée
self._quizz = Quizz.quizz()
self._essais = {}
self._points = {}
self._round = 0
def get_status(self):
if self._status == 2:
return 2, 'Vous avez déjà trouvé la réponse, demandez une nouvelle question.'
elif self._status == 1:
return 1, 'La partie est en cours.'
else:
return 0, 'la partie n\'a pas commencé.'
def get_question(self):
return self._quizz['question']
def start(self):
assert self._status == 0
if self._status == 0:
self._status = 1
self._round = 1
def get_round(self):
return self._round
def new(self):
self._quizz = Quizz.quizz()
self._essais = {}
self._status = 1
self._round += 1
return self.get_question()
def answer(self, proposition, personne=''):
assert self._status == 1
if proposition == '!indice':
return self.indice()
if proposition == '!scoreboard':
return self.scoreboard()
if '!scoreboard' in proposition:
return self.scoreboard(proposition.replace('!scoreboard ', ''))
if proposition == '!reset':
return self.reset()
if proposition == '!question':
return self.get_question()
if proposition == self._quizz['reponse']:
if personne in self._essais.keys():
self._essais[personne] += 1
else:
self._essais[personne] = 1
if personne in self._points.keys():
self._points[personne] += 1
else:
self._points[personne] = 1
self._status = 2
return 'Bravo, {} tu as trouvé la réponse : {} en {} essais.'.format(personne, self._quizz['reponse'], self._essais[personne])
else:
if personne in self._essais.keys():
self._essais[personne] += 1
else:
self._essais[personne] = 1
return '{} est une mauvaise réponse {}'.format(proposition, personne)
def scoreboard(self, personne=None):
if personne is not None and personne in self._points.keys():
return self._points['personne']
return str(self._points)
def indice(self):
return 'Choix possibles : ' + ", ".join(self._quizz['choix'])
def reset(self):
self._status = 0 # 0 : not started, 1 : started, 2 : reponse trouvée
self._quizz = Quizz.quizz()
self._essais = {}
self._points = {}
self._round = 0
if __name__ == "__main__":
print(quizz())
q = Quizz()
print(q.get_question())
q.start()
while q.get_status()[0] != 0:
while q.get_status()[0] == 1:
#personne = input('joueur>')
proposition = input('réponse>')
print(q.answer(proposition))
print(q.get_status())
q.new()
print(q.get_question())
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter