53 lines
1.2 KiB
Python
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
|