本文来源电子发烧友社区,作者:李先生, 帖子地址:https://bbs.elecfans.com/jishu_2308793_1_1.html
前言
过程
复制代码
前言
[root@EASY-EAI-NANO:/]# python --version
Python 2.7.16
过程
直接SSH或者串口登录,
导入2048.py或者
直接vi编辑
- # -*- 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 = raw_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 raw_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 ("raw_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)
添加可执行权限
chmod +x 2048.py
运行
总结
python 2048.py
分别用wsad控制上下左右移动
开发板提供了Python环境,直接开发板上进行Python开发十分便捷,这对一些轻量开发场景时非常方便。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
开发板
+关注
关注
25文章
6122浏览量
113328 -
EASY-EAI灵眸科技
+关注
关注
3文章
38浏览量
3415
发布评论请先 登录
相关推荐
热点推荐
【EASY EAI Nano-TB(RV1126B)开发板试用】+1、开箱上电
EASY EAI Nano-TB(RV1126B)开发板开箱报告:
1 开箱体验:精致包装与丰富配件
EASY
发表于 11-19 21:39
EASY EAI Nano-TB(RV1126B)开发板试用】1、初识
非常感谢电子发烧友以及灵眸科技给了我这次试用EASY EAI Nano-TB(RV1126B)开发板的机会,星期四确认了我的
发表于 11-16 11:15
【EASY EAI Nano-TB(RV1126B)开发板试用】命令行功能测试-shell脚本进行IO控制-灯闪
接上文【EASY EAI Nano-TB(RV1126B)开发板试用】开箱测评
https://pan.baidu.com/s/15pnbJ
发表于 11-01 21:26
【EASY EAI Nano-TB(RV1126B)开发板试用】开箱测评
。
。
开发板卡
| EASY EAI Nano-TB(RV1126B)开发套件是灵眸科技研发的一款应用于AIoTl领域的核心板,并配有
发表于 11-01 11:05
【EASY EAI Nano-TB(RV1126B)开发板试用】+初识篇
EASY EAI Nano-TB(RV1126B)开发套件是灵眸科技研发的一款应用于AIoTl领域的核心板,并配有十分丰富的外设资源,以此为基础便于快速进入学习和
发表于 10-25 22:06
【免费试用】EASY EAI Nano-TB(RV1126B)开发套件评测
EASY-EAI-Nano-TB是灵眸科技研发的一款应用于AIoT领域的AIOT主板。核心板基于瑞芯微的RV1126B处理器设计,并引入了新一代完全基于硬件的最大12M像素ISP(图像信号处理器
【作品合集】灵眸科技EASY EAI Orin Nano(RK3576)开发板测评
板免费试用
作者:华仔stm32【EASY EAI Orin Nano(RK3576)开发板试用
发表于 09-09 09:59
【EASY EAI Orin Nano开发板试用体验】EASY-EAI-Toolkit人脸识别
、编译与测试
1.组件人脸识别代码如下
2.开发板挂载服务器,编译
挂载上服务器后,切换到EASY-EAI-Toolkit-3576/Demos/algorithm-face_detect/路径下
发表于 07-20 14:40
【EASY EAI Orin Nano开发板试用体验】EASY-EAI-Toolkit初体验
本次EASY EAI Orin Nano开发板试用体验主要是超级想体验灵眸的EASY-EAI-T
发表于 06-28 21:21
【EASY EAI Orin Nano开发板试用体验】开箱和固件烧录更新体验
首先感谢灵眸科技和发烧友组织的开发板大赛!
一、硬件介绍
灵眸科技EASY EAI Orin-Nano基于瑞芯微的RK3576处理器设计,集成了4个Cortex-A72和4个Corte
发表于 06-26 23:41
【EASY EAI Orin Nano开发板试用体验】人脸识别体验
| 10.92 MiB/s, 完成.
处理 delta 中: 100% (77/77), 完成.
2、adb登录开发板,并加载nfs
developer@EASY-EAI-Develop:~/nfsroot
发表于 06-26 06:54
【EASY EAI Orin Nano开发板试用体验】--开发板开箱了解
感谢灵眸科技与论坛提供的开发板与平台。EASY EAI Orin-Nano开发板实物如下:
EASY
发表于 06-25 23:32
【EASY EAI Orin Nano开发板试用体验】安装nfs服务器
/developer/nfsroot *
developer@EASY-EAI-Develop:~$
测试:
使用typec连上开发板后,执行adb shell登录开发板。
在Desktop中创建nfs 然后
发表于 06-22 17:32
【EASY EAI Orin Nano开发板试用体验】开发环境准备
【前言】
首先感谢电子发烧友论坛以及灵眸科技给示了我这次非常难得的【EASY EAI Orin Nano开发板试用体验】的机会,在进行评测之
发表于 06-22 16:42

【EASY EAI Nano开源套件试用体验】开发环境之Python2048小游戏
评论