From c8afe48b6397506b9b032331c6a906efeb079b1e Mon Sep 17 00:00:00 2001 From: soybby Date: Mon, 18 May 2020 12:04:32 +0200 Subject: [PATCH] additional help s444519 --- textpygame.py | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 textpygame.py diff --git a/textpygame.py b/textpygame.py new file mode 100644 index 0000000..4da60e6 --- /dev/null +++ b/textpygame.py @@ -0,0 +1,67 @@ +import pygame +import pygame.font +import pygame.event +import pygame.draw +import os +import sys +from pygame.locals import * + + +bad_words_file = os.path.os.path.dirname(os.path.realpath(sys.argv[0])) \ + + '/bad_words.txt' + +def get_key(): + while 1: + event = pygame.event.poll() + if event.type == KEYDOWN: + return event.key + else: + pass + + +def display_box(screen, message): + "Print a message in a box in the middle of the screen" + fontobject = pygame.font.Font(None, 18) + pygame.draw.rect(screen, (0, 0, 0), + ((screen.get_width() / 2) - 100, + (screen.get_height() / 2) - 10, + 200, 20), 0) + pygame.draw.rect(screen, (255, 255, 255), + ((screen.get_width() / 2) - 102, + (screen.get_height() / 2) - 12, + 204, 24), 1) + if len(message) != 0: + screen.blit(fontobject.render(message, 1, (255, 255, 255)), + ((screen.get_width() / 2) - 100, (screen.get_height() / 2) - 10)) + pygame.display.flip() + + +def ask(screen, question): + "ask(screen, question) -> answer" + pygame.font.init() + current_string = [] + display_box(screen, question + ": " + "".join(current_string)) + while 1: + inkey = get_key() + if inkey == K_BACKSPACE: + current_string = current_string[0:-1] + elif inkey == K_RETURN: + file = open(bad_words_file, 'r').readlines() + if "".join(current_string) in [thing[:-1] for thing in file]: + current_string = [] + else: + break + elif inkey == K_MINUS: + current_string.append("_") + elif inkey <= 127: + current_string.append(chr(inkey)) + display_box(screen, question + ": " + "".join(current_string)) + return "".join(current_string) + + +def main(): + screen = pygame.display.set_mode((320, 240)) + print(ask(screen, "Name") + " was entered") + + +if __name__ == '__main__': main() \ No newline at end of file