cleanup
This commit is contained in:
		
							
								
								
									
										22
									
								
								server.py
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								server.py
									
									
									
									
									
								
							@@ -7,6 +7,7 @@ from app_instance import api
 | 
			
		||||
from routes import *
 | 
			
		||||
import wiz_game
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def main():
 | 
			
		||||
    print("main started")
 | 
			
		||||
 | 
			
		||||
@@ -16,27 +17,6 @@ def main():
 | 
			
		||||
    api.run(port=19203, address="127.0.0.1")
 | 
			
		||||
    exit(0)
 | 
			
		||||
 | 
			
		||||
#    w.create_deck()
 | 
			
		||||
#    w.add_player("p1", 1)
 | 
			
		||||
#    w.add_player("p2", 2)
 | 
			
		||||
#    w.add_player("p3", 3)
 | 
			
		||||
#    w.add_player("p4", 4)
 | 
			
		||||
#    w.deal_cards(1)
 | 
			
		||||
#    print("round 2")
 | 
			
		||||
#    w.deal_cards(2)
 | 
			
		||||
#    print("round 3")
 | 
			
		||||
#    w.deal_cards(3)
 | 
			
		||||
#    print("round 4")
 | 
			
		||||
#    w.deal_cards(4)
 | 
			
		||||
#    print("round 12")
 | 
			
		||||
#    w.deal_cards(12)
 | 
			
		||||
#    print("round 13")
 | 
			
		||||
#    w.deal_cards(13)
 | 
			
		||||
#    print("round 14")
 | 
			
		||||
#    w.deal_cards(14)
 | 
			
		||||
#    print("round 15")
 | 
			
		||||
#    w.deal_cards(15)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if __name__ == '__main__':
 | 
			
		||||
    main()
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										197
									
								
								wiz_game.py
									
									
									
									
									
								
							
							
						
						
									
										197
									
								
								wiz_game.py
									
									
									
									
									
								
							@@ -62,50 +62,12 @@ class Player:
 | 
			
		||||
    def set_cards(self, cards):
 | 
			
		||||
        self.cards = sorted(cards, key=attrgetter('color', 'value'))
 | 
			
		||||
 | 
			
		||||
    #def show_cards(self):
 | 
			
		||||
    #    print(self.cards)
 | 
			
		||||
 | 
			
		||||
    def play_card(self, card_idx):
 | 
			
		||||
        c = self.cards[card_idx]
 | 
			
		||||
        self.cards.remove(c)
 | 
			
		||||
        return c
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Table:
 | 
			
		||||
    def __init__(self):
 | 
			
		||||
        #self.played_cards = {0: None, 1: None, 2: None, 3: None, 4: None, 5: None}
 | 
			
		||||
        self.players = list()
 | 
			
		||||
        self.played_cards = list()
 | 
			
		||||
        self.num_cards_played = 0
 | 
			
		||||
        self.trump_card = None
 | 
			
		||||
 | 
			
		||||
    def init(self):
 | 
			
		||||
        self.players.clear()
 | 
			
		||||
        self.played_cards.clear()
 | 
			
		||||
        self.num_cards_played = 0
 | 
			
		||||
        self.trump_card = None
 | 
			
		||||
 | 
			
		||||
    def add_player(self, p: Player):
 | 
			
		||||
        self.players.append(p)
 | 
			
		||||
 | 
			
		||||
    def clear_table(self, start_player):
 | 
			
		||||
        self.played_cards.clear()
 | 
			
		||||
        p1 = self.players[start_player:]
 | 
			
		||||
        p2 = self.players[:start_player]
 | 
			
		||||
        for p in p1:
 | 
			
		||||
            t = (p, None)
 | 
			
		||||
            self.played_cards.append(t)
 | 
			
		||||
        for p in p2:
 | 
			
		||||
            t = (p, None)
 | 
			
		||||
            self.played_cards.append(t)
 | 
			
		||||
        self.num_cards_played = 0
 | 
			
		||||
 | 
			
		||||
    def play_card(self, player: Player, card: Card):
 | 
			
		||||
        t = (player, card)
 | 
			
		||||
        self.played_cards[player.id] = t
 | 
			
		||||
        self.num_cards_played += 1
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class WizGame:
 | 
			
		||||
    def __init__(self, player_names: list):
 | 
			
		||||
        self.players = [Player(pn, idx) for idx, pn in enumerate(player_names)]
 | 
			
		||||
