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

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

3天内不再提示

【米尔MYD-J1028X开发板试用体验】开发环境体验之python开发2048小游戏

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

扫码添加小助手

加入工程师交流群

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


前言

板子本身安装了python开发环境

使用以下指令查看版本

python --version

root@localhost:~# python --version

Python 3.6.9

配置SSH登录

电脑和开发板使用以太网连接。这里使用J5的网口对应eno0.

电脑设置对应网卡的IP。我这里是192.168.137.1。
image.png

串口登录开发板

设置开发板IP为192.168.137.2.

ifconfig eno0 192.168.137.2

电脑ping开发板,开发板ping电脑。

双向能ping通。如果不能ping通关闭电脑的防火墙。
image.png

vi /etc/ssh/sshd_config

添加一行PermitRootLogin yes

允许ssh root用户登录,否则ssh不能以root用户登录。

使用crt ssh登录
image.png

image.png

输入密码root
image.png

ftp传文件

右键点击ssh的窗口,点击连接SFTP标签

image.png

lls查看本地目录

lcd跳转本地目录

ls查看远程开饭啊目录

cd跳转远程开发板目录

put 发送文件到开发板

get获取开发板的文件到本地

binary 二进制方式船速和文件推荐使用

Python开发体验 2048小游戏

将以下2048.py文件导入到开发板

# -*- 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)

put 2048.py

python 2048.py运行

w s a d回车控制上下左右移动的方向

image.png

总结

