TDT4109/Exercise 10/chess/chess.py

69 lines
1.4 KiB
Python
Raw Normal View History

2020-11-10 23:56:21 +01:00
from os import system
from dataclasses import dataclass
2020-11-12 00:17:02 +01:00
from board import Board
2020-11-12 19:17:16 +01:00
from piece import Piece
2020-11-12 00:17:02 +01:00
2020-11-10 23:56:21 +01:00
@dataclass
class Player:
name: str
color: str
class Chess:
def __init__(self, players):
self.players = players
2020-11-12 19:17:16 +01:00
self.board = Board()
2020-11-10 23:56:21 +01:00
2020-11-12 19:17:16 +01:00
def makeMove(self, player):
chosenTile = 0,0
while True:
piece = self.board.selectPiece(player, *chosenTile)
chosenTile = piece
possibleMoves = Piece.possibleMoves(*piece, self.board)
if move := self.board.selectMove(player, *piece, possibleMoves):
break
print(move)
input()
self.board.movePiece(piece, move)
def win(self, player):
print(player.name, 'won.')
exit(0)
def tie(self):
print('Stalemate')
2020-11-12 00:17:02 +01:00
exit(0)
2020-11-10 23:56:21 +01:00
def update(self):
system('clear')
2020-11-12 19:17:16 +01:00
self.makeMove(players[0])
# if self.board.checkCheckMate(players[1].color):
# self.win(players[0])
# elif self.board.checkStaleMate(players[1].color):
# self.tie()
2020-11-12 00:17:02 +01:00
system('clear')
2020-11-12 19:17:16 +01:00
self.makeMove(players[1])
# if self.board.checkCheckMate(players[0].color):
# self.win(players[1])
# elif self.board.checkStaleMate(players[0].color):
# self.tie()
2020-11-10 23:56:21 +01:00
def loop(self):
while True:
self.update()
if __name__ == "__main__":
players = (
Player('Spiller 1', 'white'),
Player('Spiller 2', 'black'),
)
2020-11-12 19:17:16 +01:00
game = Chess(('Spiller 1', 'Spiller 2'))
game.loop()
# board = Board()
# print(board.selectPiece(players[0], centering=True))