# 飞行棋小游戏.py_源代码

```"""
飞行棋小游戏.py
按空格键会以抛物线扔出色子。QQ会根据色子的点数在棋内移动。

"""
import colorsys
from turtle import *
from random import *
from time import sleep

"""
xs，ys是以换行分隔的数据列表。
"""
f1 = open(xs)
f1.close()
xcors = xcors.split("\n")
xcors.pop()
xcors = [int(x) for x in xcors]
f2 = open(ys)
f2.close()
ycors = ycors.split("\n")
ycors.pop()
ycors = [int(y) for y in ycors]
cors = [(x,y) for x,y in zip(xcors,ycors)]
return cors

class Sprite(Turtle):
"""继承自Turtle的精灵类"""
def __init__(self,image,cors):
"""image：造型,cors：坐标表"""
Turtle.__init__(self,visible=False)
self.end = False         # 描述是否到终点
self.penup()
self.shape(image)
self.index = 0           # 坐标表从0开始
self.cors = cors
pass

def move(self,steps):
"""从cors取坐标，移动"""
pass

class Square(Turtle):
"""继承自Turtle的方块类，做色子的"""
def __init__(self,images,cat=None):
"""初始化方法
images:造型列表
cat:海龟对象
"""
Turtle.__init__(self,visible=False)
self.penup()
self.cat  = cat
self.images = images
self.amounts = len(images)
self.sw = self.screen.window_width()
self.sh = self.screen.window_height()
self.da = -1              # 加速度
self.screen.onkeypress(self.init,"space")

def init(self):
"""设定初始速度准备做抛物线移动"""
self.screen.onkeypress(None,"space")
self.dx = randint(15,25)   # 水平速度
self.dy = randint(15,25)   # 垂直速度
self.goto(-self.sw//2,-self.sh//2)
pass

def move(self):
"""做抛物线移动"""
pass

if __name__ == '__main__':

width,height = 480,360
screen = Screen()
screen.tracer(0,0)
screen.colormode(255)
screen.setup(width,height)
screen.title("飞行棋小游戏by李兴球")
# 注册色子的造型到形状字典中
sezis = [f'im/{i}.png' for i in range(6)]
pass

# 产生颜色表
colorlist = []
for y in range(100):
x = random()
r,g,b = colorsys.hsv_to_rgb(x,1,1)
r,g,b = int(r*255),int(g*255),int(b*255)
colorlist.append((r,g,b))

# t根据cors铺地图
t = Turtle(visible=False,shape='square')
t.penup()
t.shapesize(2.5,2.5,2.5)
for cor in cors:
t.color('gray',choice(colorlist))
t.goto(cor)
t.stamp()
screen.update()
sleep(0.01)

sprite = Sprite(qq,cors)    # 新建一个精灵

sezi = Square(sezis,sprite) # 新建一个色子

screen.listen()             # 监听键盘按键

screen.mainloop()

```

VIP免费查看