自制五子棋小游戏

#五子棋进口?appuifw,e32,key_codes

从哪里?图形?进口?*def?cn(x):退货?x.decode('utf-8 ')

def?quit():?_quit=1

全球?运转

跑步=1

def?重画(rect):?canvas.blit(img)def?默认值():

全球?图标、颜色、字体

con={"l":15," x":15," y":33," r":13," n":15}

color={"bg":0x7777bb," fg":0x333333," p1":0x000000," p2":0xffffff," w":0xff0000}

font=u"Sans?MT?936 _ S60“def?初始():

全球?img,canvas,con,color,cur_x,cur_y,turn,pos1,pos2,pos

appuifw.app.screen='full '

appuifw . app . body = canvas = appuifw。画布()

img=Image.new((240,320))

img.clear(彩色["bg"])

cur_x=7

cur_y=7

turn=1

pos1=[]

pos2=[]

pos=[]

为了什么?我?在?范围(con["n"]*con["n"]):

位置附加(0)定义?paint_back():

全球?图像,颜色,字体

#img.text((90,25),cn('快乐五子棋'),color["fg"],font)

为了什么?我?在?范围(con["x"],con[" x "]+con["l"]* con[" n "]-1,con[" l "]):

img.line((i,con["y"],I,con[" y "]+con[" l "]*(con[" n "]-1)),color["fg"])

为了什么?我?在?范围(con["y"],con[" y "]+con["l"]* con[" n "]-1,con[" l "]):

img.line((con["x"],I,con[" x "]+con[" l "]*(con[" n "]-1),I),color["fg"])

Img.text((40,270),cn ('Player 1 '),color ["P1"],font)

Img.text((160,270),cn ('Player 2 '),color["p2"],font)

img.point((90,263),color["p1"],width=con["r"],fill=color["p1"])

img.point((144,263),color["p2"],width=con["r"],fill=color["p2"])

def?paint_cur(x,y,sh):

全球?img,con,color,pos1,pos2,正在运行

如果?跑步& lt& gt1:返回

ax=con["x"]+con["l"]*x

ay=con["y"]+con["l"]*y

b=con["l"]/2

如果?sh & lt& gt0:

c=color["p"+str(sh)]

如果?rp((x,y))& lt;& gt0:

c =颜色["w"]

如果?sh==0:

c =颜色["bg"]

img.line((ax-b,ay-2,ax-b,ay-b,ax-2,ay-b),c)

img.line((ax-b,ay+2,ax-b,ay+b,ax-2,ay+b),c)

img.line((ax+b,ay-2,ax+b,ay-b,ax+2,ay-b),c)

img.line((ax+b,ay+2,ax+b,ay+b,ax+2,ay+b),c)

重绘(())def?paint_q(x,y,z):

全球?图像、图标、颜色

ax=con["x"]+con["l"]*x

ay=con["y"]+con["l"]*y

b=con["l"]/2

如果?z==0:

c =颜色["bg"]

否则:

c=color["p"+str(z)]

img.point((ax,ay),c,width=con["r"],fill=c)

重绘(())

如果?z==0:

img.line((ax-b,ay,ax+b,ay),c)

img.line((ax,ay-b,ax,ay+b),c)

def?kup():

全球?转弯,转弯,转弯

画图_曲线(曲线_x,曲线_y,0)

cur_y=cur_y-1

如果?cur_y==-1:

cur_y=con["n"]-1

paint_cur(cur_x,cur_y,turn)def?k_down():

全球?转弯,转弯,转弯

画图_曲线(曲线_x,曲线_y,0)

cur_y=cur_y+1

如果?cur_y==con["n"]:

cur_y=0

paint_cur(cur_x,cur_y,turn)def?k_left():

全球?转弯,转弯,转弯

画图_曲线(曲线_x,曲线_y,0)

cur_x=cur_x-1

如果?cur_x==-1:

cur_x=con["n"]-1

paint_cur(cur_x,cur_y,turn)def?k_right():

