diff options
author | Aineopintojen-harjoitustyo-Algoritmit-j <github-hy-tiralabra@v.hix.fi> | 2024-01-27 12:09:16 +0200 |
---|---|---|
committer | Aineopintojen-harjoitustyo-Algoritmit-j <github-hy-tiralabra@v.hix.fi> | 2024-01-27 12:09:16 +0200 |
commit | c0a0bb30e03be9c47b99d5da848e29a747e9af66 (patch) | |
tree | e1bbfb9da2c5a8feff6eaf6ea03e24fda1dee7fb | |
parent | 628105f4640cb341967aaf9771c7c604d4f7aea5 (diff) |
Adding autoplay functionality.
-rw-r--r-- | __main__.py | 18 | ||||
-rw-r--r-- | app.py | 6 | ||||
-rw-r--r-- | tui/__init__.py | 1 | ||||
-rw-r--r-- | tui/autotui.py | 17 |
4 files changed, 37 insertions, 5 deletions
diff --git a/__main__.py b/__main__.py index 2df26fa..697ceb4 100644 --- a/__main__.py +++ b/__main__.py @@ -8,19 +8,31 @@ parser = ArgumentParser( ) parser.add_argument( '-b', '--beginner', - help='Aseta aloittelijan vaikeustaso (oletus)', + help='Asettaa aloittelijan vaikeustason (oletus)', action='store_true', ) parser.add_argument( '-i', '--intermediate', - help='Aseta keskivaikea vaikeustaso', + help='Asettaa keskivaikean vaikeustaso', action='store_true' ) parser.add_argument( '-e', '--expert', - help='Aseta edistynyt vaikeustaso (vaatii 100 merkkiä leveän terminaalin)', + help='Asettaa edistyneen vaikeustason (vaatii 100 merkkiä leveän terminaalin)', action='store_true' ) +parser.add_argument( + '-a', '--auto', + help='Antaa botin pelata automaattisesti', + action='store_true' +) +parser.add_argument( + '-u', '--uncertain', + help='Antaa botille luvan tehdä myös epävarmoja valintoja', + action='store_true' +) + + args = parser.parse_args() @@ -1,6 +1,6 @@ """ app.py - pääohjelma """ from board import Board, Level -from tui import Tui +from tui import Tui, AutoTui from game import Game from bots import BadBot @@ -9,14 +9,16 @@ class App: """ App - Luokka pääohjelmalle""" def __init__(self, args=None): level=Level.BEGINNER + ui_class=Tui if args: level = Level.EXPERT if args.expert else level level = Level.INTERMEDIATE if args.intermediate else level level = Level.BEGINNER if args.beginner else level + ui_class = AutoTui if args.auto else ui_class self.board = Board(level=level) self.bot = BadBot() - self.ui = Tui(self.bot) + self.ui = ui_class(self.bot) self.game = Game(self.board,self.ui) def run(self): diff --git a/tui/__init__.py b/tui/__init__.py index c1c5b91..f39cd45 100644 --- a/tui/__init__.py +++ b/tui/__init__.py @@ -1,3 +1,4 @@ """ tui - hoitaa käyttäjälle katseltavaa ja havaitsee syötteet """ from .tui import Tui +from .autotui import AutoTui from .static import Action diff --git a/tui/autotui.py b/tui/autotui.py new file mode 100644 index 0000000..dbda560 --- /dev/null +++ b/tui/autotui.py @@ -0,0 +1,17 @@ +""" autotui - pelaa botin antamat vinkit jonka jälkeen käyttäjän """ +from .tui import Tui +from .static import Action + +class AutoTui(Tui): + """ Tui - Luokka joka tekee botin vinkit ensin """ + def matrix_selector(self, matrix, x, y): + """ yritetään pyydellä botilta vinkkiä ensin """ + if self.bot is not None: + action, x, y = self.bot.hint(matrix, x, y) + if action != Action.NOOP: + self.draw_matrix(matrix, -1, -1) + if action==Action.SAFE: + action = Action.OPEN + return action, x, y + + return super().matrix_selector(matrix, x, y) |