Python版大富翁源代碼

</pre><pre name="code" class="python"># -*- coding: utf-8 -*-


#  code by:  Khalil
#  name:     理工大富翁beta2.0
#  describe: 基於python的一個2D大富翁遊戲
'''
1.遊戲地圖爲自己使用各種網絡素材製作;
  各種按鈕和選項,小圖標等也是使用PS製作。

2.聲音效果主要爲背景音樂和幾種遊戲中音效;

3.遊戲設定了兩個類:玩家和建築
  玩家的參數和方法都在代碼中給出;
  具體有:移動方法、位置判斷方法、
  	 購買房屋方法、添加小房子方法、
	 事件判斷方法。

4.玩家在大富翁的主要操作是投擲骰子,由隨機函數
  進行判定然後進行移動,進行位置判斷,然後開始
  進行相關的判定。

5.遊戲中的按鍵有:是、否、和結束回合;
  每個按鍵由沒按下與按下兩種狀態的圖片組成,
  這個設計花費了一定時間。
  還有 開始遊戲 和 扔骰子 的兩個明暗按鈕,
  由pygame優化後的一個函數實現。

6.玩家的位置與電腦重疊時會將雙方的位置進行一定
  偏移,防止進行覆蓋,分不清自己的位置。

7.遊戲基礎功能有移動,購買房子,在已經購買的房子下
  搭建新的小房子增加過路費,被收費,判斷勝負的基礎
  功能,此外還加入了幸運事件:
    財神 - 免收費一次
    衰神 - 雙倍被收費一次
    破壞神 - 直接破壞一個建築 無論敵我
    土地神 - 強佔對面建築
  這四項功能在位置處於左上角和右下角的時候會被觸發,
  添加了很多遊戲樂趣哦~~~ ^_^

8.遊戲基於python的一個模塊pygame實現,給我提供了很
  多快樂的時光,謝謝老師的閱覽與郭寧同學的協助答辯
  :)
'''

########################################準備工作###############################################

# 初始化各種模塊
import pygame
import random
import sys

