本文来源电子发烧友社区,作者:李先生, 帖子地址: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文章
5050浏览量
97486 -
灵眸
+关注
关注
0文章
19浏览量
3197
发布评论请先 登录
相关推荐
NVIDIA发布小巧高性价比的Jetson Orin Nano Super开发者套件
NVIDIA近期推出了一款全新的生成式AI超级计算机——Jetson Orin Nano Super开发者套件。这款开发者套件以其小巧的尺寸
FPGA打砖块小游戏设计思路
HDL, Vivado 平台上开发打砖块小游戏并使用 PS2 与 VGA 的基本思路: 一、整体架构设计 1. 输入模块: • PS2 接口模块:负责与 PS2 设备(如游戏手柄)进行通信,接收手柄
【星闪派物联网开发套件体验连载】+环境监测
如下图所示:
WS63控制板如下图所示:
套件和WS63E控制板如下图所示:
各个模块都是常见的模块,在此不一一介绍了。
开发环境搭建
开发
发表于 10-09 22:27
【xG24 Matter开发套件试用体验】1-基本情况介绍
参加[Silicon Labs xG24 Matter开发套件免费试用]活动,拿到了期待的EFR32xG24 Explorer 开发套件(一个基于 EFR32MG24 片上系统的小封装开发
发表于 07-17 12:39
【xG24 Matter开发套件试用体验】+开机启动
xG24 Matter开发套件试用体验:
1.EFR32xG24 Explorer 套件是一个基于 EFR32MG24 片上系统的小封装开发和评估平台。EFR32xG24 Explor
发表于 07-11 14:05
JH-7110 RISC-V开发套件正式开源
近日,赛昉科技在RVspace生态社区正式开源昉·惊鸿-7110(JH-7110)DevKit开发套件,同时提供其原理图和PCB参考设计源文件,旨在为客户提供全面的RISC-V芯片平台
【LicheeRV-Nano开发套件试用体验】基础开发环境
一、开发环境分类
注意,虽然是开发程序,但是这块处理器涉及到TPU,且官方的基本环境以及教程没出完,导致这块处理器的开发SDK其实是分化的。
发表于 03-18 00:12
【LicheeRV-Nano开发套件试用连载体验】 + 2、镜像烧录
二、烧录镜像
本次镜像烧录环境是在ubuntu22.04下,其他环境参照官方wiki。
镜像地址:https://github.com/sipeed/LicheeRV-Nano
发表于 03-08 09:50
【LicheeRV-Nano开发套件试用体验】LicheeRV-Nano上的IAI威廉希尔官方网站 应用
开发板,之前试用过 DUO对其清奇骨骼,小巧的身板,强劲的性能所吸引,在知道其更加强悍的兄弟板出来后,第一时间申请到试用。
此次开发板包含物料比较充分,除了有
发表于 03-07 17:32
【LicheeRV-Nano开发套件试用体验】+智能平板开发
首先感谢Sipeed矽速科技和电子发烧友给与的这次机会,得以试用LicheeRV-Nano开发套件,并与大家共同分享与学习。
鉴于试用报告格式调整,后面亦按要求展现。
申请理由:
发表于 03-06 23:05
【LicheeRV-Nano开发套件试用连载体验】+ 实现三麦克纳姆轮小车自主导航
【LicheeRV-Nano开发套件试用连载体验】+ 实现三麦克纳姆轮小车自主导航
非常感谢被选中成为Sipeed矽速科技、电子发烧友论坛组织的此次试用体验幸运儿,有机会参与
发表于 03-03 14:20
Python 控制台CS V8.11.00 综合开发环境用户手册
电子发烧友网站提供《Python 控制台CS V8.11.00 综合开发环境用户手册.pdf》资料免费下载
发表于 01-29 12:00
•0次下载
【新品体验】LicheeRV-Nano开发套件免费试用
LicheeRV Nano是Sipeed 最新推出的全能型RISC-VLinux拇指开发板,在SD大小(22x36mm)的尺寸下,放入了几乎所有开发者需要的外设资源,并且在价格和配置上远优于前代
发表于 01-26 16:34
【核桃派1B 开发板试用体验】+ Python编程篇
在核桃派开发板其系统配置了Python软件,通过它完成编写和运行Python代码。
在使用Python时,可分为2种情况,即一种是通过终端来操作,它适用于无桌面操作系统的
发表于 01-03 22:08
评论