全球?转弯,转弯,转弯

画图_曲线(曲线_x,曲线_y,0)

cur_x=cur_x+1

如果?cur_x==con["n"]:

cur_x=0

paint_cur(cur_x,cur_y,turn)def?rp(x):

全球?con,pos

如果?(x[0]& lt;0?还是?x[0]& gt;=con["n"]?还是?x[1]& lt;0?还是?x[1]>=con["n"]):return?0

#打印?x,pos[x[0]*con["n"]+x[1]]

回归?pos[x[0]* con[" n "]+x[1]]def?wp(x,y):

全球?con,pos

pos[x[0]* con[" n "]+x[1]]= y

def?win():

为了什么?我?在?pos1:

k=0

为了什么?j?在?范围(0,6):

如果?rp((i[0]+j,I[1])= = 1:

k=k+1

否则:

破裂

如果?k & gt=5:

回归?1

k=0

为了什么?j?在?范围(0,6):

如果?rp((i[0],i[1]+j))==1:

k=k+1

否则:

破裂

如果?k & gt=5:

回归?1

k=0

为了什么?j?在?范围(0,6):

如果?rp((i[0]+j,i[1]+j))==1:

k=k+1

否则:

破裂

如果?k & gt=5:

回归?1

k=0

为了什么?j?在?范围(0,6):

如果?rp((i[0]+j,i[1]-j))==1:

k=k+1

否则:

破裂

如果?k & gt=5:

回归?1?为了什么?我?在?位置2:

k=0

为了什么?j?在?范围(0,6):

如果?rp((i[0]+j,I[1])= = 2:

k=k+1

否则:

破裂

如果?k & gt=5:

回归?2

k=0

为了什么?j?在?范围(0,6):

如果?rp((i[0],i[1]+j))==2:

k=k+1

否则:

破裂

如果?k & gt=5:

回归?2

k=0

为了什么?j?在?范围(0,6):

如果?rp((i[0]+j,i[1]+j))==2:

k=k+1

否则:

破裂

如果?k & gt=5:

回归?2

k=0

为了什么?j?在?范围(0,6):

如果?rp((i[0]+j,i[1]-j))==2:

k=k+1

否则:

破裂

如果?k & gt=5:

回归?2

回归?0

def?k_enter():

全球?cur_x,cur_y,turn,pos1,pos2,con,颜色,字体,跑步

如果?跑步& lt& gt1:返回

如果?rp((cur_x,cur_y))==0:

如果?turn==1:

pos1.append((cur_x,cur_y))

img.rectangle((35,255,100,272),color["bg"])

img.rectangle((135,255,200,272),color["p2"])

如果?转弯==2度:

pos2.append((cur_x,cur_y))

img.rectangle((35,255,100,272),color["p1"])

img.rectangle((135,255,200,272),color["bg"])

画图_q(曲线_x,曲线_y,转弯)

wp((cur_x,cur_y),转)

如果?win()& lt;& gt0:

#img.text((80,300),cn('玩家')+str(回合)+cn("赢!"),颜色["fg"],字体)

img.rectangle((35,255,100,272),color["bg"])

img.rectangle((135,255,200,272),color["bg"])

画图_曲线(曲线_x,曲线_y,0)

跑步=2

转=3圈

paint_cur(cur_x,cur_y,turn)def?bindkey():

canvas.bind(key_codes。EKeyUpArrow?k_up)

canvas.bind(key_codes。EKeyDownArrow,k_down)

canvas.bind(key_codes。EKeyLeftArrow,?k _左)

canvas.bind(key_codes。EKeyRightArrow,k_right)

canvas.bind(key_codes。EKeySelect,k_enter)默认()

首字母()

paint_back()

画图_曲线(曲线_x,曲线_y,1)

img.rectangle((35,255,100,272),color["p1"])

bindkey()redraw(())

appuifw.app.exit_key_handler?=?退出()

_quit=0

什么时候?(1-_quit):

e32.ao_sleep(0.2)

重绘(())