# 定義類
class Player():
    def __init__(self, image ,name , isPlayer):
        self.name = name
        self.money = 10000
        self.isGoingToMove = False 
        self.movable = True
        self.image = image
        self.position = 0  
        self.temp_position = False
        self.dice_value = 0
        self.locatedBuilding = 0
        self.showText = []
        self.isPlayer = isPlayer
        self.ownedBuildings = []
        self.isShowText = False
        self.soundPlayList = 0
        self.caishen = 0
        self.shuaishen = 0
        self.tudishen = 0
        self.pohuaishen = 0
        
    
    def judgePosition(self,buildings): # 位置判斷 返回值是所在位置的建築
        for each in buildings:
            for every in each.location:
                if self.position == every:
                    return each
                    
            
            # 當使用元組時 當元組中只有一個元素時 發現該元素不可迭代 
            # 出現錯誤 換成列表後解決
            ''' 
            try:
                for every in each.location:
                    if self.position == every:
                        print(each.name)
            except:
                if self.position == every:
                    print(each.name)
            '''
            
    def buyaBuilding(self,isPressYes):    # 購買方法
        if isPressYes and self.locatedBuilding.owner != self.name:
            self.locatedBuilding.owner = self.name
            self.locatedBuilding.wasBought = True
            self.ownedBuildings.append(self.locatedBuilding)
            self.money -= self.locatedBuilding.price
            self.showText = [self.name + '購買了' + self.locatedBuilding.name + '!']
            self.soundPlayList = 1
            return True
        else:
            return False
        
          
            
    def addaHouse(self,isPressYes): # 在建築物上添加一個房子
        try:
            if isPressYes and self.locatedBuilding.owner == self.name:
                self.locatedBuilding.builtRoom += 1
                self.money -= self.locatedBuilding.payment
                self.showText = [self.name + '在' + self.locatedBuilding.name + '上!','蓋了一座房子!',\
                                '有%d' % self.locatedBuilding.builtRoom + '個房子了!',\
                                "它的過路費是%d" % (self.locatedBuilding.payment * \
                                                (self.locatedBuilding.builtRoom + 1)) ]
                self.soundPlayList = 2
                return True
            else:
                return False
        except:
            pass
    
    def move(self,buildings,allplayers):   # 移動方法 返回值是所在的建築位置
        self.dice_value =  random.randint(1,6)
        self.position += self.dice_value
        if self.position >= 16:
            self.position -= 16
        self.locatedBuilding = self.judgePosition(buildings)
        self.isShowText = True
        return self.eventInPosition(allplayers)
    
    
    def eventInPosition(self,allplayers):        # 判斷在建築位置應該發生的事件        
        building = self.locatedBuilding
        if building.name != '空地':
            if self.locatedBuilding.wasBought == False: # 未購買的時候顯示建築的數據!
                if self.isPlayer == True:
                    textLine0 = self.name +'扔出了' + '%d'% self.dice_value + '點!'
                    textLine1 = self.name +'來到了' + building.name + '!'
                    textLine2 = '購買價格:%d' % building.price
                    textLine3 = '過路收費:%d' % building.payment
                    textLine4 = '是否購買?'
                    self.showText = [textLine0,textLine1,textLine2,textLine3,textLine4]
                    return True
                else :
                    self.addaHouse(not self.buyaBuilding(True))
                    
                # ----- 動畫 -------
                # ----- 是否購買 ------
            elif building.owner == self.name: # 路過自己的房子開始加蓋建築!
                if self.pohuaishen == 1:
                    textLine0 = self.name + '破壞神附體!'
                    textLine1 = '摧毀了自己的房子!'
                    building.owner = 'no'
                    building.wasBought = False
                    self.showText = [textLine0,textLine1]
                    self.pohuaishen = 0
                else:
                    if self.isPlayer == True:
                        textLine0 = self.name + '扔出了' + '%d'% self.dice_value + '點!'
                        textLine1 = '來到了ta的'+ self.locatedBuilding.name +'!'
                        textLine2 = '可以加蓋小房子!' 
                        textLine3 = '加蓋收費:%d' % building.payment
                        textLine4 = '是否加蓋?'
                        self.showText = [textLine0,textLine1,textLine2,textLine3,textLine4]
                        return True
                    # ----- 動畫-------
                    else:
                        self.addaHouse(True)
            else:
                for each in allplayers: # 被收費!
                    if self.locatedBuilding.owner == each.name and each.name != self.name:
                        if self.caishen == 1:
                            textLine0 = self.name + '財神附體!'
                            textLine1 = '免除過路費%d!' % (building.payment * (building.builtRoom + 1))
                            self.showText = [textLine0,textLine1]
                            self.caishen = 0
                        else:
                            if self.tudishen == 1:
                                textLine0 = self.name + '土地神附體!'
                                textLine1 = '強佔土地!'
                                textLine2 = building.name + '現在屬於'+ self.name
                                self.locatedBuilding.owner = self.name
                                self.showText = [textLine0,textLine1,textLine2]
                                self.tudishen = 0
                            else:
                                if self.pohuaishen == 1:
                                    textLine0 = self.name + '破壞神附體!'
                                    textLine1 = '摧毀了對手的房子!'
                                    building.owner = 'no'
                                    building.wasBought = False
                                    self.showText = [textLine0,textLine1]
                                    self.pohuaishen = 0   
                                else:
                                    textLine0 = self.name + '扔出了' + '%d'% self.dice_value + '點!'
                                    textLine1 = self.name+ '來到了'+ each.name+'的:'  
                                    textLine2 = building.name + ',被收費!'
                                    if self.shuaishen == 1:
                                        textLine3 = '過路收費:%d*2!' % (building.payment * (building.builtRoom + 1)*2)
                                        self.shuaishen = 0
                                    else:
                                        textLine3 = '過路收費:%d' % (building.payment * (building.builtRoom + 1))
                                    textLine4 = '哦!'+ self.name +'好倒黴!'
                                    self.showText = [textLine0,textLine1,textLine2,textLine3,textLine4]
                                    # 收費!
                                    self.money -= building.payment * (building.builtRoom + 1)
                                    each.money += building.payment * (building.builtRoom + 1)
                                    self.soundPlayList = 3
                                    # ----- 動畫-------
                        
        else:
            # 發現不能處理在空地上的情況 於是使用 try & except 來解決!然後加入了幸運事件功能!
            # 後來發現 try except 弊端太大 找不到錯誤的根源 換爲if else嵌套。。
            whichone = self.dice_value % 4
            if whichone == 0:
                self.caishen = 1
                textLine2 = '遇到了財神!'
                textLine3 = '免一次過路費!'
            if whichone == 1:
                self.shuaishen = 1
                textLine2 = '遇到了衰神!'
                textLine3 = '過路費加倍一次!'
            if whichone == 2:
                self.tudishen = 1
                textLine2 = '遇到了土地神!'
                textLine3 = '強佔一次房子!'
            if whichone == 3:
                self.pohuaishen = 1
                textLine3 = '摧毀路過的房子!'
                textLine2 = '遇到了破壞神!'
            textLine0 = self.name +'扔出了' +'%d'% self.dice_value + '點!'
            textLine1 = '來到了運氣地點!'
            self.showText = [textLine0,textLine1,textLine2,textLine3]

    
    
    
