Scratch对24队随机分组

2020-06-30 14:32intoweb
电脑报 2020年13期
关键词:清空右键列表

intoweb

1. 问题描述

共有24个国家的球队需要分成4组进行小组赛,现在请你用Scratch编写一个分组程序,将24支球队随机分为4组。

24支球队分别是:塞尔维亚、捷克、波兰、立陶宛、意大利、希腊、俄罗斯、巴西、委内瑞拉、波多黎各、多米尼加、德国、新西兰、突尼斯、加拿大、土耳其、中国、菲律宾、斯洛文尼亚、克罗地亚、塞内加尔、安哥拉、墨西哥、乌拉圭。

2. 列表的导入

参赛队伍一共有24支,如果编程时每次都需要重新输入工作量可就太大了。Scratch的列表有导入和导出功能的,右键点击列表就有“导入和导出”菜单,选择文本文件即可导入。列表每项对应文本的一行,文本编码为UTF-8,否则导入会是乱码。

3. 解题思路

A:將1到24依次放入一个列表的随机位置,这样就获得了24个数字随机排列的“队伍编号”列表。将“队伍编号”的第一项对应的序号从参赛队中抽取出来放入A分组,并删除“队伍编号”列表的第一项。接着不断将“队伍编号”列表的第一项对应球队抽出放入B、C、D分组,重复6次,将所有球队分配完毕。

B:另外一种解题思路与实际抽签的操作一致,但是编写难度稍高。将参赛的24支队伍放入一个列表中,通过生成随机数(1-24)就可以随机地取出一支队伍,存入第一小组里,把这个队伍从列表中删除,接下来参赛队伍就只有23支了。接着生成(1-23)的随机数再取出一支队伍,并放入第A分组,从列表中删除。以此类推,就如同我们抽签一样,取出一个少一个,A组取6个,然后其他组从剩下的里面再抽。

4. 解法A

1) 建立列表“参赛队伍”并右键导入24支队伍名,建立“队伍编号”列表记录随机顺序,建立“ABCD”4个列表记录分组结果。建立临时变量“i”,i=0。点击绿旗清空队伍编号和ABCD列表。

2) 将1-24随机填入“队伍编号”列表。重复执行24次:i=i+1,在队伍编号的第1到队伍编号的项目数之间取随机数项前插入i。

3) 依次将“队伍编号”列表的第1项序号从对应“参赛队伍”列表中提取到A、B、C、D分组列表并删除“队伍编号”列表的第1项。

5. 解法B

1) 建立列表“参赛队伍”并右键导入24支队伍名,建立“队伍编号”列表顺序存储1-24个数字,建立“ABCD”4个列表记录分组结果。建立临时变量“i”,i=0。点击绿旗清空队伍编号和ABCD列表。

2) 从“队伍编号”列表中随机抽取1项i,将“参赛队伍”的第i项加入A组,删除“队伍编号”的第i项。这样就随机抽取了1个队伍到A组,下面依次从“参赛队伍”列表中随机抽取到BCD组中,然后开始下一次循环。

两种解法都可以达到对队伍随机分组的目的,我将完整源代码保存在阿尔法营(www.aerfaying.com),你可以搜索“Scratch对24队随机分组”下载后自行分析和改进。

猜你喜欢
清空右键列表
轻松整理Win10右键菜单
扩列吧
在法国亲历“清空阁楼”
自定义“开始”右键控制菜单
用右键菜单管理右键菜单
列表法解分式方程问题探索
清空你的购物车是我的温柔
给Windows 10右键菜单做“手术”
列表画树状图各有所长
下一场雪,写一首诗