查看: 1365|回复: 0

当M5StickC遇上UIFLOW系列(七)列表的用法—电子扑克洗牌

[复制链接]

该用户从未签到

发表于 2019-9-4 14:50 | 显示全部楼层 |阅读模式
本帖最后由 vany5921 于 2019-9-4 15:02 编辑

手上有多台M5Stack,一直有个想法,想抽时间做一个STACK版的德州扑克,洗牌发牌采用电子化操作,结合P2P和ESPNOW实现无线显示。迭代和遍历是项目的重点,由于RAM内存受限,采用迭代方式很容易挂掉,因此采取遍历加判断的方式来生成牌面进行洗牌,本实例是一个有助于理解UIFLOW中列表应用的一个很好的教程。1.关于扑克,大家都很熟悉,从A~K一共13个数字,每个数字四种花色,由于德州扑克没有大小王,因此我们总共有52张牌,首先需要声明两个变量来记住生成的数字CardNum和花色CardSuit。另外需要声明两个变量保存列表,其中一个是Poker[],列表只有两个元素[CardNum,CardSuit],CardNum与CardSuit组成了牌面,另外一个是Card[],Card元素为Poker,即52张扑克牌。


截屏2019-09-0414.16.22.png


2.接下来需要随机生成数字与花色,由之前定义的两个变量在列表内随机取值,将取到的值组成牌面存入Poker

截屏2019-09-0414.19.46.png

3.重点:判断是否重复取值。因为card列表为空,因此生成的第一张Poker可以直接放入card[],插入的位置为card已有的排后面即len+1,在此之后生成的牌面都需要遍历判断,先判断数字有没有重复,没有重复直接插入card[],如果数字重复,判断花色有没有重复,如果重复中断循环不再判断,如果没有则插入card[]。第二步和第三步要一直执行到生成52张牌,跳出循环,因此不要忘记循环条件。

截屏2019-09-0415.00.17.png

4.验证一下结果,将生成的card打印出来,由于M5StickC的屏幕太小,我进行遍历打印

截屏2019-09-0414.48.45.png

现在就可以查看生成的52张牌是不是一副去掉大小王的扑克了。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

热门推荐

blinker物联网教程——11、自动灌溉
blinker物联网教程——11
简介[hr] 农业是用水大户,近年来农业用水量约占经济社会用水总量的62%,部分地区高达
求助,st7735显示图片扭曲
求助,st7735显示图片扭曲
前段时间买了个st7735s驱动的0.96tft屏,这两天研究了一下st7735的驱动,在网上找了些
朱雀 是基于ESP32的开源焊台控制器
朱雀 是基于ESP32的开源焊
朱雀 是基于ESP32的开源焊台控制器 本控制器除了控制普通焊台以外,只需通过稍作修改
16度双足机器人舵机驱动板pca9685连接舵机,舵机没反应
16度双足机器人舵机驱动板
各位同为arduino爱好者的大佬们大家好!想请教一下大家有关舵机驱动板pca9685
Arduino IDE 2.0.0 RC3开发STM32遇到的问题
Arduino IDE 2.0.0 RC3开
问题求助: 安装了Arduino IDE 2.0.0 rc3,下载安装了来自stm32duino的库,截图1。然
Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
快速回复 返回顶部 返回列表