@@ -205,7 +167,6 @@ class WizGame:
 | 
			
		||||
    def next_trick(self):
 | 
			
		||||
        win = self.get_trick_winner()
 | 
			
		||||
        winner = win[0]
 | 
			
		||||
        #self.start_player = winner.id
 | 
			
		||||
        starter = winner.id
 | 
			
		||||
        self.players_ordered = self.players[starter:] + self.players[:starter]
 | 
			
		||||
        self.active_player = 0
 | 
			
		||||
@@ -216,7 +177,6 @@ class WizGame:
 | 
			
		||||
        c = p.play_card(card)
 | 
			
		||||
        t = (p, c)
 | 
			
		||||
        self.played_cards.append(t)
 | 
			
		||||
        #self.next_player()
 | 
			
		||||
        self.active_player += 1
 | 
			
		||||
        if self.is_trick_finished():
 | 
			
		||||
            self.num_tricks_played += 1
 | 
			
		||||
@@ -231,14 +191,6 @@ class WizGame:
 | 
			
		||||
                self.trump_card.color = trump_color
 | 
			
		||||
                return True
 | 
			
		||||
 | 
			
		||||
#    def next_player(self):
 | 
			
		||||
#        if not self.is_hand_finished():
 | 
			
		||||
#            self.active_player += 1
 | 
			
		||||
#            if self.active_player >= len(self.players):
 | 
			
		||||
#                self.active_player = 0
 | 
			
		||||
#        else:
 | 
			
		||||
#            self.active_player = None
 | 
			
		||||
 | 
			
		||||
    def get_prev_player(self):
 | 
			
		||||
        if self.start_player == 0:
 | 
			
		||||
            return len(self.players)-1
 | 
			
		||||
@@ -246,155 +198,6 @@ class WizGame:
 | 
			
		||||
            return self.start_player-1
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class WizGame_legacy:
 | 
			
		||||
    def __init__(self):
 | 
			
		||||
        self.players = []
 | 
			
		||||
        self.card_deck = []
 | 
			
		||||
        self.trump_card = None
 | 
			
		||||
        self.table = Table()
 | 
			
		||||
        self.start_player = 0
 | 
			
		||||
        self.active_player = 0
 | 
			
		||||
        self.current_round = 1
 | 
			
		||||
        self.num_tricks_played = 0
 | 
			
		||||
 | 
			
		||||
    def create_deck(self):
 | 
			
		||||
        self.card_deck = []
 | 
			
		||||
        for color in ["b", "r", "g", "y"]:
 | 
			
		||||
            for val in range(1, 14):
 | 
			
		||||
                self.card_deck.append(Card(color, val))
 | 
			
		||||
        for _ in range(1, 5):
 | 
			
		||||
            self.card_deck.append(Card('-', 'Z'))
 | 
			
		||||
        for _ in range(1, 5):
 | 
			
		||||
            self.card_deck.append(Card('-', 'N'))
 | 
			
		||||
        #print(self.card_deck)
 | 
			
		||||
 | 
			
		||||
    def set_trump_color(self, trump_color):
 | 
			
		||||
        if self.trump_card.value != 'Z':
 | 
			
		||||
            return False
 | 
			
		||||
        else:
 | 
			
		||||
            if trump_color not in ["b", "r", "g", "y"]:
 | 
			
		||||
                return False
 | 
			
		||||
            else:
 | 
			
		||||
                self.trump_card.color = trump_color
 | 
			
		||||
                return True
 | 
			
		||||
 | 
			
		||||
    def get_trump_color(self):
 | 
			
		||||
        card = self.trump_card
 | 
			
		||||
        if card:
 | 
			
		||||
            if card.color:
 | 
			
		||||
                return card.color
 | 
			
		||||
            elif card.value == 'Z':
 | 
			
		||||
                return 'choose'
 | 
			
		||||
            else:
 | 
			
		||||
                return None
 | 
			
		||||
        else:
 | 
			
		||||
            return None
 | 
			
		||||
 | 
			
		||||
    def deal_cards(self, cards_per_player):
 | 
			
		||||
        random.shuffle(self.card_deck)
 | 
			
		||||
        cs = list(chunks(self.card_deck, cards_per_player))
 | 
			
		||||
        for idx, p in enumerate(self.players):
 | 
			
		||||
            p.set_cards(cs[idx])
 | 
			
		||||
            #p.show_cards()
 | 
			
		||||
        if len(cs) > len(self.players):
 | 
			
		||||
            cc = cs[len(self.players)]
 | 
			
		||||
            c = cc[0]
 | 
			
		||||
            self.trump_card = c
 | 
			
		||||
        else:
 | 
			
		||||
            self.trump_card = None
 | 
			
		||||
 | 
			
		||||
    def add_player(self, name: str):
 | 
			
		||||
        if len(self.players) < 6:
 | 
			
		||||
            player_id = len(self.players)
 | 
			
		||||
            p = Player(name, player_id)
 | 
			
		||||
            self.players.append(p)
 | 
			
		||||
            self.table.add_player(p)
 | 
			
		||||
 | 
			
		||||
