Python游戏源代码

试试这个。

将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()

输入()