opale/opale/game.py

53 lines
1.2 KiB
Python

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Wed Mar 4 22:20:15 2020
@author: AlexandreMouchel
"""
from opale.carte import *
from opale.board import Board
from opale.player import Player
class Game():
def __init__(self, player1_name, player2_name):
self.board = Board()
self.player1 = Player(player1_name)
self.player2 = Player(player2_name)
self.round = 0
@property
def current_player(self):
if self.round % 2:
return self.player2
else:
return self.player1
@property
def current_partner(self):
if self.round % 2:
return self.player1
else:
return self.player2
def isFinished(self):
return self.board.isFinished() or self.player1.cantpioche or self.player2.cantpioche
def play_round(self, *cards):
self.current_player.play_card(*cards)
ret = self.board.play_card(*cards)
for c in ret:
if type(c) == DragonPetrified:
self.current_partner.lose_dragon()
self.current_player.take_dragon()
break
self.current_player.push_défausse(*ret)
self.current_player.pick()
self.round += 1