#    def get_active_player(self):
 | 
			
		||||
#        return self.players[self.active_player]
 | 
			
		||||
 | 
			
		||||
    def get_trick_winner(self):
 | 
			
		||||
        cards = self.table.played_cards
 | 
			
		||||
        high_player, high_card = cards[0]
 | 
			
		||||
 | 
			
		||||
        for player, card in cards[1:]:
 | 
			
		||||
            if get_higher_card(high_card, card, self.trump_card.color):
 | 
			
		||||
                high_card = card
 | 
			
		||||
                high_player = player
 | 
			
		||||
        return high_player, high_card
 | 
			
		||||
 | 
			
		||||
    def is_trick_finished(self):
 | 
			
		||||
        if self.table.num_cards_played < len(self.players):
 | 
			
		||||
            return False
 | 
			
		||||
        else:
 | 
			
		||||
            return True
 | 
			
		||||
 | 
			
		||||
    def is_hand_finished(self):
 | 
			
		||||
        h = self.is_trick_finished()
 | 
			
		||||
        if h and self.num_tricks_played == self.current_round:
 | 
			
		||||
            return True
 | 
			
		||||
        else:
 | 
			
		||||
            return False
 | 
			
		||||
 | 
			
		||||
    def next_hand(self):
 | 
			
		||||
        max_hands = len(self.card_deck)/len(self.players)
 | 
			
		||||
        if self.current_round <= max_hands:
 | 
			
		||||
            self.current_round += 1
 | 
			
		||||
            self.start_player += 1
 | 
			
		||||
            if self.start_player >= len(self.players):
 | 
			
		||||
                self.start_player = 0
 | 
			
		||||
            self.active_player = self.start_player
 | 
			
		||||
            self.table.clear_table(self.start_player)
 | 
			
		||||
            self.deal_cards(self.current_round)
 | 
			
		||||
            self.num_tricks_played = 0
 | 
			
		||||
            return True
 | 
			
		||||
        else:
 | 
			
		||||
            return False
 | 
			
		||||
 | 
			
		||||
    def next_trick(self):
 | 
			
		||||
        self.table.clear_table(self.start_player)
 | 
			
		||||
        self.start_player = self.get_trick_winner().id
 | 
			
		||||
 | 
			
		||||
    def init_game(self):
 | 
			
		||||
        self.create_deck()
 | 
			
		||||
        self.current_round = 1
 | 
			
		||||
        self.active_player = 0
 | 
			
		||||
        self.start_player = 0
 | 
			
		||||
        self.table.clear_table(self.start_player)
 | 
			
		||||
        self.deal_cards(1)
 | 
			
		||||
        self.table.num_players = len(self.players)
 | 
			
		||||
 | 
			
		||||
    def play_card(self, player, card):
 | 
			
		||||
        p = self.players[player]
 | 
			
		||||
        c = p.play_card(card)
 | 
			
		||||
        self.table.play_card(p, c)
 | 
			
		||||
        self.next_player()
 | 
			
		||||
        if self.is_trick_finished():
 | 
			
		||||
            self.num_tricks_played += 1
 | 
			
		||||
 | 
			
		||||
    def next_player(self):
 | 
			
		||||
        if not self.is_hand_finished():
 | 
			
		||||
            self.active_player += 1
 | 
			
		||||
            if self.active_player >= len(self.players):
 | 
			
		||||
                self.active_player = 0
 | 
			
		||||
        else:
 | 
			
		||||
            self.active_player = None
 | 
			
		||||
 | 
			
		||||
    def get_prev_player(self):
 | 
			
		||||
        if self.start_player == 0:
 | 
			
		||||
            return len(self.players)-1
 | 
			
		||||
        else:
 | 
			
		||||
            return self.start_player-1
 | 
			
		||||
 | 
			
		||||
    def is_players_turn(self, player):
 | 
			
		||||
        if self.is_trick_finished():
 | 
			
		||||
            return False;
 | 
			
		||||
        if player == self.active_player:
 | 
			
		||||
            return True
 | 
			
		||||
        else:
 | 
			
		||||
            return False
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
p = ["p1", "p2", "p3", "p4"]
 | 
			
		||||
the_game = WizGame(p)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user