本文来源电子发烧友社区,作者:李先生, 帖子地址:https://bbs.elecfans.com/jishu_2299870_1_1.html
Python开发环境体验:2048游戏
前言
查看开发板部署了Python3.8.2的环境,可以使用python进行开发。支持python等脚本开发的话对应于很多轻量级开发场景会非常快速便捷,所以我们也简单测试下使用python 编写2048小游戏进行测试。
root@okg2l:~# python3 --version
Python 3.8.2
root@okg2l:~#
准备
参考https://bbs.elecfans.com/jishu_2299841_1_1.html开发环境搭建
基本的登录文件传输等操作。
2048小游戏代码
vi 2048.py
按键i进入编辑模式
复制黏贴如下代码
# -*- coding:UTF-8 -*-
#!/usr/bin/python2
import random
import os, sys
v = [[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]]
def display(v, score):
print ("%4d %4d %4d %4d" % (v[0][0], v[0][1], v[0][2], v[0][3]))
print ("%4d %4d %4d %4d" % (v[1][0], v[1][1], v[1][2], v[1][3]))
print ("%4d %4d %4d %4d" % (v[2][0], v[2][1], v[2][2], v[2][3]))
print ("%4d %4d %4d %4d" % (v[3][0], v[3][1], v[3][2], v[3][3]))
print ("Total score: %d" % score)
def init(v):
for i in range(4):
v[i] = [random.choice([0, 0, 0, 2, 2, 4]) for x in range(4)]
def align(vList, direction):
for i in range(vList.count(0)):
vList.remove(0)
zeros = [0 for x in range(4 - len(vList))]
if direction == 'left':
vList.extend(zeros)
else:
vList[:0] = zeros
def addSame(vList, direction):
score = 0
if direction == 'left':
for i in [0, 1, 2]:
align(vList, direction)
if vList[i] == vList[i+1] != 0:
vList[i] *= 2
vList[i+1] = 0
score += vList[i]
return {'bool':True, 'score':score}
else:
for i in [3, 2, 1]:
align(vList, direction)
if vList[i] == vList[i-1] != 0:
vList[i] *= 2
vList[i-1] = 0
score += vList[i]
return {'bool':True, 'score':score}
return {'bool':False, 'score':score}
def handle(vList, direction):
totalScore = 0
align(vList, direction)
result = addSame(vList, direction)
while result['bool'] == True:
totalScore += result['score']
align(vList, direction)
result = addSame(vList, direction)
return totalScore
def operation(v):
totalScore = 0
gameOver = False
direction = 'left'
op = input('operator:')
if op in ['a','A']:
direction = 'left'
for row in range(4):
totalScore += handle(v[row], direction)
elif op in ['d','D']:
direction = 'right'
for row in range(4):
totalScore += handle(v[row], direction)
elif op in ['w', 'W']:
direction = 'left'
for col in range(4):
vList = [v[row][col] for row in range(4)]
totalScore += handle(vList, direction)
for row in range(4):
v[row][col] = vList[row]
elif op in ['s', 'S']:
direction = 'right'
for col in range(4):
vList = [v[row][col] for row in range(4)]
totalScore += handle(vList, direction)
for row in range(4):
v[row][col] = vList[row]
else:
print ("Invalid input,please enter a charactor in [W,S,A,D] or the lower")
gameOver = True
return {'gameOver':gameOver,'score':totalScore}
N = 0
for q in v:
N += q.count(0)
if N == 0:
gameOver = True
return {'gameover':gameOver,'score':totalScore}
num = random.choice([2,2,2,4])
k = random.randrange(1, N+1)
n = 0
for i in range(4):
for j in range(4):
if v[i][j] == 0:
n += 1
if n == k:
v[i][j] = num
break
return {'gameOver':gameOver, 'score':totalScore}
init(v)
score = 0
print ("Input:W(Up) S(Down) A(Left) D(Right), press .")
while True:
os.system("clear")
display(v, score)
result = operation(v)
print (result)
if result['gameOver'] == True:
print ("Game Over, You failed!")
print ("Your total score %d" % (score))
sys.exit(1)
else:
score += result['score']
if score >= 2048:
print ("Game Over, You Win!!!")
print ("Your total score: %d" % (score))
sys.exit(0)
按esc按键
按键shift+:进入命令模式
输入wq!保存
运行
python3 2048.py
按键w,s,a,d回车分别对应上下左右。
总结
以一个小的程序体验下python开发的便捷,开发板支持的python版本也比较新Python3.8.2,能较好满足开发需求。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
飞凌
+关注
关注
0文章
132浏览量
16003 -
开发板试用
+关注
关注
3文章
299浏览量
1963
发布评论请先 登录
相关推荐
米尔RZ/G2L开发板瑞米派双核A55Remi Pi学习板兼容树莓派扩展模块
RemiPi瑞萨第一款MPU生态板卡兼容树莓派扩展模块瑞萨RZ/G2L工业级处理器,便于企业客户产品开发;RemiPi兼容树莓派所有配件,方便产品原型搭建和创新应用;更多的工业接口,兼顾开发
发表于 01-29 17:05
•3次下载
【中科微CSM32RV003绿色开发板免费体验】1.上手
控制四自由度机械臂(开源)原创首发
【米尔瑞萨RZ/G2L开发板-创新应用】4(原创)四自由度机械臂游戏开源的项目
谢谢!
发表于 10-09 23:21
【飞凌AM6254开发板试用】+2机器视觉环境搭建(原创)
嵌入式技术有限公司技术人员 罗志生 周末从8:23开始从0搭建飞凌AM6254开发板的Python的视觉识别系统的环境,和实验需要安装的库和
发表于 09-02 19:13
米尔基于瑞萨RZ/G2L开发板在工控领域的应用-基于SOEM的EtherCAT主站
本文介绍【米尔MYD-YG2LX开发板】在工控领域的应用,实现基于SOEM的EtherCAT主站。开发环境基于WSL2。
【米尔瑞萨RZ/G2L开发板-试用体验】认识一下米尔瑞萨RZ/G2L开发板的核心板
收到米尔瑞萨RZ/G2L开发板后一直对米尔旗下开发板的做工感到非常精致,同时也有着很强大的功能,也一直很喜欢米尔系列开发板。
引领工业市场从
发表于 07-29 00:21
【飞凌i.MX9352开发板试用】+机械臂游戏3—游戏源代码(开源)原创首发
【飞凌i.MX9352开发板试用】+机械臂游戏 3游戏操纵杆控制四自由度机械臂(开源)原创首发
评论