From ac8cd10ab421a4796a16cb5f25afd9b84b0bbdc3 Mon Sep 17 00:00:00 2001 From: johnny Date: Sun, 22 Jan 2023 04:24:55 +0100 Subject: [PATCH] Add Save-Photo Button, Extend README.md with pictures, reformat code, optimize imports --- FieldObjects/Items/ItemBase.py | 6 +-- FieldObjects/Items/ItemBigAll.py | 4 +- FieldObjects/Items/ItemBlock.py | 6 +-- FieldObjects/Items/ItemClear.py | 3 +- FieldObjects/Items/ItemFastAll.py | 3 +- FieldObjects/Items/ItemFastSelf.py | 3 +- FieldObjects/Items/ItemFly.py | 3 +- FieldObjects/Items/ItemGlueAll.py | 5 +- FieldObjects/Items/ItemJump.py | 5 +- FieldObjects/Items/ItemPackage.py | 4 +- FieldObjects/Items/ItemRandom.py | 9 ++-- FieldObjects/Items/ItemRemoveBorder.py | 4 +- FieldObjects/Items/ItemSlickSelf.py | 6 +-- FieldObjects/Items/ItemSlowAll.py | 4 +- FieldObjects/Items/ItemSlowSelf.py | 4 +- FieldObjects/Items/ItemSmallSelf.py | 3 +- FieldObjects/Items/ItemZiggZaggAll.py | 2 +- FieldObjects/Items/ItemZiggZaggSelf.py | 2 +- FieldObjects/PlayerClass.py | 8 ++-- FieldObjects/PlayerClassBot.py | 12 ++--- README.md | 39 ++++++++++----- Sandbox.py | 11 +++-- Screens/GUI.py | 21 ++++---- Screens/GameScreenClass.py | 64 ++++++++++++++++--------- Screens/OptionScreenClass.py | 18 +++---- Screens/RuleScreenClass.py | 1 - Screens/TitleScreenClass.py | 2 +- Utils/Const.py | 1 - Utils/HelperFunctions.py | 34 ++++++------- Utils/TargetFunctions.py | 4 +- requirements.txt | 2 + resources/wallrun_game.png | Bin 0 -> 47435 bytes resources/wallrun_menu.png | Bin 0 -> 42856 bytes resources/wallrun_options.png | Bin 0 -> 64682 bytes 34 files changed, 159 insertions(+), 134 deletions(-) create mode 100644 requirements.txt create mode 100644 resources/wallrun_game.png create mode 100644 resources/wallrun_menu.png create mode 100644 resources/wallrun_options.png diff --git a/FieldObjects/Items/ItemBase.py b/FieldObjects/Items/ItemBase.py index 88f1f4a..d564feb 100644 --- a/FieldObjects/Items/ItemBase.py +++ b/FieldObjects/Items/ItemBase.py @@ -1,4 +1,3 @@ - from Utils.Const import * @@ -6,9 +5,10 @@ class ItemBase: """ This class represents the base class of all items that may appear on the screen. It does not have any effect. """ + def __init__(self, controller, gamescreen): """ - Creates an base Item. + Creates a base Item. :param controller: Controller instance of the game screen. :param gamescreen: The gamescreen instance where this item is placed in. @@ -19,7 +19,7 @@ def __init__(self, controller, gamescreen): # This value should be manually adjusted depending on the respective Item that inherits this class. self.duration = DURATION_NORMAL - self.image_path = "Data/DefaultIcon.png" # Relative path to item icon. (from __main__, 20 x 20 pixels, .png) + self.image_path = "Data/DefaultIcon.png" self.player = None # Will be defined during method call activate. diff --git a/FieldObjects/Items/ItemBigAll.py b/FieldObjects/Items/ItemBigAll.py index 1eaa384..b1c08cb 100644 --- a/FieldObjects/Items/ItemBigAll.py +++ b/FieldObjects/Items/ItemBigAll.py @@ -1,4 +1,3 @@ - from FieldObjects.Items.ItemBase import ItemBase from Utils.Const import * @@ -7,11 +6,11 @@ class ItemBigAll(ItemBase): """ Increases the size of every player but the collecting player by one step. """ + # __init__ from base class. def __init__(self, controller, gamescreen): ItemBase.__init__(self, controller, gamescreen) self.duration = DURATION_NORMAL - # Relative path to item icon. (from __main__, 20 x 20 pixels, .png) self.image_path = "Data/IconBigAll.png" self.players_to_ignore = [] # Stores all players to ignore by this item @@ -43,4 +42,3 @@ def deactivate(self): else: # Choose next bigger value from the SPEEDS list p.size = SIZES[max(SIZES.index(p.size) - 1, 0)] - diff --git a/FieldObjects/Items/ItemBlock.py b/FieldObjects/Items/ItemBlock.py index 0c328b5..6cebb80 100644 --- a/FieldObjects/Items/ItemBlock.py +++ b/FieldObjects/Items/ItemBlock.py @@ -1,5 +1,5 @@ - from numpy.random import default_rng + from FieldObjects.Items.ItemBase import ItemBase from Utils.Const import * @@ -8,11 +8,11 @@ class ItemBlock(ItemBase): """ Places a Block randomly on the field. """ + # __init__ from base class. def __init__(self, controller, gamescreen): ItemBase.__init__(self, controller, gamescreen) self.duration = DURATION_INFINITE # No effective usage - # Relative path to item icon. (from __main__, 20 x 20 pixels, .png) self.image_path = "Data/IconBlock.png" self.rng = default_rng() self.blocksize = 100 @@ -32,7 +32,7 @@ def activate(self, player): to=(x_rand, y_rand, x_rand + self.blocksize, y_rand + self.blocksize) ) # Effectively - self.gamescreen.walls[x_rand:x_rand+self.blocksize, y_rand:y_rand+self.blocksize] = -1 + self.gamescreen.walls[x_rand:x_rand + self.blocksize, y_rand:y_rand + self.blocksize] = -1 def deactivate(self): """ diff --git a/FieldObjects/Items/ItemClear.py b/FieldObjects/Items/ItemClear.py index 9f219e1..64bc3dd 100644 --- a/FieldObjects/Items/ItemClear.py +++ b/FieldObjects/Items/ItemClear.py @@ -1,4 +1,3 @@ - from FieldObjects.Items.ItemBase import ItemBase from Utils.Const import * @@ -7,11 +6,11 @@ class ItemClear(ItemBase): """ Clears all walls within the game field. """ + # __init__ from base class. def __init__(self, controller, gamescreen): ItemBase.__init__(self, controller, gamescreen) self.duration = DURATION_INSTANT - # Relative path to item icon. (from __main__, 20 x 20 pixels, .png) self.image_path = "Data/IconClear.png" def activate(self, player): diff --git a/FieldObjects/Items/ItemFastAll.py b/FieldObjects/Items/ItemFastAll.py index c55e3c2..cdeb95b 100644 --- a/FieldObjects/Items/ItemFastAll.py +++ b/FieldObjects/Items/ItemFastAll.py @@ -1,4 +1,3 @@ - from FieldObjects.Items.ItemBase import ItemBase from Utils.Const import * @@ -7,11 +6,11 @@ class ItemFastAll(ItemBase): """ Increases the speed of every player but the collecting player by one step if possible. """ + # __init__ from base class. def __init__(self, controller, gamescreen): ItemBase.__init__(self, controller, gamescreen) self.duration = DURATION_NORMAL - # Relative path to item icon. (from __main__, 20 x 20 pixels, .png) self.image_path = "Data/IconFastAll.png" self.players_to_ignore = [] # Stores all players having max speed at the time of collecting this item. diff --git a/FieldObjects/Items/ItemFastSelf.py b/FieldObjects/Items/ItemFastSelf.py index 3d036d3..826226a 100644 --- a/FieldObjects/Items/ItemFastSelf.py +++ b/FieldObjects/Items/ItemFastSelf.py @@ -1,4 +1,3 @@ - from FieldObjects.Items.ItemBase import ItemBase from Utils.Const import * @@ -7,11 +6,11 @@ class ItemFastSelf(ItemBase): """ Increases the speed of the collecting player by one step if possible. """ + # __init__ from base class. def __init__(self, controller, gamescreen): ItemBase.__init__(self, controller, gamescreen) self.duration = DURATION_SHORT - # Relative path to item icon. (from __main__, 20 x 20 pixels, .png) self.image_path = "Data/IconFastSelf.png" self.was_at_max_speed = False diff --git a/FieldObjects/Items/ItemFly.py b/FieldObjects/Items/ItemFly.py index 0f9cd0f..29d36f3 100644 --- a/FieldObjects/Items/ItemFly.py +++ b/FieldObjects/Items/ItemFly.py @@ -1,4 +1,3 @@ - from FieldObjects.Items.ItemBase import ItemBase from Utils.Const import * @@ -8,11 +7,11 @@ class ItemFly(ItemBase): Makes the player flying and being able to cross any walls while not making a wall by himself during the time of this item being active. """ + # __init__ from base class. def __init__(self, controller, gamescreen): ItemBase.__init__(self, controller, gamescreen) self.duration = DURATION_SHORT - # Relative path to item icon. (from __main__, 20 x 20 pixels, .png) self.image_path = "Data/IconFly.png" def activate(self, player): diff --git a/FieldObjects/Items/ItemGlueAll.py b/FieldObjects/Items/ItemGlueAll.py index 9c10642..bc59bac 100644 --- a/FieldObjects/Items/ItemGlueAll.py +++ b/FieldObjects/Items/ItemGlueAll.py @@ -1,4 +1,3 @@ - from FieldObjects.Items.ItemBase import ItemBase from Utils.Const import * @@ -7,15 +6,13 @@ class ItemGlueAll(ItemBase): """ Makes all players sbut the collecting player turn slower. """ + # __init__ from base class. def __init__(self, controller, gamescreen): ItemBase.__init__(self, controller, gamescreen) self.duration = DURATION_SHORT - # Relative path to item icon. (from __main__, 20 x 20 pixels, .png) self.image_path = "Data/IconGlueAll.png" - self.player = None # Will be defined during method call activate. - self.players_to_ignore = [] def activate(self, player): diff --git a/FieldObjects/Items/ItemJump.py b/FieldObjects/Items/ItemJump.py index 9b89d8c..f6215ac 100644 --- a/FieldObjects/Items/ItemJump.py +++ b/FieldObjects/Items/ItemJump.py @@ -1,4 +1,3 @@ - from FieldObjects.Items.ItemBase import ItemBase from Utils.Const import * @@ -7,15 +6,13 @@ class ItemJump(ItemBase): """ Moves the players 30 times the players speed pixels in forward direction. """ + # __init__ from base class. def __init__(self, controller, gamescreen): ItemBase.__init__(self, controller, gamescreen) self.duration = DURATION_ONETIME - # Relative path to item icon. (from __main__, 20 x 20 pixels, .png) self.image_path = "Data/IconJump.png" - self.player = None # Will be defined during method call activate. - self.previous_speed = None def activate(self, player): diff --git a/FieldObjects/Items/ItemPackage.py b/FieldObjects/Items/ItemPackage.py index 1ee621b..7cd59ef 100644 --- a/FieldObjects/Items/ItemPackage.py +++ b/FieldObjects/Items/ItemPackage.py @@ -1,5 +1,5 @@ - from numpy.random import default_rng + from FieldObjects.Items.ItemBase import ItemBase from Utils.Const import * @@ -8,11 +8,11 @@ class ItemPackage(ItemBase): """ Places three random items on the game field. """ + # __init__ from base class. def __init__(self, controller, gamescreen): ItemBase.__init__(self, controller, gamescreen) self.duration = DURATION_INSTANT - # Relative path to item icon. (from __main__, 20 x 20 pixels, .png) self.image_path = "Data/IconPackage.png" self.rng = default_rng() diff --git a/FieldObjects/Items/ItemRandom.py b/FieldObjects/Items/ItemRandom.py index fb3ef9e..18c30b9 100644 --- a/FieldObjects/Items/ItemRandom.py +++ b/FieldObjects/Items/ItemRandom.py @@ -1,23 +1,24 @@ +from importlib import import_module from numpy.random import default_rng + from FieldObjects.Items.ItemBase import ItemBase from Utils.Const import * -from importlib import import_module class ItemRandom(ItemBase): """ Activates a random item effect. """ + # __init__ from base class. def __init__(self, controller, gamescreen): ItemBase.__init__(self, controller, gamescreen) self.duration = DURATION_INSTANT - # Relative path to item icon. (from __main__, 20 x 20 pixels, .png) self.image_path = "Data/IconRandom.png" self.rng = default_rng() - self.available_item_names = self.controller.all_items + if self.available_item_names.__contains__("ItemRandom"): self.available_item_names.remove("ItemRandom") @@ -31,7 +32,7 @@ def activate(self, player): self.player = player # emulate a random item item_to_create = self.rng.choice(self.available_item_names) - item_module = import_module("FieldObjects.Items."+item_to_create) + item_module = import_module("FieldObjects.Items." + item_to_create) item_class = getattr(item_module, item_to_create) emulated_item = item_class(self.controller, self.gamescreen) diff --git a/FieldObjects/Items/ItemRemoveBorder.py b/FieldObjects/Items/ItemRemoveBorder.py index f7a4b72..485d3c6 100644 --- a/FieldObjects/Items/ItemRemoveBorder.py +++ b/FieldObjects/Items/ItemRemoveBorder.py @@ -1,4 +1,3 @@ - from FieldObjects.Items.ItemBase import ItemBase from Utils.Const import * @@ -7,11 +6,12 @@ class ItemRemoveBorder(ItemBase): """ Toggles the game screen borders off. """ + # __init__ from base class. def __init__(self, controller, gamescreen): ItemBase.__init__(self, controller, gamescreen) self.duration = DURATION_NORMAL - self.image_path = "Data/IconRemoveBorder.png" # Relative path to item icon. (from __main__, 20 x 20 pixels, .png) + self.image_path = "Data/IconRemoveBorder.png" def activate(self, player): """ diff --git a/FieldObjects/Items/ItemSlickSelf.py b/FieldObjects/Items/ItemSlickSelf.py index 26146b0..e899ae3 100644 --- a/FieldObjects/Items/ItemSlickSelf.py +++ b/FieldObjects/Items/ItemSlickSelf.py @@ -1,4 +1,3 @@ - from FieldObjects.Items.ItemBase import ItemBase from Utils.Const import * @@ -7,16 +6,13 @@ class ItemSlickSelf: """ Makes the collecting player turn faster. """ + # __init__ from base class. def __init__(self, controller, gamescreen): ItemBase.__init__(self, controller, gamescreen) - self.duration = DURATION_LONG - # Relative path to item icon. (from __main__, 20 x 20 pixels, .png) self.image_path = "Data/IconSlickSelf.png" - self.player = None # Will be defined during method call activate. - self.ignore = None def activate(self, player): diff --git a/FieldObjects/Items/ItemSlowAll.py b/FieldObjects/Items/ItemSlowAll.py index e1a82a4..31aeffa 100644 --- a/FieldObjects/Items/ItemSlowAll.py +++ b/FieldObjects/Items/ItemSlowAll.py @@ -1,4 +1,3 @@ - from FieldObjects.Items.ItemBase import ItemBase from Utils.Const import * @@ -7,11 +6,11 @@ class ItemSlowAll(ItemBase): """ Decrease the speed of every player but the collecting player by one step. """ + # __init__ from base class. def __init__(self, controller, gamescreen): ItemBase.__init__(self, controller, gamescreen) self.duration = DURATION_NORMAL - # Relative path to item icon. (from __main__, 20 x 20 pixels, .png) self.image_path = "Data/IconSlowAll.png" self.players_to_ignore = [] # Stores all players to ignore by this item @@ -43,4 +42,3 @@ def deactivate(self): else: # Choose next bigger value from the SPEEDS list p.speed = SPEEDS[min(SPEEDS.index(p.speed) + 1, len(SPEEDS) - 1)] - diff --git a/FieldObjects/Items/ItemSlowSelf.py b/FieldObjects/Items/ItemSlowSelf.py index ee6b5f0..ee9c188 100644 --- a/FieldObjects/Items/ItemSlowSelf.py +++ b/FieldObjects/Items/ItemSlowSelf.py @@ -1,4 +1,3 @@ - from FieldObjects.Items.ItemBase import ItemBase from Utils.Const import * @@ -7,11 +6,11 @@ class ItemSlowSelf(ItemBase): """ Decreases the speed of the collecting player by one step. """ + # __init__ from base class. def __init__(self, controller, gamescreen): ItemBase.__init__(self, controller, gamescreen) self.duration = DURATION_SHORT - # Relative path to item icon. (from __main__, 20 x 20 pixels, .png) self.image_path = "Data/IconSlowSelf.png" self.ignore = False # Indicates if this Items effect should be ignored @@ -40,4 +39,3 @@ def deactivate(self): pass else: self.player.speed = SPEEDS[min(SPEEDS.index(self.player.speed) + 1, len(SPEEDS) - 1)] - diff --git a/FieldObjects/Items/ItemSmallSelf.py b/FieldObjects/Items/ItemSmallSelf.py index c057efa..c7ea17e 100644 --- a/FieldObjects/Items/ItemSmallSelf.py +++ b/FieldObjects/Items/ItemSmallSelf.py @@ -1,4 +1,3 @@ - from FieldObjects.Items.ItemBase import ItemBase from Utils.Const import * @@ -7,11 +6,11 @@ class ItemSmallSelf(ItemBase): """ Increases the size of every player but the collecting player by one step. """ + # __init__ from base class. def __init__(self, controller, gamescreen): ItemBase.__init__(self, controller, gamescreen) self.duration = DURATION_NORMAL - # Relative path to item icon. (from __main__, 20 x 20 pixels, .png) self.image_path = "Data/IconSmallSelf.png" self.was_at_min_size = False diff --git a/FieldObjects/Items/ItemZiggZaggAll.py b/FieldObjects/Items/ItemZiggZaggAll.py index 28a9d0e..75c6fa8 100644 --- a/FieldObjects/Items/ItemZiggZaggAll.py +++ b/FieldObjects/Items/ItemZiggZaggAll.py @@ -1,4 +1,3 @@ - from FieldObjects.Items.ItemBase import ItemBase from Utils.Const import * @@ -8,6 +7,7 @@ class ItemZiggZaggAll(ItemBase): sets the collecting everybody's but the collecting players turn rate to RATE_RIGHT_ANGLE. Every turn will then be a 90 degree turn. """ + # __init__ from base class. def __init__(self, controller, gamescreen): ItemBase.__init__(self, controller, gamescreen) diff --git a/FieldObjects/Items/ItemZiggZaggSelf.py b/FieldObjects/Items/ItemZiggZaggSelf.py index 3935bd5..c3f27a2 100644 --- a/FieldObjects/Items/ItemZiggZaggSelf.py +++ b/FieldObjects/Items/ItemZiggZaggSelf.py @@ -1,4 +1,3 @@ - from FieldObjects.Items.ItemBase import ItemBase from Utils.Const import * @@ -7,6 +6,7 @@ class ItemZiggZaggSelf(ItemBase): """ Sets the collecting players turn rate to RATE_RIGHT_ANGLE. every turn will then be a 90 degree turn. """ + # __init__ from base class. def __init__(self, controller, gamescreen): ItemBase.__init__(self, controller, gamescreen) diff --git a/FieldObjects/PlayerClass.py b/FieldObjects/PlayerClass.py index 7bf0abb..4dddbd2 100644 --- a/FieldObjects/PlayerClass.py +++ b/FieldObjects/PlayerClass.py @@ -1,13 +1,14 @@ - +from numpy import sin, cos, radians from pynput import keyboard + from Utils.Const import * -from numpy import sin, cos, radians class Player: """ Represents one player and stores all player specific Information. """ + def __init__(self, name, color, keys={"left": keyboard.Key.left, "right": keyboard.Key.right}, alive=True, speed=SPEED_NORMAL, size=SIZE_NORMAL, flying=False, pos=(100, 100), angle=0): """ @@ -81,7 +82,7 @@ def compute_collision_head(self): current_facing_angle -= self.turn_rate v1, v2 = cos(radians(current_facing_angle)), sin(radians(current_facing_angle)) p, q = self.pos - self.collision_head = [(x, y) for (x, y) in self.dot_trace if (x-p)*v1+(y-q)*v2 >= 0] + self.collision_head = [(x, y) for (x, y) in self.dot_trace if (x - p) * v1 + (y - q) * v2 >= 0] def pixel_in_tolerance(self, pix): """ @@ -102,6 +103,7 @@ def make_listener(self): :return: None """ + def on_press(key): if self.key_is_held_down and self.turn_rate == RATE_RIGHT_ANGLE: self.move_command = DIR_STRAIGHT diff --git a/FieldObjects/PlayerClassBot.py b/FieldObjects/PlayerClassBot.py index ebd69ac..494d7fc 100644 --- a/FieldObjects/PlayerClassBot.py +++ b/FieldObjects/PlayerClassBot.py @@ -1,8 +1,8 @@ -from FieldObjects.PlayerClass import Player -from pynput import keyboard -from Utils.Const import * from numpy import shape, sqrt +from pynput import keyboard +from FieldObjects.PlayerClass import Player +from Utils.Const import * from Utils.HelperFunctions import (stochastic_gradient_descent, is_contained_in_cone, is_point_on_left_side) from Utils.TargetFunctions import target_function_cont, target_function_cont_d @@ -184,9 +184,9 @@ def compute_move_command_old(self, walls): if is_contained_in_cone(i, j, facing_angle=self.angle, apex_angle=self.apex_angle): cone_points.append((i, j)) if is_point_on_left_side(self.angle, i, j): - left_score += 1 #/ sqrt(i ** 2 + j ** 2) + left_score += 1 # / sqrt(i ** 2 + j ** 2) else: - right_score += 1 #/ sqrt(i ** 2 + j ** 2) + right_score += 1 # / sqrt(i ** 2 + j ** 2) if left_score < right_score: self.move_command = DIR_LEFT elif left_score > right_score: @@ -211,7 +211,7 @@ def get_normed_wall_points_in_scope(self, walls): # Convention is that walls contains -1 at [x, y] if the canvas pixel (x, y) shows a wall. x, y = self.pos n, _ = shape(walls) - return [(i-x, j-y) + return [(i - x, j - y) for i in range(x - self.scope_radius, x + self.scope_radius + 1) for j in range(y - self.scope_radius, y + self.scope_radius + 1) if walls[i % n, j % n] == -1] diff --git a/README.md b/README.md index f2fe78a..d660da8 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,36 @@ # Wall Run -This is a simple game written in Python 3 for up to six players. -This repository contains all needed python files beside the necessary packages. -For now, there is no stand-alone version of this game so you have to run the \_\_main\_\_.py method. +This is a simple game written in Python 3 for up to six players - playable on one single keyboard. +This project was inspired by the well known game "AchtungDieKurve". + +![displaying wallrun menu](resources/wallrun_menu.png "wallrun menu") +![dsiblaying an active wallrun game](resources/wallrun_game.png "wallrun game") +![dsiblaying wallrun option menu](resources/wallrun_options.png "wallrun options") + +# How to install + +1. Clone this repository. +2. Create a virtual environment inside the repository and activate it. +3. Install teh required packages provided within the `requirements.txt` file by running + ```bash + pip3 install -r requirements.txt + ``` + inside your virtual environments +4. Start the programm by running + ```bash + python3 __main__.py + ``` + or + ```bash + python3 //WallRun + ``` + +## Required Packages -## Needed Packages In order to run this game you need the following packages: - numpy (>=1.19.1) -- time -- timeit -- threading - pynput (>=1.6.8) -- tkinter - -A detailed requirements list of the single needed functions from the list might follow -later when a setup file is made. +After cloning this repository, use the `requirements.txt` file to install the above libraries into your virtual +environment. diff --git a/Sandbox.py b/Sandbox.py index cd074b7..884dcc7 100644 --- a/Sandbox.py +++ b/Sandbox.py @@ -1,6 +1,7 @@ -from Utils.HelperFunctions import * import numpy as np +from Utils.HelperFunctions import * + print(get_point_from_angle(180)) print(cone_contains(-1, 0, 180, 30)) @@ -21,9 +22,9 @@ n, _ = np.shape(walls) a = [(i - x, j - y) - for i in range(x - scope_radius, x + scope_radius + 1) - for j in range(y - scope_radius, y + scope_radius + 1) - if walls[i % n, j % n] == -1 and sqrt((i - x) ** 2 + (j - y) ** 2) < scope_radius] + for i in range(x - scope_radius, x + scope_radius + 1) + for j in range(y - scope_radius, y + scope_radius + 1) + if walls[i % n, j % n] == -1 and sqrt((i - x) ** 2 + (j - y) ** 2) < scope_radius] print(walls) print(a) @@ -40,4 +41,4 @@ else: right_score += 1 print("left score: ", left_score) -print("right score: ", right_score) \ No newline at end of file +print("right score: ", right_score) diff --git a/Screens/GUI.py b/Screens/GUI.py index 3c47f11..ba73280 100644 --- a/Screens/GUI.py +++ b/Screens/GUI.py @@ -52,10 +52,10 @@ def __init__(self): # dummy_player2 = PlayerBotContLossStrategy(name="Bot2", color="Blue") # dummy_player3 = PlayerBotContLossStrategy(name="Bot3", color="Orange") self.players = [ - # dummy_player1, - # dummy_player2, - # dummy_player3 - ] + # dummy_player1, + # dummy_player2, + # dummy_player3 + ] self.max_rounds = 5 # All items registered self.all_items = ["ItemClear", "ItemBlock", "ItemJump", "ItemGlueAll", "ItemSlickSelf", "ItemFly", @@ -96,8 +96,13 @@ def exit_session(self): def get_execution_path() -> str: execution_path = pathlib.Path(sys.argv[0]) - if execution_path.is_file(): - return os.getcwd() + "/" + str(execution_path.parent) + if execution_path.is_absolute(): + if execution_path.is_file(): + return str(execution_path.parent) + else: + return str(execution_path) else: - return os.getcwd() + "/" + str(execution_path) - + if execution_path.is_file(): + return os.getcwd() + "/" + str(execution_path.parent) + else: + return os.getcwd() + "/" + str(execution_path) diff --git a/Screens/GameScreenClass.py b/Screens/GameScreenClass.py index 913f239..0dea51b 100644 --- a/Screens/GameScreenClass.py +++ b/Screens/GameScreenClass.py @@ -1,12 +1,13 @@ +from datetime import datetime from importlib import import_module - -from numpy import sin, cos, radians, zeros, ones, argwhere -from numpy.random import default_rng from threading import Thread -from tkinter import (Frame, Canvas, PhotoImage, Label, Button, - CENTER, DISABLED, NORMAL, NW, LEFT) from time import sleep from timeit import default_timer +from tkinter import (Frame, Canvas, PhotoImage, Label, Button, + CENTER, DISABLED, NORMAL, NW, LEFT) + +from numpy import sin, cos, radians, zeros, ones +from numpy.random import default_rng from pynput import keyboard from Screens import GUI @@ -24,7 +25,7 @@ class GameScreen(Frame): respectively. For convenience reasons, both layers use the same syntax for location description. This results in the second layer being mirrored compared to the first layer. An example: Considering the pixel on the first layer at position (x, y), x describing the horizontal location and y the - vertical location starting at the top left corner. In order for the second layer to align perfectly to that, + vertical location starting in the top left corner. In order for the second layer to align perfectly to that, the corresponding pixel should be at position [y, x] since the first entry describes the row number and the second entry the column number of field matrix. Instead, both layers store the corresponding pixel at (x, y) resulting in the second layer being @@ -35,6 +36,7 @@ class GameScreen(Frame): def __init__(self, controller, parent): Frame.__init__(self, master=parent) + self.parent = parent self.controller = controller @@ -76,7 +78,7 @@ def __init__(self, controller, parent): # -- Game buttons button_setting = {"width": int(6 * controller.scale), - "height": int(2 * controller.scale), + "height": int(1 * controller.scale), "font": controller.font_basic, } @@ -96,27 +98,33 @@ def __init__(self, controller, parent): ) self.bgopause.grid(row=1, column=11) + self.bscreenshot = Button(master=self, + text="Photo", + command=self.screenshot, + cnf=button_setting, + ) + self.bscreenshot.grid(row=1, column=12) + self.bback = Button(master=self, text="Back", command=self.back, cnf=button_setting, ) - - self.bback.grid(row=1, column=12) + self.bback.grid(row=2, column=11) # -- Game labels - self.label_rounds = Label(master=self, - font=self.controller.font_medium, - text="Round {0}\n {1} Points to win".format(self.current_round, self.max_wins), - ) - self.label_rounds.grid(row=2, column=10, columnspan=3) - self.label_info = Label(master=self, font=self.controller.font_medium, - text="", + text="Round {0}\n {1} Points to win".format(self.current_round, self.max_wins), ) self.label_info.grid(row=3, column=10, columnspan=3) + # self.label_info = Label(master=self, + # font=self.controller.font_medium, + # text="", + # ) + # self.label_info.grid(row=4, column=10, columnspan=3) + # -- Player labels self.player_labels = [] self.display_ranking() @@ -589,7 +597,10 @@ def initialise_new_round(self): :return: None. """ self.current_round += 1 - self.label_rounds.config(text="Round {0}\n {1} Points to win".format(self.current_round, self.max_wins)) + self.label_info.config( + text="Round {0}\n {1} Points to win".format(self.current_round, self.max_wins), + fg="Black" + ) # Clear items self.reset_all_items() # clean canvas @@ -600,8 +611,6 @@ def initialise_new_round(self): for p in self.controller.players: # Put player on field self.place_player(p) - # Other - self.label_info.config(text="") def start_round(self): """ @@ -625,8 +634,6 @@ def start_round(self): daemon=True ) self.thread_jobs.start() - # Clear info message - self.label_info.config(text="") def pause_round(self): """ @@ -646,6 +653,15 @@ def back(self): self.reset_all_items() self.controller.show_frame("Title") + def screenshot(self, ): + path = GUI.get_execution_path() + "/" + "wallrun_" + "{:%Y-%m-%d-%H-%M-%S}".format(datetime.now()) + ".jpg" + # ImageTk.getimage(self.field_image).save(path) + # postscript_str = self.canvas.postscript(colormode="color") + # img = Image.open(io.BytesIO(postscript_str.encode("utf-8")), formats=["ps"]) + self.field_image.write(filename=path) + # img.save(path) + print("Wrote screenshot to " + path) + # ######################################## # Ticker functions # ######################################## @@ -842,7 +858,8 @@ def solve_round_end(self): if self.check_game_end(): self.set_buttons(state="off") game_winner = sorted(self.controller.players, key=lambda p: p.wins)[-1] - self.label_info.config(text=str(game_winner.name) + "\nwins the game.\n Congratulations!") + self.label_info.config(text=str(game_winner.name) + "\nwins the game.\n Congratulations!", + fg=game_winner.color) else: self.set_buttons(state="init") @@ -973,7 +990,8 @@ def _move_deprecated(self): # update walls if... if (self.tick_count % self.gap_rate > self.gap_length # it is not field tick where gaps are drawn && - and (p.turn_rate != RATE_RIGHT_ANGLE or player_moved_straight) # there was NOT field 90 degree turn && + and ( + p.turn_rate != RATE_RIGHT_ANGLE or player_moved_straight) # there was NOT field 90 degree turn && and not p.flying): # player is not flying. for pix in [c for c in old_dot_trace if c not in p.dot_trace]: self.walls[pix] = -1 diff --git a/Screens/OptionScreenClass.py b/Screens/OptionScreenClass.py index c56ba89..8063b4e 100644 --- a/Screens/OptionScreenClass.py +++ b/Screens/OptionScreenClass.py @@ -1,7 +1,9 @@ from tkinter import (Frame, Label, Button, Entry, IntVar, Radiobutton, PhotoImage, TOP, ) + from pynput import keyboard + from FieldObjects import PlayerClass from Screens import GUI @@ -85,12 +87,12 @@ def __init__(self, controller, parent): fg=p["color"], activeforeground=p["color"], relief="sunken", cnf=cnf_button_toggle_player) - button_toggle.grid(row=2, column=2*i, columnspan=2) + button_toggle.grid(row=2, column=2 * i, columnspan=2) self.toggle_buttons.append(button_toggle) # name field entry_field = Entry(master=self, bd=1, width=14) entry_field.insert(0, p["name"]) - entry_field.grid(row=3, column=2*i, columnspan=2, padx=8) + entry_field.grid(row=3, column=2 * i, columnspan=2, padx=8) self.name_fields.append(entry_field) # direction labels try: @@ -101,12 +103,12 @@ def __init__(self, controller, parent): label_right = Label(master=self, text=str(p["keys"]["right"])[4:], relief="ridge", cnf=cnf_label_keys) self.key_labels_left.append(label_left) self.key_labels_right.append(label_right) - label_left.grid(row=4, column=i*2) - label_right.grid(row=4, column=i*2+1) + label_left.grid(row=4, column=i * 2) + label_right.grid(row=4, column=i * 2 + 1) # key chooser button_key = Button(master=self, text="Adjust", command=p["adjust"], cnf=cnf_button_adjust) - button_key.grid(row=5, column=2*i, columnspan=2, pady=6) + button_key.grid(row=5, column=2 * i, columnspan=2, pady=6) self.adjust_buttons.append(button_key) # -- Round chooser @@ -114,7 +116,7 @@ def __init__(self, controller, parent): for i, j in zip(range(5, 31, 5), range(1, 7)): round_button = Radiobutton(master=self, text=str(i), variable=self.max_round, value=i, indicatoron=0, width=12, height=2) - round_button.grid(row=6, column=2*j, columnspan=2, pady=6) + round_button.grid(row=6, column=2 * j, columnspan=2, pady=6) # -- Item selection self.item_toggle_functions = {name: lambda name=name: self.toggle_item(name) @@ -136,8 +138,8 @@ def __init__(self, controller, parent): image=icon, compound=TOP, cnf=cnf_button_item ) - button_item.grid(row=7+int(i/items_per_row), - column=column_offset+(2 * i) % (items_per_row * 2), + button_item.grid(row=7 + int(i / items_per_row), + column=column_offset + (2 * i) % (items_per_row * 2), columnspan=2) self.item_buttons[item_name] = button_item diff --git a/Screens/RuleScreenClass.py b/Screens/RuleScreenClass.py index 170f81e..18a206f 100644 --- a/Screens/RuleScreenClass.py +++ b/Screens/RuleScreenClass.py @@ -1,4 +1,3 @@ - from tkinter import (Frame) diff --git a/Screens/TitleScreenClass.py b/Screens/TitleScreenClass.py index e4167ce..102149d 100644 --- a/Screens/TitleScreenClass.py +++ b/Screens/TitleScreenClass.py @@ -1,6 +1,6 @@ - from tkinter import (Frame, Label, Button, TOP, CENTER, BOTTOM) + from Screens import GameScreenClass diff --git a/Utils/Const.py b/Utils/Const.py index bc46dad..3e37922 100644 --- a/Utils/Const.py +++ b/Utils/Const.py @@ -1,4 +1,3 @@ - # -- Player Directions DIR_LEFT = -1 DIR_RIGHT = 1 diff --git a/Utils/HelperFunctions.py b/Utils/HelperFunctions.py index 642f134..773335c 100644 --- a/Utils/HelperFunctions.py +++ b/Utils/HelperFunctions.py @@ -82,7 +82,7 @@ def stochastic_gradient_descent(f, deriv, x0, stepsize, samples, batchsize=-1, m if no_sampling: x = x - deriv(x, random_samples, **kwargs) else: - x = x - stepsize / (1+i)**2 * deriv(x, random_samples, **kwargs) + x = x - stepsize / (1 + i) ** 2 * deriv(x, random_samples, **kwargs) # print("Current x: ", x) # print("Current loss: ", f(x, samples, **kwargs)) # print("Current garadient: ", deriv(x, samples, **kwargs)) @@ -112,13 +112,13 @@ def cone_contains(x, y, t, a): t = t % 360 # if t > 0: # t = 360 - t - x_norm = x/sqrt(x**2+y**2) - y_norm = y/sqrt(x**2+y**2) + x_norm = x / sqrt(x ** 2 + y ** 2) + y_norm = y / sqrt(x ** 2 + y ** 2) t_x, t_y = get_point_from_angle(t) - a_x, a_y = get_point_from_angle((t+a/2) % 360) - print("(x,y) = ({0}, {1})".format(x, y), "t = ", t, "t+a/2%360 = ", t+a/2 % 360) - print("x-t: ", (x_norm-t_x)**2 + (y_norm-t_y)**2, "a/2-t: ", (a_x-t_x)**2 + (a_y-t_y)**2) - return (x_norm-t_x)**2 + (y_norm-t_y)**2 <= (a_x-t_x)**2 + (a_y-t_y)**2 + a_x, a_y = get_point_from_angle((t + a / 2) % 360) + print("(x,y) = ({0}, {1})".format(x, y), "t = ", t, "t+a/2%360 = ", t + a / 2 % 360) + print("x-t: ", (x_norm - t_x) ** 2 + (y_norm - t_y) ** 2, "a/2-t: ", (a_x - t_x) ** 2 + (a_y - t_y) ** 2) + return (x_norm - t_x) ** 2 + (y_norm - t_y) ** 2 <= (a_x - t_x) ** 2 + (a_y - t_y) ** 2 def arctan_lim(x, y): @@ -148,7 +148,7 @@ def get_angle_between_vectors(x, y, p, q): :param q: int, 2nd y-coordinate :return: float, Angle in integer degrees in [0, 180) """ - return rad2deg(arccos((x*p+y*q)/(sqrt((x**2+y**2)*(p**2+q**2))))) + return rad2deg(arccos((x * p + y * q) / (sqrt((x ** 2 + y ** 2) * (p ** 2 + q ** 2))))) def get_point_from_angle(angle): @@ -169,7 +169,7 @@ def get_point_from_angle(angle): else: sign = -1 angle = deg2rad(360 - angle) - return sign * sqrt(1-sin(angle)**2), sin(angle) + return sign * sqrt(1 - sin(angle) ** 2), sin(angle) def get_angle_of_point(x, y): @@ -184,15 +184,15 @@ def get_angle_of_point(x, y): if x == y == 0: return 0 - norm = sqrt(x**2+y**2) + norm = sqrt(x ** 2 + y ** 2) if x > 0 and y >= 0: - return rad2deg(arcsin(abs(y)/norm)) + return rad2deg(arcsin(abs(y) / norm)) elif x <= 0 and y > 0: - return 90 + rad2deg(arcsin(abs(y)/norm)) + return 90 + rad2deg(arcsin(abs(y) / norm)) elif x < 0 and y <= 0: - return 180 + rad2deg(arcsin(abs(y)/norm)) + return 180 + rad2deg(arcsin(abs(y) / norm)) else: - return 270 + rad2deg(arcsin(abs(y)/norm)) + return 270 + rad2deg(arcsin(abs(y) / norm)) def get_normal_from_angle(angle): @@ -220,7 +220,7 @@ def is_point_on_left_side(angle, x, y): :return: """ n1, n2 = get_normal_from_angle(angle) - return x*n1 + y*n2 >= 0 + return x * n1 + y * n2 >= 0 def get_direction_from_angle(angle): @@ -246,8 +246,8 @@ def is_contained_in_cone(x, y, facing_angle, apex_angle): :return: boolean, true if the point is strictly contained in the cone. """ assert 180 >= apex_angle >= 0, "apex_angle must be in [0, 360)." - x_left, y_left = get_direction_from_angle(facing_angle - apex_angle/2) - x_right, y_right = get_direction_from_angle(facing_angle + apex_angle/2) + x_left, y_left = get_direction_from_angle(facing_angle - apex_angle / 2) + x_right, y_right = get_direction_from_angle(facing_angle + apex_angle / 2) n_x_left, n_y_left = -y_left, x_left # normal of left cone vector n_x_right, n_y_right = y_right, -x_right # normal of right cone vector diff --git a/Utils/TargetFunctions.py b/Utils/TargetFunctions.py index 4d26558..0a3f685 100644 --- a/Utils/TargetFunctions.py +++ b/Utils/TargetFunctions.py @@ -45,7 +45,7 @@ def target_function_cont(t, wall_points, pos, lam=0.0): x_norm = y_norm = 0 sum_x += x_norm sum_y += y_norm - return 2/len(wall_points) * cos(t) * sum_x + 2/len(wall_points) * sin(t) * sum_y - 1 + 0.5 * lam * t**2 + return 2 / len(wall_points) * cos(t) * sum_x + 2 / len(wall_points) * sin(t) * sum_y - 1 + 0.5 * lam * t ** 2 def target_function_cont_d(t, wall_points, pos, lam=0.0): @@ -105,4 +105,4 @@ def target_function_cont_dd(t, wall_points, pos, lam=0.0): x_norm = y_norm = 0 sum_x += x_norm sum_y += y_norm - return 2 / len(wall_points) * cos(t) * sum_x - 2 / len(wall_points) * sin(t) * sum_y + lam \ No newline at end of file + return 2 / len(wall_points) * cos(t) * sum_x - 2 / len(wall_points) * sin(t) * sum_y + lam diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..17658e5 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,2 @@ +numpy>=1.19.1 +pynput>=1.6.8 diff --git a/resources/wallrun_game.png b/resources/wallrun_game.png new file mode 100644 index 0000000000000000000000000000000000000000..4fb240754c821b8a88991c4ab58d8c5b8e0b8631 GIT binary patch literal 47435 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 z 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 PlOr%d)GfH``1pSS3vH9_ literal 0 HcmV?d00001 diff --git a/resources/wallrun_menu.png b/resources/wallrun_menu.png new file mode 100644 index 0000000000000000000000000000000000000000..4bf97b22ad31d88da6a19d55b34c9b672846236e GIT binary patch literal 42856 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
*Y<9bRS*wC^D^HJ_ZHb4`ZFT zAIj8>#Y^3aS#fNb|Nf~}-bL$vhUZikrK5>1Hb_-P6>VO#(zbonvN}09bQBk(FEUnG zsAbC7W9&l+-y1gc&;VWP7n{q&A`U?OuKJ#JnPk8KlFl)$XI%TrO&?HOM9rQ{c$Ma?B#5G z)ydzO@4(=EjF%OQElyug-?SEgN3+tGU#W6Sr;KgvFF8$ zwba5-d=*Vq1_`m^r~JiAQ{tnh`?-@&IYJk5sH5;XK(Rg!
}9b#MPml}wEh_z|U1 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

o3gxW)nGq`K2XHc|8U; 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 F{ckCGn(zPs literal 0 HcmV?d00001 diff --git a/resources/wallrun_options.png b/resources/wallrun_options.png new file mode 100644 index 0000000000000000000000000000000000000000..eb7cc519ea351c30f0c57b910562a57ea9f8a58d GIT binary patch literal 64682 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 Sd}E_X*As5XYmc7)%Rd3_uk%v? literal 0 HcmV?d00001