Shuttle Space（穿越太空）

2333年，地球能源枯竭，人类为寻找新能，开启了大航天时代。

2.屏幕出现飞船向前飞行画面（可按a或b跳过）
3.屏幕出现模拟飞船躲避陨石（10次后自动跳入下一阶段，可按a或b跳过）
4.屏幕底部中央飞船，每隔5个时间间隔会随机出现1-3个陨石从顶部向下运动
5.为了躲避陨石，操作者可用a建控制飞船左移动，用b控制飞船向右移动
6.若飞船被陨石击中，则屏幕中出现“died”滚动字幕（可跳过）
7.屏幕出现飞船图标，若操作者按a会进入4. 若操作者按b进入8.
8.屏幕出现level滚动字幕（可跳过），屏幕中出现level的值。按a 可增加level大小，最大为3，若超过3则level回到1，按b则设定完成进入4.

LUCY2018-05-31 09:31:26

from microbit import *
import random
#import music

def switch(List,num):
from random import randint
switchList=[]
alist = []
for i in List:
alist.append(i)
for i in range(num):
x = randint(0,len(alist)-1)
switchList.append(alist[x])
alist.pop(x)
return switchList
def waitAB(waitTime):
lastTime =running_time()
while True:
time =running_time()
if button_a.is_pressed() or button_b.is_pressed() :
break
if time - lastTime>=waitTime:
break
rocksTime=200
allTimes = 10
waitTime = 120
level = 1
lastTime = 0
times = 0

display.scroll('Shuttle Space',wait= False)

#music.play(music.NYAN,wait=False,loop=True)
waitAB(12000)
black = Image("00000:00000:00000:00000:00000")
CGList = [Image("00900:09990:09990:99999:09990"),black,Image("09990:09990:99999:09990:00500"),black,Image("09990:99999:09990:00500:00300"),black,Image("99999:09990:00500:00300:00100"),black,Image("09990:00500:00300:00100:00000"),black]
CGTime = [500,200,500,200,500,200,500,200,500,1000]
for i in range(10):
display.show(CGList[i])
sleep(CGTime[i])
if button_a.is_pressed() or button_b.is_pressed() :
break

y1 = -2
x1 = 0
xS = 2
time = 0
lastTime = 0
times = 0

display.set_pixel(xS-1,4,9)
display.set_pixel(xS,4,9)
display.set_pixel(xS+1,4,9)
display.set_pixel(xS,3,9)

while True:
if button_a.is_pressed() or button_b.is_pressed():
break

y1 = y1 + 1

try:
display.set_pixel(x1,y1,9)
display.set_pixel(x1+1,y1,9)
except:
None
try:
display.set_pixel(x1,y1+1,9)
display.set_pixel(x1+1,y1+1,9)
except:
None
try:
display.set_pixel(x1,y1-1,0)
display.set_pixel(x1+1,y1-1,0)
except:
None

if display.get_pixel(0,2)==9 or display.get_pixel(0,3)==9 :
if xS == 3:
pass
else:
xS=xS+1
display.set_pixel(xS-1,4,9)
display.set_pixel(xS,4,9)
display.set_pixel(xS+1,4,9)
display.set_pixel(xS,3,9)
try:
display.set_pixel(xS-1,3,0)
display.set_pixel(xS-2,4,0)
except:
None
elif display.get_pixel(4,2)==9 or display.get_pixel(4,3)==9 :
if xS == 1:
pass
else:
xS=xS-1
display.set_pixel(xS-1,4,9)
display.set_pixel(xS,4,9)
display.set_pixel(xS+1,4,9)
display.set_pixel(xS,3,9)
display.set_pixel(xS+1,3,0)
display.set_pixel(xS+2,4,0)
else:
pass
sleep(waitTime)

if y1 == 4:
display.set_pixel(x1,y1,0)
display.set_pixel(x1+1,y1,0)
x1 = 3*random.randint(0,1)
y1 = -2
times = times + 1

if times == allTimes:
break

display.show(black)

time = running_time()
lastTime = time
state = 0

lastPressed = 0
pressedTime = 0
sleep(500)
display.show(Image("00900:09990:09990:99999:09990"))
rocksList=[0,1,2,3,4]
while True:
#game begin
while state == 1 :
#rocks move
time = running_time()
if time - lastTime >=rocksTime:
if y == 4:
y = 0
for z in rocksY:
display.set_pixel(z,4,0)

rocksY = switch(rocksList,random.randint(1,3))
for z in rocksY:
display.set_pixel(z,y,5)
else:
y = y + 1
for z in rocksY:
display.set_pixel(z,y-1,0)
display.set_pixel(z,y,5)
lastTime = time
#ship move
if button_b.is_pressed():
if lastPressed =="b":

pass
else:
pressedTime = running_time()
lastPressed ="b"
if x == 4 :
pass
else:
x = x +1
display.set_pixel(x,4,9)
display.set_pixel(x-1,4,0)
if button_a.is_pressed():
if lastPressed ==1:
pass
else:
pressedTime = running_time()
lastPressed =1
if x == 0 :
pass
else:
x = x -1
display.set_pixel(x,4,9)
display.set_pixel(x+1,4,0)
if time -pressedTime >=200:
lastPressed = 0

#  dead
if display.get_pixel(x,4) != 9:
display.scroll('DIED',wait=False)
waitAB(3600)
display.show(Image("00900:09990:09990:99999:09990"))
sleep(500)
state = 0
#setting
while state == 2:
display.show(str(level))
if button_a.is_pressed():
sleep(200)
level = level +1
if level == 4:
level = 1
if button_b.is_pressed():
sleep(200)
rocksTime = 250 -50*level
state = 1
display.show(black)
x = 2
y = 0
rocksY = switch(rocksList,random.randint(1,3))
display.set_pixel(x,4,9)
sleep(500)

# about state
if button_a.is_pressed():
#music.play(music.NYAN,wait=False,loop=True)
state = 1
display.show(black)
x = 2
y = 0
rocksY = switch(rocksList,random.randint(1,3))
display.set_pixel(x,4,9)
sleep(200)
if  button_b.is_pressed():
display.scroll("level",wait= False)
waitAB(4200)
state = 2
sleep(300)

2粉丝 1作品 0随笔