Ship of Fools 小游戏的Python实现

Ship of Fools 小游戏的Python实现,第1张

import random

class Die:
    def roll(self):
        self._value=random.randint(1,6)
    def get_value(self):
        return self._value

class DiceCup:

    def __init__(self):
        self._dice=[]
        for x in range(5):
            self._dice.append([Die(),0])
    def value(self,index):
        return self._dice[index][0].get_value()
    def bank(self,index):
        self._dice[index][1]=1
    def is_banked(self,index):
        if self._dice[index][1]==1:
            return True
        else:
            return False
    def release(self,index):
        self._dice[index][1]=0
    def release_all(self):
        for i in range(5):
            self._dice[i][1]=0
    def roll(self):
        for i in range(5):
            if self._dice[i][1]==False:
                self._dice[i][0].roll()

class PlayRoom:    
   
    def __init__(self):
        self._players=[]
    def set_game(self,game):
        self._game=game
    def add_player(self,player):
        self._players.append(player)
    def reset_scores(self):
        for p in self._players:
            p.reset_score()
    def play_round(self,game):
        for p in self._players:
            p.play_round(game)
    def game_finished(self):
        for i in self._players:
            if i.current_score()>=self._game.get_winscore():
                return True
    def print_score(self):
        for i in self._players:
            print('\n'+i.get_name(),'has',i.current_score(),'score\n')
    def print_winner(self):
        maxi=self._players[0].current_score()
        for i in self._players:
            if maxi 3
                
                if Round<3:
                    num=int(input('How many dice do you want to reroll:'))
                    if num==1:
                        index=int(input('What dice do you want to bank:'))-1
                        while self._cup.is_banked(index)==True:
                            print('This has been banked')
                            index=int(input('What dice do you want to bank:'))
                        self._cup.bank(i)
                    elif num==0:
                        for i in range(5):
                            self._cup.bank(i)
        self._cup.release_all()
        if has_ship and has_captain and has_crew:
            for i in range(5):
                crew+=self._cup.value(i)
            crew_=15
        else:
            crew=0
        return crew
    def get_winscore(self):
        return self.winning_score

class Player:
    def __init__(self,name):
        self._name=name
        self._score=0
    def current_score(self):
        return self._score
    def reset_score(self):
        self.score=0
    def play_round(self,game):
        print('\n'+self._name+'\'s turn:\n')
        self._score=game.round()
    def get_name(self):
        return self._name


if __name__=='__main__':
    room=PlayRoom()
    s1=ShipofFoolsGame(21)
    room.set_game(s1)
    room.add_player(Player('Ginger'))
    room.add_player(Player('Gily'))
    room.reset_scores()
    while not room.game_finished():
        room.play_round(s1)
        room.print_score()
    room.print_winner()

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/568188.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-04-09
下一篇2022-04-09

发表评论

登录后才能评论

评论列表(0条)

    保存