class Building():                           # 好像所有功能都在Player類裏實現了=_=
    def __init__(self,name,price,payment,location):
        self.name = name
        self.price = price
        self.payment = payment
        self.location = location
        self.wasBought = False               # 是否被購買
        self.builtRoom = 0                   # 小房子建造的數目
        self.owner = 'no'
    
    


# 帶透明度的繪圖方法 by turtle 2333
def blit_alpha(target,source,location,opacity):
    x = location[0]
    y = location[1]
    temp = pygame.Surface((source.get_width(),source.get_height())).convert()
    temp.blit(target , (-x , -y))
    temp.blit(source,(0,0))
    temp.set_alpha(opacity)
    target.blit(temp,location)




########################################主函數###############################################    


def main():
    pygame.init()
    clock = pygame.time.Clock()
    
    # 初始化屏幕
    size = (1270,768)
    screen = pygame.display.set_mode(size)
    pygame.display.set_caption("理工大大富翁 - made by 王璞劼")
    
    # 讀取字體以及有關數據
    textColorInMessageBox = (141,146,152)
    white = (255,255,255)
    black = (0,0,0)
    red = (255,0,0)
    font = pygame.font.Font('resource\\font\\myfont.ttf',30)
    
    
    # 讀取資源
    backgroud = pygame.image.load("resource\\pic\\GameMap.png")
    chess = pygame.image.load("resource\\pic\\chess.png")
    chess_com =  pygame.image.load("resource\\pic\\chess1.png")
    bigdice_image = pygame.image.load("resource\\pic\\dice.png").convert_alpha()
    dice_1 = pygame.image.load("resource\\pic\\dice_1.png")
    dice_2 = pygame.image.load("resource\\pic\\dice_2.png")
    dice_3 = pygame.image.load("resource\\pic\\dice_3.png")
    dice_4 = pygame.image.load("resource\\pic\\dice_4.png")
    dice_5 = pygame.image.load("resource\\pic\\dice_5.png")
    dice_6 = pygame.image.load("resource\\pic\\dice_6.png")
    dices = [dice_1,dice_2,dice_3,dice_4,dice_5,dice_6]
    yes = pygame.image.load("resource\\pic\\yes.png")
    yes2 = pygame.image.load("resource\\pic\\yes2.png")
    no = pygame.image.load("resource\\pic\\no.png")
    no2 = pygame.image.load("resource\\pic\\no2.png")
    GameStart = pygame.image.load("resource\\pic\\GameStart.png")
    StartGameButton = pygame.image.load("resource\\pic\\StartGameButton.png").convert_alpha()
    turnover = pygame.image.load("resource\\pic\\turnover.png")
    turnover2 = pygame.image.load("resource\\pic\\turnover2.png")
    shuaishen = pygame.image.load("resource\\pic\\shuaishen.png").convert_alpha()
    tudishen = pygame.image.load("resource\\pic\\tudishen.png").convert_alpha()
    caishen = pygame.image.load("resource\\pic\\caishen.png").convert_alpha()
    pohuaishen = pygame.image.load("resource\\pic\\pohuaishen.png").convert_alpha()
    
    rollDiceSound = pygame.mixer.Sound("resource\\sound\\rolldicesound.wav")
    bgm = pygame.mixer.music.load("resource\\sound\\bgm.ogg")
    throwcoin = pygame.mixer.Sound("resource\\sound\\throwcoin.wav")
    moneysound = pygame.mixer.Sound("resource\\sound\\moneysound.wav")
    aiyo = pygame.mixer.Sound("resource\\sound\\aiyo.wav")
    didong = pygame.mixer.Sound("resource\\sound\\didong.wav")
    
    # PlayList 在對象中設置應該播放的聲音
    playList = [moneysound ,throwcoin ,aiyo]
    
    # 各種Surface的rect 
    bigdice_rect = bigdice_image.get_rect()
    bigdice_rect.left , bigdice_rect.top = 50 , 600
    yes_rect = yes.get_rect()
    yes_rect.left , yes_rect.top = 500,438 
    no_rect = no.get_rect()
    no_rect.left , no_rect.top =  630,438
    button_rect = StartGameButton.get_rect()
    button_rect.left , button_rect.top = 1003,30
    turnover_rect = turnover.get_rect()
    turnover_rect.left , turnover_rect.top = 1035,613
    
    # 實例化對象
    players = []
    computers = []
    allplayers = []
    player_1 = Player(chess , '玩家' , True )
    player_com1 = Player(chess_com , '電腦' , False )
    players.append(player_1)
    computers.append(player_com1)
    allplayers.append(player_1)
    allplayers.append(player_com1)
    
    presentPlayer = player_com1
    
    # 初始化建築物數據
    gate = Building('大門',1000,200,[1,2])
    fountain = Building('噴泉',2000,400,[3,4])
    path = Building('小道',800,160,[5])
    library = Building('圖書館',2000,400,[6,7])
    kongdi1 = Building('空地',0,0,[8])
    classroomTen = Building('教十',1200,240,[9,10])
    classroomNine = Building('教九',1200,240,[11,12])
    resOne = Building('三餐廳',800,160,[13])
    resTwo = Building('二餐廳',800,160,[14])
    resThree = Building('一餐廳',800,160,[15])
    kongdi2 = Building('空地',0,0,[0])
    
    buildings = [gate,fountain,path,library,classroomNine,\
                 classroomTen,resOne,resThree,resTwo,kongdi1,kongdi2]
    
    
    
    # 座標數據 同時處理座標數據 使之合適
    MapXYvalue = [(435.5,231.5),(509.5,231.5),(588.5,231.5),(675.5,231.5),(758.5,231.5),\
                  (758.5,317.0),(758.5,405.5),(758.5,484.5),(758.5,558.5),(679.5,558.5),\
                  (601.5,558.5),(518.5,556.5),(435.5,556.5),(435.5,479.5),(435.5,399.0),\
                  (435.5,315.5)
                  ]
    
    MapChessPosition_Player = []
    MapChessPosition_Com = []
    MapChessPosition_Original = []
    MapChessPosition_Payment = []
    
    MapMessageBoxPosition = (474.1 , 276.9)
    YesNoMessageBoxPosition = [(500,438) , (630,438)]
    StartGameButtonPosition = (1003,30)
    TurnOvwrButtonPosition = (1035,613)
    
    
                # 調整位置
    for i in range(0,16):
        MapChessPosition_Original.append((MapXYvalue[i][0]-50,MapXYvalue[i][1]-80))
        MapChessPosition_Player.append((MapXYvalue[i][0]-70,MapXYvalue[i][1]-60))
        MapChessPosition_Com.append((MapXYvalue[i][0]-30,MapXYvalue[i][1]-100))
        MapChessPosition_Payment.append((MapXYvalue[i][0]-30,MapXYvalue[i][1]-15))
    
    
    
        
    
    # 循環時所用的一些變量      
    running = True
    image_alpha = 255
    button_alpha = 255
    half_alpha = 30
    showdice = True
    showYes2 = False
    showNo2 = False
    showYes_No = False
    pressYes = False
    whetherYes_NoJudge = False
    gameStarted = False
    showButton2 = False
    
    # 播放背景音樂
    pygame.mixer.music.play(100)
    
