0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

开发板试用精选 来源:开发板试用 作者:电子发烧友论坛 2022-10-11 16:05 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文来源电子发烧友社区,作者:李先生, 帖子地址:https://bbs.elecfans.com/jishu_2308793_1_1.html


前言
开发板具备Python运行环境,这对于一些轻量开发可以直接在开发板上进行脚本开发,这就十分方便。python --version可以看到版本是2.7.16
[root@EASY-EAI-NANO:/]# python --version
Python 2.7.16

过程
直接SSH或者串口登录,
导入2048.py或者
直接vi编辑


  1. # -*- coding:UTF-8 -*-
  2. #!/usr/bin/python2
  3. import random
  4. import os, sys
  5. v = [[0, 0, 0, 0],
  6. [0, 0, 0, 0],
  7. [0, 0, 0, 0],
  8. [0, 0, 0, 0]]
  9. def display(v, score):
  10. print ("%4d %4d %4d %4d" % (v[0][0], v[0][1], v[0][2], v[0][3]))
  11. print ("%4d %4d %4d %4d" % (v[1][0], v[1][1], v[1][2], v[1][3]))
  12. print ("%4d %4d %4d %4d" % (v[2][0], v[2][1], v[2][2], v[2][3]))
  13. print ("%4d %4d %4d %4d" % (v[3][0], v[3][1], v[3][2], v[3][3]))
  14. print ("Total score: %d" % score)
  15. def init(v):
  16. for i in range(4):
  17. v[i] = [random.choice([0, 0, 0, 2, 2, 4]) for x in range(4)]
  18. def align(vList, direction):
  19. for i in range(vList.count(0)):
  20. vList.remove(0)
  21. zeros = [0 for x in range(4 - len(vList))]
  22. if direction == 'left':
  23. vList.extend(zeros)
  24. else:
  25. vList[:0] = zeros
  26. def addSame(vList, direction):
  27. score = 0
  28. if direction == 'left':
  29. for i in [0, 1, 2]:
  30. align(vList, direction)
  31. if vList[i] == vList[i+1] != 0:
  32. vList[i] *= 2
  33. vList[i+1] = 0
  34. score += vList[i]
  35. return {'bool':True, 'score':score}
  36. else:
  37. for i in [3, 2, 1]:
  38. align(vList, direction)
  39. if vList[i] == vList[i-1] != 0:
  40. vList[i] *= 2
  41. vList[i-1] = 0
  42. score += vList[i]
  43. return {'bool':True, 'score':score}
  44. return {'bool':False, 'score':score}
  45. def handle(vList, direction):
  46. totalScore = 0
  47. align(vList, direction)
  48. result = addSame(vList, direction)
  49. while result['bool'] == True:
  50. totalScore += result['score']
  51. align(vList, direction)
  52. result = addSame(vList, direction)
  53. return totalScore
  54. def operation(v):
  55. totalScore = 0
  56. gameOver = False
  57. direction = 'left'
  58. op = raw_input ('operator:')
  59. if op in ['a','A']:
  60. direction = 'left'
  61. for row in range(4):
  62. totalScore += handle(v[row], direction)
  63. elif op in ['d','D']:
  64. direction = 'right'
  65. for row in range(4):
  66. totalScore += handle(v[row], direction)
  67. elif op in ['w', 'W']:
  68. direction = 'left'
  69. for col in range(4):
  70. vList = [v[row][col] for row in range(4)]
  71. totalScore += handle(vList, direction)
  72. for row in range(4):
  73. v[row][col] = vList[row]
  74. elif op in ['s', 'S']:
  75. direction = 'right'
  76. for col in range(4):
  77. vList = [v[row][col] for row in range(4)]
  78. totalScore += handle(vList, direction)
  79. for row in range(4):
  80. v[row][col] = vList[row]
  81. else:
  82. print ("Invalid raw_input ,please enter a charactor in [W,S,A,D] or the lower")
  83. gameOver = True
  84. return {'gameOver':gameOver,'score':totalScore}
  85. N = 0
  86. for q in v:
  87. N += q.count(0)
  88. if N == 0:
  89. gameOver = True
  90. return {'gameover':gameOver,'score':totalScore}
  91. num = random.choice([2,2,2,4])
  92. k = random.randrange(1, N+1)
  93. n = 0
  94. for i in range(4):
  95. for j in range(4):
  96. if v[i][j] == 0:
  97. n += 1
  98. if n == k:
  99. v[i][j] = num
  100. break
  101. return {'gameOver':gameOver, 'score':totalScore}
  102. init(v)
  103. score = 0
  104. print ("raw_input :W(Up) S(Down) A(Left) D(Right), press.")
  105. while True:
  106. os.system("clear")
  107. display(v, score)
  108. result = operation(v)
  109. print (result)
  110. if result['gameOver'] == True:
  111. print ("Game Over, You failed!")
  112. print ("Your total score %d" % (score))
  113. sys.exit(1)
  114. else:
  115. score += result['score']
  116. if score >= 2048:
  117. print ("Game Over, You Win!!!")
  118. print ("Your total score: %d" % (score))
  119. sys.exit(0)
复制代码


添加可执行权限
chmod +x 2048.py
运行

python 2048.py
分别用wsad控制上下左右移动
pYYBAGM-5QqAUjlKAABhWaa--6o016.png
总结
开发板提供了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(图像信号处理器
    的头像 发表于 09-23 08:09 688次阅读
    【免费<b class='flag-5'>试用</b>】<b class='flag-5'>EASY</b> <b class='flag-5'>EAI</b> <b class='flag-5'>Nano</b>-TB(RV1126B)<b class='flag-5'>开发套件</b>评测

    【作品合集】灵眸科技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 Orin Nano开发试用体验】人脸识别体验 - EASY
    发表于 07-05 15:21

    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