91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【EASY EAI Nano開源套件試用體驗(yàn)】開發(fā)環(huán)境之Python2048小游戲

開發(fā)板試用精選 ? 來(lái)源:開發(fā)板試用 ? 作者:電子發(fā)燒友論壇 ? 2022-10-11 16:05 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文來(lái)源電子發(fā)燒友社區(qū),作者:李先生, 帖子地址:https://bbs.elecfans.com/jishu_2308793_1_1.html


前言
開發(fā)板具備Python運(yùn)行環(huán)境,這對(duì)于一些輕量開發(fā)可以直接在開發(fā)板上進(jìn)行腳本開發(fā),這就十分方便。python --version可以看到版本是2.7.16
[root@EASY-EAI-NANO:/]# python --version
Python 2.7.16

過(guò)程
直接SSH或者串口登錄,
導(dǎo)入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)
復(fù)制代碼


添加可執(zhí)行權(quán)限
chmod +x 2048.py
運(yùn)行

python 2048.py
分別用wsad控制上下左右移動(dòng)
pYYBAGM-5QqAUjlKAABhWaa--6o016.png
總結(jié)
開發(fā)板提供了Python環(huán)境,直接開發(fā)板上進(jìn)行Python開發(fā)十分便捷,這對(duì)一些輕量開發(fā)場(chǎng)景時(shí)非常方便。
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    26

    文章

    6305

    瀏覽量

    118438
  • EASY-EAI靈眸科技
    +關(guān)注

    關(guān)注

    4

    文章

    67

    瀏覽量

    3646
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    EASY EAI Nano-TB(RV1126B)開發(fā)試用】介紹、系統(tǒng)安裝

    EASY EAI Nano-TB(RV1126B)開發(fā)試用】介紹、系統(tǒng)安裝 本文介紹了靈眸科技 EA
    發(fā)表于 12-23 18:05

    EASY EAI Nano-TB(RV1126B)開發(fā)試用】+1、開箱上電

    EASY EAI Nano-TB(RV1126B)開發(fā)板開箱報(bào)告: 1 開箱體驗(yàn):精致包裝與豐富配件 EASY
    發(fā)表于 11-19 21:39

    EASY EAI Nano-TB(RV1126B)開發(fā)試用】1、初識(shí)

    非常感謝電子發(fā)燒友以及靈眸科技給了我這次試用EASY EAI Nano-TB(RV1126B)開發(fā)板的機(jī)會(huì),星期四確認(rèn)了我的
    發(fā)表于 11-16 11:15

    EASY EAI Nano-TB(RV1126B)開發(fā)試用】命令行功能測(cè)試-shell腳本進(jìn)行IO控制-燈閃

    接上文【EASY EAI Nano-TB(RV1126B)開發(fā)試用】開箱測(cè)評(píng) https://pan.baidu.com/s/15pnbJ
    發(fā)表于 11-01 21:26

    EASY EAI Nano-TB(RV1126B)開發(fā)試用】開箱測(cè)評(píng)

    。 。 開發(fā)板卡 | EASY EAI Nano-TB(RV1126B)開發(fā)套件是靈眸科技研發(fā)的一款應(yīng)用于AIoTl領(lǐng)域的核心板,并配有
    發(fā)表于 11-01 11:05

    EASY EAI Nano-TB(RV1126B)開發(fā)試用】+初識(shí)篇

    EASY EAI Nano-TB(RV1126B)開發(fā)套件是靈眸科技研發(fā)的一款應(yīng)用于AIoTl領(lǐng)域的核心板,并配有十分豐富的外設(shè)資源,以此為基礎(chǔ)便于快速進(jìn)入學(xué)習(xí)和
    發(fā)表于 10-25 22:06

    【免費(fèi)試用EASY EAI Nano-TB(RV1126B)開發(fā)套件評(píng)測(cè)

    EASY-EAI-Nano-TB是靈眸科技研發(fā)的一款應(yīng)用于AIoT領(lǐng)域的AIOT主板。核心板基于瑞芯微的RV1126B處理器設(shè)計(jì),并引入了新一代完全基于硬件的最大12M像素ISP(圖像信號(hào)處理器
    的頭像 發(fā)表于 09-23 08:09 ?1079次閱讀
    【免費(fèi)<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'>開發(fā)套件</b>評(píng)測(cè)

    【作品合集】靈眸科技EASY EAI Orin Nano(RK3576)開發(fā)板測(cè)評(píng)

    板免費(fèi)試用 作者:華仔stm32【EASY EAI Orin Nano(RK3576)開發(fā)試用
    發(fā)表于 09-09 09:59

    EASY EAI Orin Nano開發(fā)試用體驗(yàn)】EASY-EAI-Toolkit人臉識(shí)別

    、編譯與測(cè)試 1.組件人臉識(shí)別代碼如下 2.開發(fā)板掛載服務(wù)器,編譯 掛載上服務(wù)器后,切換到EASY-EAI-Toolkit-3576/Demos/algorithm-face_detect/路徑下
    發(fā)表于 07-20 14:40

    EASY EAI Orin Nano開發(fā)試用體驗(yàn)】人臉識(shí)別提升

    【前言】【新提醒】【EASY EAI Orin Nano開發(fā)試用體驗(yàn)】人臉識(shí)別體驗(yàn) - EASY
    發(fā)表于 07-05 15:21

    EASY EAI Orin Nano開發(fā)試用體驗(yàn)】EASY-EAI-Toolkit初體驗(yàn)

    本次EASY EAI Orin Nano開發(fā)試用體驗(yàn)主要是超級(jí)想體驗(yàn)靈眸的EASY-EAI-T
    發(fā)表于 06-28 21:21

    EASY EAI Orin Nano開發(fā)試用體驗(yàn)】開箱和固件燒錄更新體驗(yàn)

    首先感謝靈眸科技和發(fā)燒友組織的開發(fā)板大賽! 一、硬件介紹 靈眸科技EASY EAI Orin-Nano基于瑞芯微的RK3576處理器設(shè)計(jì),集成了4個(gè)Cortex-A72和4個(gè)Corte
    發(fā)表于 06-26 23:41

    EASY EAI Orin Nano開發(fā)試用體驗(yàn)】人臉識(shí)別體驗(yàn)

    | 10.92 MiB/s, 完成. 處理 delta 中: 100% (77/77), 完成. 2、adb登錄開發(fā)板,并加載nfs developer@EASY-EAI-Develop:~/nfsroot
    發(fā)表于 06-26 06:54

    EASY EAI Orin Nano開發(fā)試用體驗(yàn)】安裝nfs服務(wù)器

    /developer/nfsroot * developer@EASY-EAI-Develop:~$ 測(cè)試: 使用typec連上開發(fā)板后,執(zhí)行adb shell登錄開發(fā)板。 在Desktop中創(chuàng)建nfs 然后
    發(fā)表于 06-22 17:32

    EASY EAI Orin Nano開發(fā)試用體驗(yàn)】開發(fā)環(huán)境準(zhǔn)備

    【前言】 首先感謝電子發(fā)燒友論壇以及靈眸科技給示了我這次非常難得的【EASY EAI Orin Nano開發(fā)試用體驗(yàn)】的機(jī)會(huì),在進(jìn)行評(píng)測(cè)之
    發(fā)表于 06-22 16:42