Hangman fix reset & commands

Fixed mistakes in resetscore
Excluded all available commands from words to play with
This commit is contained in:
ThomasWeis
2022-04-28 11:01:32 +02:00
parent aeb54acecf
commit 439a2c4104

View File

@@ -3,6 +3,7 @@ from FaustBot.Communication.Connection import Connection
from FaustBot.Modules.PrivMsgObserverPrototype import PrivMsgObserverPrototype from FaustBot.Modules.PrivMsgObserverPrototype import PrivMsgObserverPrototype
from FaustBot.Model.ScoreProvider import ScoreProvider from FaustBot.Model.ScoreProvider import ScoreProvider
from FaustBot.Model.HanDatabaseProvider import HanDatabaseProvider from FaustBot.Model.HanDatabaseProvider import HanDatabaseProvider
from FaustBot.Modules.HelpObserver import HelpObserver
from collections import defaultdict from collections import defaultdict
from threading import Lock from threading import Lock
import csv import csv
@@ -29,6 +30,7 @@ class HangmanObserver(PrivMsgObserverPrototype):
self.worder = '' self.worder = ''
self.wrongly_guessedWords = [] self.wrongly_guessedWords = []
self.time = time.time() self.time = time.time()
self.commands = []
def update_on_priv_msg(self, data, connection: Connection): def update_on_priv_msg(self, data, connection: Connection):
if data['message'].startswith('.guess '): if data['message'].startswith('.guess '):
@@ -59,10 +61,10 @@ class HangmanObserver(PrivMsgObserverPrototype):
self.rules(data, connection) self.rules(data, connection)
if data['message'].startswith('.look'): if data['message'].startswith('.look'):
self.look(data, connection) self.look(data, connection)
if data['message'].startswith('.resetscore'): if data['message'].startswith('.resetscore') and len(data['message'].split(' ')) < 2:
self.confirm_reset(data,connection) self.confirm_reset(data, connection)
if data['message'] == '.resetscore ' + data['nick'] + ' JA': if data['message'] == '.resetscore ' + data['nick'] + ' JA':
self.reset(data, data['nick'], connection) self.reset(data, connection)
if data['message'].startswith('.handelete '): if data['message'].startswith('.handelete '):
self.delete_HanWord(data, connection) self.delete_HanWord(data, connection)
@@ -78,11 +80,12 @@ class HangmanObserver(PrivMsgObserverPrototype):
def reset(self, data, connection): def reset(self, data, connection):
score_provider = ScoreProvider() score_provider = ScoreProvider()
score_provider.delete_score(data['nick']) score_provider.delete_score(data['nick'])
connection.send_back("Dein Score wurde gelöscht "+data['nick'], data) connection.send_back("Dein Score wurde gelöscht, "+data['nick'], data)
def confirm_reset(self, data, connection): def confirm_reset(self, data, connection):
connection.send_back('Möchtest du deinen Hangman Punktestand wirklich löschen, ' + data['nick'] + '? ' + connection.send_back('Möchtest du deinen Hangman Punktestand wirklich löschen, ' + data['nick'] + '? ' +
'Wenn ja, antworte bitte mit ".resetscore deinnick JA". Wenn nein, musst du nichts tun.') 'Wenn ja, antworte bitte mit ".resetscore deinnick JA". Wenn nein, musst du nichts tun.', data)
print(data['message'])
def look(self,data, connection): def look(self,data, connection):
if self.worder != '': if self.worder != '':
@@ -177,22 +180,23 @@ class HangmanObserver(PrivMsgObserverPrototype):
connection.send_channel(self.prepare_word(data)) connection.send_channel(self.prepare_word(data))
def take_word(self, data, connection): def take_word(self, data, connection):
self.commands = HelpObserver.collect_commands(self, connection)
if self.word == '': if self.word == '':
self.time =time.time() self.time =time.time()
if data['message'].split(' ')[1] is not None: if data['message'].split(' ')[1] is not None and data['message'].split(' ')[1] not in self.commands:
self.addHanWord(data['message'].split(' ')[1].upper()) self.addHanWord(data['message'].split(' ')[1].upper())
log = open('HangmanLog', 'a') log = open('HangmanLog', 'a')
log.write(data['nick'] + ' ; ' + data['message'].split(' ')[1].upper() + '\n') log.write(data['nick'] + ' ; ' + data['message'].split(' ')[1].upper() + '\n')
log.close() log.close()
self.word = data['message'].split(' ')[1].upper() self.word = data['message'].split(' ')[1].upper()
self.guesses = ['-', '/', ' ', '_','.'] self.guesses = ['-', '/', ' ', '_','.']
self.wrong_guessed = [] self.wrong_guessed = []
self.tries_left = 11 self.tries_left = 11
self.wrongly_guessedWords = [] self.wrongly_guessedWords = []
connection.send_back("Danke für das Wort, es ist nun im Spiel!", data) connection.send_back("Danke für das Wort, es ist nun im Spiel!", data)
connection.send_channel("Das Wort ist von: "+data['nick']) connection.send_channel("Das Wort ist von: "+data['nick'])
self.worder = data['nick'] self.worder = data['nick']
connection.send_channel(self.prepare_word(data)) connection.send_channel(self.prepare_word(data))
else: else:
connection.send_back("Sorry es läuft bereits ein Wort", data) connection.send_back("Sorry es läuft bereits ein Wort", data)