########################################進入遊戲循環!###############################################    


    # 循環開始! 
    while running:
        if not gameStarted:
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    sys.exit()
                
                # 明暗觸發 鼠標位置判斷 
                if event.type == pygame.MOUSEMOTION:
                    if button_rect.collidepoint(event.pos):
                        button_alpha = 255   
                    else:
                        button_alpha = 120 
                        
                if event.type == pygame.MOUSEBUTTONDOWN:
                     
                    if button_rect.collidepoint(event.pos): # 按下按鈕
                        didong.play()                     
                        gameStarted = True  
            
            screen.blit(GameStart , (0,0))       
            blit_alpha(screen, StartGameButton, StartGameButtonPosition, button_alpha)
        
        
        
        if gameStarted:
        
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    sys.exit()
                
                # 明暗觸發 鼠標位置判斷
                if event.type == pygame.MOUSEMOTION:
                    if bigdice_rect.collidepoint(event.pos):
                        image_alpha = 255   
                    else:
                        image_alpha = 190
                        
                
                if event.type == pygame.MOUSEBUTTONDOWN:
                    
                    if bigdice_rect.collidepoint(event.pos): # 按骰子
                        if presentPlayer != player_1:
                            rollDiceSound.play(1, 2000)
                            pygame.time.delay(2000)
                            showYes_No = player_1.move(buildings,allplayers)
                            whetherYes_NoJudge = showYes_No
                            presentPlayer = player_1
                        else:
                            presentPlayer.showText = ['還沒到你的回合!']
                        
                    if turnover_rect.collidepoint(event.pos): # 按回合結束
                        showButton2 = True
                        if presentPlayer != player_com1:
                            showYes_No = player_com1.move(buildings,allplayers)
                            presentPlayer = player_com1
                        else:
                            presentPlayer.showText = ['還沒到你的回合!']                            
                    else:
                        showButton2 = False
                    
                        # 不顯示Yes_No的時候不能點擊它們!
                    if whetherYes_NoJudge == True: 
                        if yes_rect.collidepoint(event.pos): # 按是否
                            showYes2 = True
                            
                        if no_rect.collidepoint(event.pos): # 按是否
                            showNo2  = True
                      
                if event.type == pygame.MOUSEBUTTONUP:
                    
                    if turnover_rect.collidepoint(event.pos): # 按回合結束
                        showButton2 = False
                    
                    if yes_rect.collidepoint(event.pos): # 按是否
                        showYes2 = False
                        showYes_No = False
                        # 只有在可以判定的時候才能算按下了是 同時將判斷條件置爲空
                        if whetherYes_NoJudge == True:
                            pressYes = True
                            whetherYes_NoJudge = False
                            
                            
                    if no_rect.collidepoint(event.pos): # 按是否
                        showNo2 = False
                        pressYes = False
                        showYes_No = False              
                        whetherYes_NoJudge = False        
            
                # 測試事件選項        
                if event.type == pygame.KEYDOWN:
                    if event.key == pygame.K_w:
                        showYes_No = player_1.move(buildings,allplayers)
                        whetherYes_NoJudge = showYes_No
                        presentPlayer = player_1
                    if event.key == pygame.K_q:
                        showYes_No = player_com1.move(buildings,allplayers)
                        presentPlayer = player_com1
            
            
            '''for each in allplayers:
                if each.isGoingToMove == True and each.movable == True :
                    showYes_No = each.move(buildings,allplayers)
                    each.movable = False
                    each.isGoingToMove = False'''
            '''
            allisready = True
            
            for each in allplayers:
                if each.movable == True:
                    allisready = False
            
            if allisready:
                for each in allplayers:
                    each.movable = True
            ''' 
            
            
            
                
             
            # 購買房屋!!!!!!!!
            
            if presentPlayer.buyaBuilding(pressYes) == True:
                pressYes = False
                
            if presentPlayer.addaHouse(pressYes) == True:
                pressYes = False
            
                
            
                
                    
                
            #########################################################################            
            screen.blit( backgroud , (0,0) )
            blit_alpha(screen, bigdice_image, (50, 600), image_alpha)
            
            
            textPosition = [MapMessageBoxPosition[0],MapMessageBoxPosition[1]]
            
            # 打印信息
            for each in presentPlayer.showText:
                text = font.render(each, True, white, textColorInMessageBox)
                screen.blit(text,textPosition)
                textPosition[1] += 30
            
            # 播放行動聲音
            if presentPlayer.soundPlayList != 0:
                playList[presentPlayer.soundPlayList - 1].play()
                presentPlayer.soundPlayList = 0
                
            # 在位置上顯示過路費
            
            for i in range(1,8):
                for each in buildings:
                    for every in each.location:
                        if i == every:
                            if each.owner == presentPlayer.name:
                                text = font.render('%d' % (each.payment * (each.builtRoom + 1))\
                                                   , True, red)
                            elif each.owner == 'no':
                                text = font.render('%d' % (each.payment * (each.builtRoom + 1))\
                                                   , True, white)
                            elif each.owner != presentPlayer.name and each.owner != 'no':
                                text = font.render('%d' % (each.payment * (each.builtRoom + 1))\
                                                   , True, black)
                            screen.blit(text,MapChessPosition_Payment[i])
            
            for i in range(9,16):
                for each in buildings:
                    for every in each.location:
                        if i == every:
                            if each.owner == presentPlayer.name:
                                text = font.render('%d' % (each.payment * (each.builtRoom + 1))\
                                                   , True, red)
                            elif each.owner == 'no':
                                text = font.render('%d' % (each.payment * (each.builtRoom + 1))\
                                                   , True, white)
                            elif each.owner != presentPlayer.name and each.owner != 'no':
                                text = font.render('%d' % (each.payment * (each.builtRoom + 1))\
                                                   , True, black)
                            screen.blit(text,MapChessPosition_Payment[i])                
            
                    
            # 打印金錢數和幸運狀態
            
            money_1 = font.render(player_1.name +'金錢:%d' % player_1.money, True, black, white)
            screen.blit(money_1,(0,0))
            
            if player_1.pohuaishen == True:
                screen.blit(pohuaishen,(0,30))
            else:
                blit_alpha(screen, pohuaishen, (0, 30), half_alpha)
                
            if player_1.caishen == True:
                screen.blit(caishen,(55,30))
            else:
                blit_alpha(screen, caishen, (55, 30), half_alpha)
            
            if player_1.shuaishen == True:
                screen.blit(shuaishen,(110,30))
            else:
                blit_alpha(screen, shuaishen, (110, 30), half_alpha)
            
            if player_1.tudishen == True:
                screen.blit(tudishen,(165,30))
            else:
                blit_alpha(screen, tudishen, (165, 30), half_alpha)
            
        
            money_2 = font.render(player_com1.name +'金錢:%d' % player_com1.money, True, black, white)
            screen.blit(money_2,(1000,0))        
            if player_com1.pohuaishen == True:
                screen.blit(pohuaishen,(1000,30))
            else:
                blit_alpha(screen, pohuaishen, (1000, 30), half_alpha)
        
            if player_com1.caishen == True:
                screen.blit(caishen,(1055,30))
            else:
                blit_alpha(screen, caishen, (1055, 30), half_alpha)
            
            if player_com1.shuaishen == True:
                screen.blit(shuaishen,(1110,30))
            else:
                blit_alpha(screen, shuaishen, (1110, 30), half_alpha)
                
            if player_com1.tudishen == True:
                screen.blit(tudishen,(1165,30))
            else:
                blit_alpha(screen, tudishen, (1165, 30), half_alpha)
                
                
            # 放置扔出來的骰子
            if player_1.dice_value != 0 and showdice:
                screen.blit(dices[player_1.dice_value - 1],(70,450))        
            
            # 放置回合結束按鈕
            if showButton2:
                screen.blit(turnover2,TurnOvwrButtonPosition)
            else:
                screen.blit(turnover,TurnOvwrButtonPosition)
            
            # 放置是否按鈕
            if showYes_No == True:
                screen.blit(yes , YesNoMessageBoxPosition[0])
                screen.blit(no  , YesNoMessageBoxPosition[1])
                
                if showYes2 == True:
                    screen.blit(yes2 , YesNoMessageBoxPosition[0])
                    
                if showNo2 == True:
                    screen.blit(no2 , YesNoMessageBoxPosition[1])
                    
                    
            
                    
                    
            # 放置玩家與電腦的位置 如果重合則挪位
            for each in players:
                for every in computers:
                    if each.position == every.position:
                        screen.blit(each.image,MapChessPosition_Player[each.position])
                        screen.blit(every.image,MapChessPosition_Com[every.position])
                        each.temp_position = True
                        every.temp_position = True
                        
            for each in players:
                if each.temp_position == False:
                    screen.blit(each.image,MapChessPosition_Original[each.position])
                    each.temp_position = True
                each.temp_position = not each.temp_position
                
                  
            for every in computers:
                if every.temp_position == False:
                    screen.blit(every.image,MapChessPosition_Original[every.position])
                    every.temp_position = True
                every.temp_position = not every.temp_position
                
            
            
            # 輸贏判斷
            for each in allplayers:
                if each.money <= 0:
                    font = pygame.font.Font('resource\\font\\myfont.ttf',200)
                    loseText = font.render(each.name +'輸了!', True, red)
                    screen.fill(black)
                    screen.blit(loseText,(100,100))
                    font = pygame.font.Font('resource\\font\\myfont.ttf',30)            
                    pygame.time.delay(3000)
                        
        # 畫面運行
        
        pygame.display.flip()
        clock.tick(60)              # 刷新率
    
            

# 雙擊打開運行            
if __name__ == "__main__":
    main()            
                                    
                                 



https://github.com/KhalilWang/TheRich 圖片資源也在內,喜歡留個Star哦

 


 

 

 

發佈了28 篇原創文章 · 獲贊 3 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章