可以看到使用使用python进行脚本开发非常便捷。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 米尔科技
    +关注

    关注

    5

    文章

    227

    浏览量

    22163
  • MYD-J1028X
    +关注

    关注

    1

    文章

    16

    浏览量

    421
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何移植EtherCAT Igh--基于米尔RK3576开发板

    本文将介绍基于米尔电子MYD-LR3576开发板米尔基于瑞芯微RK3576开发板)的端移植E
    的头像 发表于 09-26 08:04 9452次阅读
    如何移植EtherCAT Igh--基于<b class='flag-5'>米尔</b>RK3576<b class='flag-5'>开发板</b>

    有奖丨米尔 瑞芯微RK3506开发板免费试用来啦!

    米尔与瑞芯微合作发布的新品基于瑞芯微RK3506应用处理器的MYD-YR3506开发板免费试用名额增加啦
    的头像 发表于 07-10 08:03 646次阅读
    有奖丨<b class='flag-5'>米尔</b> 瑞芯微RK3506<b class='flag-5'>开发板</b>免费<b class='flag-5'>试用</b>来啦!

    如何部署流媒体服务实现监控功能--基于米尔TI AM62x开发板

    本文将介绍基于米尔电子MYD-YM62X开发板米尔基于TIAM62开发板)的部署流媒体服务实现监控功能方案的
    的头像 发表于 07-03 08:03 2059次阅读
    如何部署流媒体服务实现监控功能--基于<b class='flag-5'>米尔</b>TI AM62<b class='flag-5'>x</b><b class='flag-5'>开发板</b>

    有奖丨米尔 瑞芯微RK3506开发板免费试用

    米尔与瑞芯微合作发布的新品基于瑞芯微RK3506应用处理器的MYD-YR3506开发板免费试用名额来啦~~米尔提供了3块价值299元的
    的头像 发表于 06-19 08:04 854次阅读
    有奖丨<b class='flag-5'>米尔</b> 瑞芯微RK3506<b class='flag-5'>开发板</b>免费<b class='flag-5'>试用</b>

    有奖丨米尔 瑞芯微RK3562开发板免费试用新增名额!

    米尔与瑞芯微合作发布的新品基于瑞芯微RK3562应用处理器的MYD-YR3562开发板免费试用名额增加
    的头像 发表于 06-13 08:04 855次阅读
    有奖丨<b class='flag-5'>米尔</b> 瑞芯微RK3562<b class='flag-5'>开发板</b>免费<b class='flag-5'>试用</b>新增名额!

    有奖丨米尔 NXP i.MX91开发板免费试用来啦

    米尔与NXP合作发布的新品基于NXPi.MX91应用处理器的MYD-LMX91开发板免费试用名额来啦~~米尔提供了3套价值588元的
    的头像 发表于 06-05 08:02 1117次阅读
    有奖丨<b class='flag-5'>米尔</b> NXP i.MX91<b class='flag-5'>开发板</b>免费<b class='flag-5'>试用</b>来啦

    基于米尔全志T536开发板的视频识别应用方案

    本文将介绍基于米尔电子MYD-LT536开发板米尔基于全志T536开发板)的视频识别应用方案测试。摘自优秀创作者-鲁治驿基于
    的头像 发表于 06-05 08:01 1782次阅读
    基于<b class='flag-5'>米尔</b>全志T536<b class='flag-5'>开发板</b>的视频识别应用方案

    米尔-STM32MP257开发板试用体验】初次体验米尔-STM32MP257开发板

    是ST推出的搭载了双核Cortex-A35 @1.5 GHz和Cortex-M33 @400 MHz的微处理器。米尔电子基于STM32MP257D推出了MYD-LD25X开发板开发板
    发表于 04-30 16:21

    如何在米尔-STM32MP257开发板上实现环境监测系统

    本文将介绍基于米尔电子MYD-LD25X开发板米尔基于STM35MP257开发板)的环境监测系
    的头像 发表于 04-17 08:06 2370次阅读
    如何在<b class='flag-5'>米尔</b>-STM32MP257<b class='flag-5'>开发板</b>上实现<b class='flag-5'>环境</b>监测系统

    OpenCV行人检测应用方案--基于米尔全志T527开发板

    本文将介绍基于米尔电子MYD-LT527开发板米尔基于全志T527开发板)的OpenCV行人检测方案测试。摘自优秀创作者-小火苗一、软件
    的头像 发表于 04-10 08:03 1102次阅读
    OpenCV行人检测应用方案--基于<b class='flag-5'>米尔</b>全志T527<b class='flag-5'>开发板</b>

    免费丨米尔 STM32MP257开发板有奖试用

    米尔与ST合作发布的新品基于STM32MP257应用处理器的MYD-LD25X开发板免费试用活动来啦~~米尔提供了2块价值488元的
    的头像 发表于 03-20 08:05 886次阅读
    免费丨<b class='flag-5'>米尔</b> STM32MP257<b class='flag-5'>开发板</b>有奖<b class='flag-5'>试用</b>

    有奖丨米尔 瑞芯微YR3562开发板免费试用

    米尔与瑞芯微合作发布的新品基于瑞芯微RK3562应用处理器的MYD-YR3562开发板免费试用活动来啦~~米尔提供了3块价值599元的
    的头像 发表于 03-20 08:05 806次阅读
    有奖丨<b class='flag-5'>米尔</b> 瑞芯微YR3562<b class='flag-5'>开发板</b>免费<b class='flag-5'>试用</b>

    如何安装模拟器玩nes小游戏-基于米尔瑞芯微RK3576开发板

    本篇源自:优秀创作者 小手凉凉本文将介绍基于米尔电子MYD-LR3576开发板米尔基于瑞芯微 RK3576开发板)的安装模拟器玩nes
    发表于 02-08 12:10

    有奖丨米尔 全志T536开发板免费试用

    米尔与全志合作发布的新品基于全志T536应用处理器的MYD-LT536-GK开发板免费试用活动来啦~~米尔提供了3块价值750元的
    的头像 发表于 12-26 08:05 1314次阅读
    有奖丨<b class='flag-5'>米尔</b> 全志T536<b class='flag-5'>开发板</b>免费<b class='flag-5'>试用</b>

    如何用OpenCV进行手势识别--基于米尔全志T527开发板

    本文将介绍基于米尔电子MYD-LT527开发板米尔基于全志T527开发板)的OpenCV手势识别方案测试。摘自优秀创作者-小火苗
    的头像 发表于 12-13 08:04 1764次阅读
    如何用OpenCV进行手势识别--基于<b class='flag-5'>米尔</b>全志T527<b class='flag-5'>开发板</b>