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

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

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

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

【飛凌RZ/G2L開發(fā)板試用體驗(yàn)】開發(fā)環(huán)境體驗(yàn)之python開發(fā)2048小游戲

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

掃碼添加小助手

加入工程師交流群

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


Python開發(fā)環(huán)境體驗(yàn):2048游戲

前言

查看開發(fā)板部署了Python3.8.2的環(huán)境,可以使用python進(jìn)行開發(fā)。支持python等腳本開發(fā)的話對應(yīng)于很多輕量級(jí)開發(fā)場景會(huì)非??焖俦憬?所以我們也簡單測試下使用python 編寫2048小游戲進(jìn)行測試。

root@okg2l:~# python3 --version

Python 3.8.2

root@okg2l:~#

準(zhǔn)備

參考https://bbs.elecfans.com/jishu_2299841_1_1.html開發(fā)環(huán)境搭建

基本的登錄文件傳輸?shù)炔僮鳌?/p>

2048小游戲代碼

vi 2048.py

按鍵i進(jìn)入編輯模式

復(fù)制黏貼如下代碼

# -*- 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+:進(jìn)入命令模式

輸入wq!保存

運(yùn)行

python3 2048.py

按鍵w,s,a,d回車分別對應(yīng)上下左右。
image.png

總結(jié)

