1 .五子棋
2 .今天就五子棋python3用pygame的设置进行说明。 请注意黑子和白子的大小。 本文中为5050,968 b
照片是一个小臭虫。 是正方形,不是圆形。 你可以自己换着玩。
黑子
白子
=====================================
我会详细说明。 代码中有注释
=====================================
3.python的pygame格式基本上是固定的,步骤1 :
----步骤1----导出模块----importnumpyasnpimportpygameimportsysimporttracebackimportcopyfrompygame.locals import
-----步骤2----颜色定义----BG=( 240,255,240 ) )背景颜色=蜜露色,BG=background CB=( 0,100,0 ) ) # CB=checker boooound
----步骤3----游戏初始化----pygame.init(#序列控制用t=True# )游戏结束后阻止落子用running=True6.步骤4 :
----步骤4----画棋盘----def draw _ a _ chess board ( screen ( screen.fill ) BG )涂背景色=蜜露色,不耀眼)棋盘foriining 40*I3 ) ) ) ) ),绘制边界线,并绘制四条边的pygame.draw.line(screen,cb,( 3,3 ),3,803 ) )、pygame.draw.line 5) pygame.draw.line ( SCB 803 ),5 ) #绘制定位点,dwd为红色,6为大小pygame.draw.circle(screen,dwd,),163,163 ),6 ) pygame.draw.circle dwd,) 643,643 ),6 ) pygame.draw.circle ) screeen,dwd,500,650=y,200和100是按钮帧大小pygame.draw.rect ( scow ) 15 ) pygame.draw.rect ) screen ) [ 900,650,200,100 ],15 )字体是自己下载的hwfs=中文解密,根目录下的s _ FFS 40 )按钮定义字符、颜色和位置bc ) text2=s_font.render (重新开始),True,bc ) text3=s_font.render ),True,bc ) screen
----步骤5--------# (横坐标、纵坐标、屏幕、棋子的颜色( 1为黑色,2为白色) ) defdraw_a_chessman(x,y,screen,color ) if color==1: black _ chess=pygame.image.load ( b.png ).convert_alpha ) screen . 40*y 3-15 ) ) if color==2: white _ chess=pygame.image.load ( w.png ).convert_alpha ) ) screen.blit )
----步骤6----绘制带有棋子的棋盘----def draw _ a _ chess board _ with _ chessman ( map,screen(screen.fill(BG ) DG )
----步骤7----定义内存板列表。 它可以很大----map=[]forIinrange(24 ):# map.append ( [ 0,0,0,0,0,0,0,
----步骤----清除地图列表----def clear (:globalmapforiinrange ) 24 ):map[i][j]=011
----步骤9---- -判断是否胜利-----------这是关键----defwin(I,j ):k=map [ I ] [ j j5(if ) map[I3] )==kandI3-I==J3-jandI3=IandJ3=j ):p[0]=1if(map[I3] ) J3 )==kandj3==Kan=1if ) map [ i3 ] [ J3 ]==kandi3- I==J3-jandi3==J3-jand=1if ( map [ i3 ] [ J3 ]==kandj3==jandi3=iandi3)==kandI3==IandI3=IandI3=IandI3) ) iand==kandi-i3==J3-jandi3=iandj3=j (:p [6]=1if ( map [ i3 ] )==kandi3- I==j-J3 Andi3=iandj3=j==kandj-J3==I-i3 Andi3=I-3 andj3=J1 andj3)==kandj==J3 Andi3=i1 Andi3=I-3 andj3=J1 andj3=j-3 ):p [9]=1if ( map [ i3 ] [ J3 ]==kandi=i3 Andi3=i3 Andi 3==kandj-J3==I-i3 Andi3=I-1 and i3=i3 andj3=j-1 andj3=J3 ):p [ 11 ]=1if ( map [ i3 ] [ J3 ]==kandj=j==kandi==i3 Andi3=I-1 and i3=i3 andj3=j-1 andj3=J3 ):p [ 13 ]=1if ( map [ i3 ] [ J3 ]==kandi-i3=J3-J3==kandi3- I==j-J3 Andi3=I-1 and i3=i3 andj3=J1 andj3=j-3 ):p [ 15 ]=1if ( map [ i3 ] [ J3 ]==kandj-J3 [ J3 ]==kandj==J3 Andi3=I2 Andi3=I-2 andj3=J2 andj3=j-2 ):p [ 17 ]=1if ( map [ i3 ] [ J3 ]==kandi=i3 Andi=i3 Andi==kandi-i3==J3-jandi3=I2 Andi3=I-2 andj3=J2 andj3=j-2 ):P[19]=1forBinrange(20 ) ifp ( b )=5:
----步骤10----提示器是deftext(s,screen,x ):pygame.draw.rect ) screen,bg,[ 850,100,1200,100 ] ) s lz ) screen.blit ) s_text,( 880,100 ) )不断更新,一次也没有白子和黑子交替显示pygame
#---步骤11----主函数----defmain(#全局变量: t和running的定义已被引用。 #map和maps之前定义的板列表--- -用于后悔保存globalt、map、running。 MAPSclear(map2=copy.deepcopy ) map ) maps=[map2] #窗口大小设置宽度1400高度900 screen=pygame.display.set _ mode ( [ 窗口标题pygame.display.set_caption ( \'五子棋v1.0 \' ) draw_a_chessboard(screen ) pygame.display.flip ) chesplip 主要是游戏结束后的防止再落子if running: if t: color=1 text (,screen,54 ) else: color=2 text )、screen、 54 ) foreventinpygame.event.get(# ) 在pygame中while循环中,我认为该步骤是必须的if event.type==pygame.quit:pygame.quit ) sys.type elif event.type==mousebuttotote
当模块直接运行时,将执行以下代码块,而在导入模块时,将不会执行代码块。
这意味着,如果选择性地执行代码,并将其作为模块导入,则无法执行。 仅当作为脚本文件直接执行时执行
----步骤12----模块main---- if _ _ name _==\' _ _ main _ \':main ( ) 15 .效果图
哈哈,自己享受,分享,有缺点。
也可以定制颜色、文字、白子和黑子的照片呢。 也可以添加背景音乐。