mirror of
https://gitee.com/Lyon1998/pikapython.git
synced 2025-02-05 17:28:23 +08:00
3 point snake is ok
This commit is contained in:
parent
5497dde01c
commit
941ca6f1a6
@ -1,32 +1,45 @@
|
|||||||
import PikaStdLib
|
import PikaStdLib
|
||||||
import STM32
|
|
||||||
import PikaPiZero
|
import PikaPiZero
|
||||||
|
import STM32
|
||||||
|
oled = PikaPiZero.OLED()
|
||||||
|
up = STM32.GPIO()
|
||||||
|
right = STM32.GPIO()
|
||||||
p0 = PikaPiZero.Point()
|
p0 = PikaPiZero.Point()
|
||||||
p0.x = 0
|
p1 = PikaPiZero.Point()
|
||||||
p0.y = 0
|
p2 = PikaPiZero.Point()
|
||||||
print(p0.x)
|
p1.x = 0
|
||||||
mem = PikaStdLib.MemChecker()
|
p1.y = 0
|
||||||
print('mem used max:')
|
|
||||||
mem.max()
|
|
||||||
oled.drawPoint(p0.x, p0.y)
|
|
||||||
while True:
|
while True:
|
||||||
if right.read() == 1:
|
if isUpdate:
|
||||||
print('right')
|
isUpdate = 0
|
||||||
if p0.x < 15:
|
p2.x = p1.x
|
||||||
|
p2.y = p1.y
|
||||||
|
p1.x = p0.x
|
||||||
|
p1.y = p0.y
|
||||||
|
if pos == 0:
|
||||||
p0.x = p0.x + 1
|
p0.x = p0.x + 1
|
||||||
print(p0.x)
|
if p0.x > 15:
|
||||||
oled.drawPoint(p0.x, p0.y)
|
p0.x = 0
|
||||||
if left.read() == 0:
|
if pos == 1:
|
||||||
if p0.x > 0:
|
|
||||||
p0.x = p0.x - 1
|
p0.x = p0.x - 1
|
||||||
oled.drawPoint(p0.x, p0.y)
|
if p0.x < 0:
|
||||||
if up.read() == 0:
|
p0.x = 15
|
||||||
if p0.y > 0:
|
if pos == 2:
|
||||||
p0.y = p0.y - 1
|
p0.y = p0.y - 1
|
||||||
oled.drawPoint(p0.x, p0.y)
|
if p0.y < 0:
|
||||||
if down.read() == 0:
|
p0.y = 7
|
||||||
if p0.y < 7:
|
if pos == 3:
|
||||||
p0.y = p0.y + 1
|
p0.y = p0.y + 1
|
||||||
|
if p0.y > 7:
|
||||||
|
p0.y = 0
|
||||||
|
oled.clear()
|
||||||
oled.drawPoint(p0.x, p0.y)
|
oled.drawPoint(p0.x, p0.y)
|
||||||
|
oled.drawPoint(p1.x, p1.y)
|
||||||
|
oled.drawPoint(p2.x, p2.y)
|
||||||
|
if right.read() == 1:
|
||||||
|
pos = 0
|
||||||
|
isUpdate = 1
|
||||||
|
if up.read() == 0:
|
||||||
|
pos = 2
|
||||||
|
isUpdate = 1
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
pikascript-core==v1.1.2
|
pikascript-core==latest
|
||||||
PikaStdLib==v1.1.0
|
PikaStdLib==v1.1.0
|
||||||
PikaStdDevice==latest
|
PikaStdDevice==latest
|
||||||
STM32==latest
|
STM32==latest
|
||||||
|
@ -34,3 +34,9 @@ class OLED(TinyObj):
|
|||||||
|
|
||||||
def drawPoint(x: int, y: int):
|
def drawPoint(x: int, y: int):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
def clear():
|
||||||
|
pass
|
||||||
|
|
||||||
|
class Point(TinyObj):
|
||||||
|
pass
|
||||||
|
@ -126,18 +126,18 @@ int main(void) {
|
|||||||
obj_run(pikaMain, "right.setMode('in')");
|
obj_run(pikaMain, "right.setMode('in')");
|
||||||
obj_run(pikaMain, "right.setPull('down')");
|
obj_run(pikaMain, "right.setPull('down')");
|
||||||
obj_run(pikaMain, "right.enable()");
|
obj_run(pikaMain, "right.enable()");
|
||||||
obj_run(pikaMain, "left = STM32.GPIO()");
|
// obj_run(pikaMain, "left = STM32.GPIO()");
|
||||||
obj_run(pikaMain, "left.init()");
|
// obj_run(pikaMain, "left.init()");
|
||||||
obj_run(pikaMain, "left.setPin('PC13')");
|
// obj_run(pikaMain, "left.setPin('PC13')");
|
||||||
obj_run(pikaMain, "left.setMode('in')");
|
// obj_run(pikaMain, "left.setMode('in')");
|
||||||
obj_run(pikaMain, "left.setPull('up')");
|
// obj_run(pikaMain, "left.setPull('up')");
|
||||||
obj_run(pikaMain, "left.enable()");
|
// obj_run(pikaMain, "left.enable()");
|
||||||
obj_run(pikaMain, "down = STM32.GPIO()");
|
// obj_run(pikaMain, "down = STM32.GPIO()");
|
||||||
obj_run(pikaMain, "down.init()");
|
// obj_run(pikaMain, "down.init()");
|
||||||
obj_run(pikaMain, "down.setPin('PB6')");
|
// obj_run(pikaMain, "down.setPin('PB6')");
|
||||||
obj_run(pikaMain, "down.setMode('in')");
|
// obj_run(pikaMain, "down.setMode('in')");
|
||||||
obj_run(pikaMain, "down.setPull('up')");
|
// obj_run(pikaMain, "down.setPull('up')");
|
||||||
obj_run(pikaMain, "down.enable()");
|
// obj_run(pikaMain, "down.enable()");
|
||||||
obj_run(pikaMain, "up = STM32.GPIO()");
|
obj_run(pikaMain, "up = STM32.GPIO()");
|
||||||
obj_run(pikaMain, "up.init()");
|
obj_run(pikaMain, "up.init()");
|
||||||
obj_run(pikaMain, "up.setPin('PA15')");
|
obj_run(pikaMain, "up.setPin('PA15')");
|
||||||
@ -146,6 +146,12 @@ int main(void) {
|
|||||||
obj_run(pikaMain, "up.enable()");
|
obj_run(pikaMain, "up.enable()");
|
||||||
obj_run(pikaMain, "oled = PikaPiZero.OLED()");
|
obj_run(pikaMain, "oled = PikaPiZero.OLED()");
|
||||||
obj_run(pikaMain, "oled.init()");
|
obj_run(pikaMain, "oled.init()");
|
||||||
|
obj_run(pikaMain, "p0 = PikaPiZero.Point()");
|
||||||
|
obj_run(pikaMain, "p0.x = 0");
|
||||||
|
obj_run(pikaMain, "p0.y = 0");
|
||||||
|
obj_run(pikaMain, "pos = 0");
|
||||||
|
obj_run(pikaMain, "isUpdate = 1");
|
||||||
|
|
||||||
pikaVM_runAsm(pikaMain, code);
|
pikaVM_runAsm(pikaMain, code);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user