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))
|