summaryrefslogtreecommitdiff
path: root/app.py
blob: 4af66dd5a04615281b1333af108d679a97dce45d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
""" app.py - pääohjelma """
from board import Board, Level, LevelSpecs
from tui import Tui
from game import Game
from bots import SimpleBot, DSSPBot

# pylint: disable = too-few-public-methods
class App:
    """ App - Luokka pääohjelmalle"""
    def __init__(self, args=None):
        level = Level.BEGINNER
        tui_opts = {'bot': DSSPBot}
        if args:
            # pylint: disable = pointless-statement
            (level:=Level.INTERMEDIATE) if args.intermediate else ()
            (level:=Level.EXPERT) if args.expert else ()

            tui_opts['bot'] = SimpleBot if args.simple else DSSPBot
            tui_opts['autoplay'] = args.auto
            tui_opts['interactive'] = not args.uncertain
            tui_opts['suppress'] = args.quiet
            tui_opts['height'] = LevelSpecs[level][1]

        self.board = Board(level=level)
        self.ui = Tui(**tui_opts)
        self.game = Game(self.board,self.ui)

    def run(self):
        """ käynnistää pelin """
        while self.game.next():
            pass
        return self.board.is_winning()