以一個(gè)小的程序體驗(yàn)下python開發(fā)的便捷,開發(fā)板支持的python版本也比較新Python3.8.2,能較好滿足開發(fā)需求。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 飛凌
    +關(guān)注

    關(guān)注

    0

    文章

    135

    瀏覽量

    16895
  • 開發(fā)板試用
    +關(guān)注

    關(guān)注

    3

    文章

    303

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    嵌入式RV1126B開發(fā)板】+兩款開發(fā)板之比較

    用戶二次開發(fā)。 就開發(fā)工具而言,可支持ubuntu與docker、支持在線交叉編譯環(huán)境及純Python開發(fā)方式。 就
    發(fā)表于 03-05 23:32

    Renesas RZ/G2L, RZ/V2L SMARC模塊硬件設(shè)計(jì)解析

    Renesas RZ/G2L, RZ/V2L SMARC模塊硬件設(shè)計(jì)解析 在嵌入式系統(tǒng)開發(fā)領(lǐng)域
    的頭像 發(fā)表于 12-30 09:35 ?956次閱讀

    Renesas SMARC EVK 開發(fā)板啟動(dòng)指南

    Renesas SMARC EVK 開發(fā)板啟動(dòng)指南 在嵌入式開發(fā)領(lǐng)域,Renesas 的 RZ/G2L、RZ/
    的頭像 發(fā)表于 12-29 16:15 ?325次閱讀

    OK-MX9596-C開發(fā)板試用】②體驗(yàn)WIFI、藍(lán)牙、音頻、視頻,為AI應(yīng)用打下基礎(chǔ)

    OK-MX9596-C開發(fā)板試用】①開箱圖賞、跑分測試、yolo大模型三箭齊發(fā) -
    發(fā)表于 10-21 18:17

    【作品合集】嵌入式OK527N-C開發(fā)板測評

    開發(fā)板試用】開箱與開發(fā)板介紹視頻 作者:jf_69121293【T527N開發(fā)板
    發(fā)表于 09-22 15:54

    送啦!嵌入式聯(lián)合NXP邀您參加OK-MX9596-C開發(fā)板試用活動(dòng)

    送啦!嵌入式聯(lián)合NXP邀您參加OK-MX9596-C開發(fā)板試用活動(dòng)
    的頭像 發(fā)表于 08-22 08:03 ?1001次閱讀
    送啦!<b class='flag-5'>飛</b><b class='flag-5'>凌</b>嵌入式聯(lián)合NXP邀您參加OK-MX9596-C<b class='flag-5'>開發(fā)板</b><b class='flag-5'>試用</b>活動(dòng)

    RK3568開發(fā)板暗藏32位兼容開關(guān)?嵌入式帶你一鍵解鎖!

    RK3568是一款64位處理器,嵌入式為其提供的交叉編譯器也是64位的,然而部分用戶可能需要在RK3568開發(fā)板上運(yùn)行32位應(yīng)用。本文將詳細(xì)闡述如何使用32位交叉編譯器,編譯出32位應(yīng)用,并使其能夠在
    的頭像 發(fā)表于 07-19 08:49 ?4387次閱讀
    RK3568<b class='flag-5'>開發(fā)板</b>暗藏32位兼容開關(guān)?<b class='flag-5'>飛</b><b class='flag-5'>凌</b>嵌入式帶你一鍵解鎖!

    瑞薩MCU方案:瑞薩RZ/G2L Bootloader單獨(dú)編譯方法詳解

    微處理器還配備有大量接口,如攝像頭輸入、顯示輸出、USB2.0和千兆以太網(wǎng),因此特別適用于入門級(jí)工業(yè)人機(jī)界面(HMI)和具有視頻功能的嵌入式設(shè)備等應(yīng)用。 ? ? ? 在RZ/G2L開發(fā)工作中,用戶經(jīng)常
    的頭像 發(fā)表于 07-08 14:47 ?2626次閱讀
    瑞薩MCU方案:瑞薩<b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b> Bootloader單獨(dú)編譯方法詳解

    T527N開發(fā)板試用T527N開發(fā)板開箱評測

    很高興收到嵌入式申請的T527N開發(fā)板,板子的正反面如下圖所示: 可以看到,板子上面的資源非常的豐富,有CAN,485, SIM卡槽
    發(fā)表于 07-04 11:43

    基于瑞薩64位MPU RZ/G2L進(jìn)行32位應(yīng)用軟件開發(fā)

    本文主要介紹基于瑞薩64位MPU RZ/G2L進(jìn)行32位應(yīng)用軟件開發(fā)的介紹,用于解決客戶32位軟件移植相關(guān)問題,供客戶參考。
    的頭像 發(fā)表于 06-26 15:48 ?1978次閱讀
    基于瑞薩64位MPU <b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b>進(jìn)行32位應(yīng)用軟件<b class='flag-5'>開發(fā)</b>

    T527N開發(fā)板試用】開箱與開發(fā)板介紹視頻

    嵌入式OK527N-C開發(fā)板開箱介紹】 https://www.bilibili.com/video/BV1sfKSzmEtU/?share_source=copy_web&
    發(fā)表于 06-26 09:43

    基于RK處理器,創(chuàng)龍TL3562-MiniEVM開發(fā)板試用體驗(yàn)

    數(shù)量: 10塊 ? 更多熱點(diǎn)文章閱讀 基于平頭哥TH1520芯片,潤開鴻HH-SCDAYU800A開發(fā)板免費(fèi)試用 RISC-V開發(fā)板深度評測!頂級(jí)開發(fā)板免費(fèi)
    的頭像 發(fā)表于 06-05 16:31 ?1175次閱讀
    基于RK處理器,創(chuàng)龍TL3562-MiniEVM<b class='flag-5'>開發(fā)板</b><b class='flag-5'>試用</b>體驗(yàn)

    性能強(qiáng)悍!合眾HZ-RK3568開發(fā)板試用體驗(yàn)

    月19日 ? 評測數(shù)量: 10塊 ? 更多熱點(diǎn)文章閱讀 基于平頭哥TH1520芯片,潤開鴻HH-SCDAYU800A開發(fā)板免費(fèi)試用 RISC-V開發(fā)板深度評測!頂級(jí)開發(fā)板免費(fèi)
    的頭像 發(fā)表于 06-05 16:30 ?1468次閱讀
    性能強(qiáng)悍!合眾HZ-RK3568<b class='flag-5'>開發(fā)板</b><b class='flag-5'>試用</b>體驗(yàn)

    【評測試用】合眾HZ-T536開發(fā)板免費(fèi)試用體驗(yàn)

    【評測試用】合眾HZ-T536開發(fā)板免費(fèi)試用體驗(yàn)
    的頭像 發(fā)表于 05-27 08:05 ?968次閱讀
    【評測<b class='flag-5'>試用</b>】合眾HZ-T536<b class='flag-5'>開發(fā)板</b>免費(fèi)<b class='flag-5'>試用</b>體驗(yàn)

    有獎(jiǎng)試用??!RA-Eco-RA4M2-100PIN-V1.0開發(fā)板試用活動(dòng)報(bào)名

    RA-Eco-RA4M2-100PIN-V1.0開發(fā)板試用活動(dòng)
    的頭像 發(fā)表于 03-13 12:10 ?1469次閱讀
    有獎(jiǎng)<b class='flag-5'>試用</b>!!RA-Eco-RA4M<b class='flag-5'>2</b>-100PIN-V1.0<b class='flag-5'>開發(fā)板</b><b class='flag-5'>試用</b>活動(dòng)報(bào)名