將numpy作為np導入
導入pygame
導入系統
導入追溯
導入副本
從pygame.locals導入*
pygame.init()
pygame.mixer.init()
#顏色
背景=(201,202,187)
棋盤=(80,80,80)
button=(52,53,44)
#音樂
play _ chess _ sound = py game . mixer . sound(" music/play _ chess . wav ")
play _ chess _ sound . set _ volume(0.2)
button _ sound = py game . mixer . sound(" music/button . wav ")
button_sound.set_volume(0.2)
victor _ sound = py game . mixer . sound(" music/victory . wav ")
victor_sound.set_volume(0.2)
#畫壹個棋盤
def Draw _ a _棋盤(屏幕):
#填充背景顏色
屏幕填充(背景)
background = py game . image . load(" background . jpg ")。convert_alpha()
screen.blit(背景,(0,0))
#畫壹個棋盤
對於範圍內的I(21):
pygame.draw.line(屏幕,棋盤,(40*i+3,3),(40*i+3,803))
pygame.draw.line(屏幕,棋盤,(3,40*i+3),(803,40*i+3))
#畫壹條線
pygame.draw.line(屏幕,棋盤,(3,3),(803,3),5)
pygame.draw.line(屏幕,棋盤,(3,3),(3,803),5)
pygame.draw.line(屏幕,棋盤,(803,3),(803,803),5)
pygame.draw.line(屏幕,棋盤,(3,803),(803,803),5)
#繪制錨點
pygame.draw.circle(屏幕,棋盤,(163,163),6)
pygame.draw.circle(屏幕,棋盤,(163,643),6)
pygame.draw.circle(屏幕,棋盤,(643,163),6)
pygame.draw.circle(屏幕,棋盤,(643,643),6)
pygame.draw.circle(屏幕,棋盤,(403,403),6)
#畫出“後悔棋”、“重新開始”、“退出”的按鈕
pygame.draw.rect(屏幕,按鈕,)
#清除地圖列表
定義清除():
全球地圖
對於範圍(24)中的I:
對於範圍(24)中的j:
地圖)
#定義窗口名稱
Pygame.display.set_caption("五子棋")
#在窗口畫壹個棋盤、壹個提醒和按鈕
繪制棋盤(屏幕)
pygame.display.flip()
clock=pygame.time.Clock()
雖然正確:
#只有跑步是真的才能摔倒,主要用來防止賽後再次摔倒。
如果正在運行:
如果t:
color=1
文本(“黑色移動”,屏幕,54)
否則:
顏色=2
文本(“白棋走法”,屏幕,54)
對於pygame.event.get()中的事件:
#單擊X關閉窗口。
if event.type ==pygame。退出:
pygame.quit()
sys.exit()
#單擊窗口中的課程容量,完成相應的說明。
elif event . type = = mouse button down:
if event.button == 1:
x,y =事件位置[0],事件位置[1]
對於範圍內的I(19):
對於範圍內的j(19):
#單擊棋盤上相應的位置
如果我* 40+3+20 & lt;x & lti*40+3+60和j * 40+3+20 & lt;y & ltj*40+3+60和不映射[i][j]和運行:
#將相應顏色的棋子放到棋盤上相應的位置。
Draw_a_chessman(i+1,j+1,屏幕,顏色)
#播放音效
play_chess_sound.play(0)
#在地圖上記錄彈簧的位置
map[I][j]=顏色
#在“地圖”中保存地圖
map3=copy.deepcopy(map)
maps.append(地圖3)
#判斷搬家後是否有五子壹線。
if win(i,j):
如果t:
文本(“黑棋贏了,請再玩壹次”,屏幕,30)
否則:
文本(“白棋贏了,請再玩壹次”,屏幕,30)
#播放音效
維克多_聲音.播放(0)
#不要再跌倒在棋盤上
跑步=假
pygame.display.flip()
t =不是t
#如果妳點擊“重新開始”
如果900 & ltx & lt1100和500 & lty & lt600:
#解鎖
運行=真
#播放音效
按鈕_聲音.播放(0)
#重新開始
主()
#單擊“退出遊戲”退出遊戲。
elif 900 & ltx & lt1100和650 & lty & lt750:
#播放音效
按鈕_聲音.播放(0)
pygame.quit()
sys.exit()
#點擊“後悔棋”
elif 900 & ltx & lt1020和350 & lty & lt450和len(地圖)!=1:
#播放音效
按鈕_聲音.播放(0)
#刪除地圖中的最後壹個元素
del maps[len(maps)-1]
#然後將最後壹個元素復制到地圖上。
map = copy . deep copy(maps[len(maps)-1])
#切換順序
t =不是t
#展示地圖。
用棋子畫棋盤(地圖、屏幕)
#如果妳後悔下棋,就不要再後悔下棋了。
x,y=0,0
clock.tick(60)
if __name__ == "__main__ ":
嘗試:
主()
除了SystemExit:
及格
除了:
traceback.print_exc()
pygame.quit()
輸入()