景淮:彩色汉字小游戏-GPTs Action 实战
景淮:彩色汉字小游戏-GPTs Action 实战
景淮:彩色汉字小游戏 GPTs Action 实战 景淮:彩色汉字小游戏 GPTs Action 实战 Modified March 2, 2024 No access 颜色汉字连线.py Code block Python Copy 随机抽取五个不重复的颜色 selected colors = random.sample(list(color map.keys()), 5) 用户没有输入,默认汉字数量为10 characters count = 10 从抽取的五个颜色中随机抽取指定数量的汉字,确保每个汉字至少出现一次 如果汉字数量少于颜色数量,则只选取前n个颜色 if characters count < len(selected colors): selected colors = selected colors[:characters count] 确保每个颜色至少出现一次后,填充剩余位置 characters = random.choices(selected colors, k=characters count) 定义卡片大小和初始参数 card width = 285 char size = 45 汉字大小 char spacing = 10 汉字间隔 line spacing = 20 行间距 max chars per line = 5 每行最大汉字数 计算卡片高度 rows = (characters count + max chars per line 1) // max chars per line card height = rows char size + (rows 1) line spacing + 2 char spacing 增加顶部和底部间隔 创建带有背景颜色的卡片 card = Image.new("RGB", (card width, card height), " 333333") draw = ImageDraw.Draw(card) 加载字体 font path = "/mnt/data/今年也要加油鸭.ttf" font = ImageFont.truetype(font path, char size) 计算第一个汉字的起始位置 x = char spacing y = char spacing for index, character in enumerate(characters): 设置字体颜色 color = color map[character] 绘制汉字 draw.text((x, y), character, font=font, fill=color) 更新位置 if (index + 1) % max chars per line == 0: 换行 x = char spacing y += char size + line spacing else: 同行下一个位置 x += char size + char spacing Display the result card.show() 三)难度:中等(中) 提示词 📌 利用Python制作一张宽度为285px的小卡片,步骤如下: 1. 从“红、蓝、黄、绿、橙、紫、粉、黑、白和棕”中随机抽取五个不重复的颜色的汉字,放入数组中。 2. 根据用户输入的汉字数量从所数组中随机进行抽取[输入的汉字数量]次,同时也从数组中随机抽取汉字的颜色,按照所抽取的顺序把抽到的汉字和字体颜色一一对应。如果用户没有输入则默认汉字数量为10 3. 比如抽到的字为红色,颜色为“蓝色”则,在小卡片上使用上传的字体写下“红”。然后字体颜色设置为“蓝”。 4. 小卡片上的汉字大小为45px,同时每个汉字之间的间隔为10px。每行最多五个字。如果超过五个字则自动换行,同时行间距为20px。 5. 小卡片的背景颜色为灰黑色。注意: • 红 (Red): ff0000 • 蓝 (Blue): 0000ff • 黄 (Yellow): ffff00 • 绿 (Green): 00ff00 • 橙 (Orange): ffa400 • 紫 (Purple): 9f1fef • 粉 (Pink): ffc0ca • 黑 (Black): 000000 • 白 (White): ffffff • 棕 (Brown): a42a2a 效果展示 Python 代码 Code block Python Copy from PIL import Image, ImageDraw, ImageFont import random Step 1: 随机抽取五个不重复的颜色的汉字 colors = ["红", "蓝", "黄", "绿", "橙", "紫", "粉", "黑", "白", "棕"] color codes = { "红": " ff0000", "蓝": " 0000ff", "黄": " ffff00", "绿": " 00ff00", "橙": " ffa400", "紫": " 9f1fef", "粉": " ffc0ca", "黑": " 000000", "白": " ffffff", "棕": " a42a2a" } 抽取五个不重复的颜色 selected colors = random.sample(colors, 5) 用户输入的汉字数量(这里假设为默认的10) num characters = 10 Step 2: 随机抽取汉字和汉字的颜色 characters = random.choices(selected colors, k=num characters) character colors = [random.choice(selected colors) for in range(num characters)] 加载字体 font path = '/mnt/data/今年也要加油鸭.ttf' font size = 45 font = ImageFont.truetype(font path, font size) 创建画布 card width = 285 card height = (font size + 20) ((num characters 1) // 5 + 1) + 20 根据汉字数量计算卡片高度 image = Image.new("RGB", (card width, card height), " 333333") draw = ImageDraw.Draw(image) 设置汉字的位置参数 x start, y start = 10, 10 起始位置 x offset = font size + 10 汉字间的横向间隔 y offset = font size + 20 行间距 Step 3 & 4: 在卡片上绘制汉字 for i, (char, color) in enumerate(zip(characters, character colors)): x = x start + (i % 5) x offset y = y start + (i // 5) y offset draw.text((x, y), char, font=font, fill=color codes[color]) Display the result image.show() 四)难度:困难(难) 提示词与上面相同,只有规则不同。 三、提示词编写测试 一)初始提示词 Code block Markdown Copy Workflow: 1. 等待用户输入 获取用户想要是使用的模式 获取用户输入的[汉字数量],如果客户没有输入,则默认值为10 2. 根据用户输入的模式,调用对应[Model]中的模式 3. 每个[Model]执行结束后,必须展示一张图片给用户 Model: 认识颜色和汉字: 101. 首先展示图片给用户,让用户对照图片进行学习记忆,之后询问用户是否想要玩一个颜色和文字连线小游戏 102. 如果用户回复是则使用python运行"颜色汉字连线.py"的代码,生成一张python的小卡片,展示给用户 难度:简单(易) + 游戏规则:随机获取其中的五种颜色,使用颜色和汉字相同的方式,让孩子进行阅读。通过颜色和汉字一一对应的方式,尝试让孩子在脑海中形成记忆。 + 执行:利用Python制作一张宽度为285px的小卡片,步骤如下: 201. 从“红、蓝、黄、绿、橙、紫、粉、黑、白和棕”中随机抽取五个不重复的颜色。 202. 根据用户输入的汉字数量从所抽取的五个汉字中随机进行抽取[输入的汉字数量]次,确保每个汉字和汉字的字体颜色相同。注意:所抽取的每个汉字和颜色至少出现一次,如果用户没有输入则默认汉字数量为10 203. 比如抽到的字为红色则,在小卡片上使用上传的字体写下“红”。然后字体颜色设置为“红”。字体颜色和汉字必须一一对应。 204. 小卡片上的汉字大小为45px,同时每个汉字之间的间隔为10px。每行最多五个字。如果超过五个字则自动换行,同时行间距为20px。 205. 小卡片的背景颜色为灰黑色。 + 示例代码: Code block Python Copy 随机抽取五个不重复的颜色 selected colors = random.sample(list(color map.keys()), 5) 用户没有输入,默认汉字数量为10 characters count = 10 从抽取的五个颜色中随机抽取指定数量的汉字,确保每个汉字至少出现一次 如果汉字数量少于颜色数量,则只选取前n个颜色 if characters count < len(selected colors): selected colors = selected colors[:characters count] 确保每个颜色至少出现一次后,填充剩余位置 characters = random.choices(selected colors, k=characters count) 定义卡片大小和初始参数 card width = 285 char size = 45 汉字大小 char spacing = 10 汉字间隔 line spacing = 20 行间距 max chars per line = 5 每行最大汉字数 计算卡片高度 rows = (characters count + max chars per line 1) // max chars per line card height = rows char size + (rows 1) line spacing + 2 char spacing 增加顶部和底部间隔 创建带有背景颜色的卡片 card = Image.new("RGB", (card width, card height), " 333333") draw = ImageDraw.Draw(card) 加载字体 font path = "/mnt/data/今年也要加油鸭.ttf" font = ImageFont.truetype(font path, char size) 计算第一个汉字的起始位置 x = char spacing y = char spacing for index, character in enumerate(characters): 设置字体颜色 color = color map[character] 绘制汉字 draw.text((x, y), character, font=font, fill=color) 更新位置 if (index + 1) % max chars per line == 0: 换行 x = char spacing y += char size + line spacing else: 同行下一个位置 x += char size + char spacing Display the result card.show() Code block Python Copy from PIL import Image, ImageDraw, ImageFont import random Step 1: 随机抽取五个不重复的颜色的汉字 colors = ["红", "蓝", "黄", "绿", "橙", "紫", "粉", "黑", "白", "棕"] color codes = { "红": " ff0000", "蓝": " 0000ff", "黄": " ffff00", "绿": " 00ff00", "橙": " ffa400", "紫": " 9f1fef", "粉": " ffc0ca", "黑": " 000000", "白": " ffffff", "棕": " a42a2a" } 抽取五个不重复的颜色 selected colors = random.sample(colors, 5) 用户输入的汉字数量(这里假设为默认的10) num characters = 10 Step 2: 随机抽取汉字和汉字的颜色 characters = random.choices(selected colors, k=num characters) character colors = [random.choice(selected colors) for in range(num characters)] 加载字体 font path = '/mnt/data/今年也要加油鸭.ttf' font size = 45 font = ImageFont.truetype(font path, font size) 创建画布 card width = 285 card height = (font size + 20) ((num characters 1) // 5 + 1) + 20 根据汉字数量计算卡片高度 image = Image.new("RGB", (card width, card height), " 333333") draw = ImageDraw.Draw(image) 设置汉字的位置参数 x start, y start = 10, 10 起始位置 x offset = font size + 10 汉字间的横向间隔 y offset = font size + 20 行间距 Step 3 & 4: 在卡片上绘制汉字 for i, (char, color) in enumerate(zip(characters, character colors)): x = x start + (i % 5) x offset y = y start + (i // 5) y offset draw.text((x, y), char, font=font, fill=color codes[color]) Display the result image.show() Code block Markdown Copy Workflow: 1. 等待用户输入 获取用户想要是使用的模式 获取用户输入的[汉字数量],如果客户没有输入,则默认值为10 2. 根据用户输入的模式,调用对应[Model]中的模式 3. 每个[Model]执行结束后,必须展示一张图片给用户 Model: 认识颜色和汉字: 101. 首先展示图片给用户,让用户对照图片进行学习记忆,之后询问用户是否想要玩一个颜色和文字连线小游戏 102. 如果用户回复是则使用python运行"颜色汉字连线.py"的代码,生成一张python的小卡片,展示给用户 难度:简单(易) + 游戏规则:随机获取其中的五种颜色,使用颜色和汉字相同的方式,让孩子进行阅读。通过颜色和汉字一一对应的方式,尝试让孩子在脑海中形成记忆。 + 执行:利用Python制作一张宽度为285px的小卡片,步骤如下: 201. 从“红、蓝、黄、绿、橙、紫、粉、黑、白和棕”中随机抽取五个不重复的颜色。 202. 根据用户输入的汉字数量从所抽取的五个汉字中随机进行抽取[输入的汉字数量]次,确保每个汉字和汉字的字体颜色相同。注意:所抽取的每个汉字和颜色至少出现一次,如果用户没有输入则默认汉字数量为10 203. 比如抽到的字为红色则,在小卡片上使用上传的字体写下“红”。然后字体颜色设置为“红”。字体颜色和汉字必须一一对应。 204. 小卡片上的汉字大小为45px,同时每个汉字之间的间隔为10px。每行最多五个字。如果超过五个字则自动换行,同时行间距为20px。 205. 小卡片的背景颜色为灰黑色。 + 示例代码: 2、难度:简单(易) 生成卡片 3、难度:中等(中) 4、难度:困难(难) 生成卡片 四、GPTs 使用链接 https://chat.openai.com/g/g Jkx4WRx7u hai zi wang xi lie yan se yi zi you xi 五、总结 好啦,到这里就写完啦。因为时间有点赶,效果还有些小瑕疵需要调整。但整体思路和效果已经稳定下来了。 目前出图的时候显示不够稳定,大多数时候会给一个下载的链接。 其实我的内容大多是为了增进亲子互动,和孩子一起进行的小游戏。边玩边学才是最重要的。而亲子互动远远大于一切的所谓的教育方法论。如果连亲子互动的时间都没有又谈何教育呢 好啦,写到这里我们今天的内容也结束啦,感谢大家的观看,也希望我的内容能够让大家喜欢,有所收获。感兴趣的小伙伴可以点个关注跟随我一起学习,观看更多往期文章。 下次见,我是景淮,祝你有个开心美好的一天 You don't have permission to access this synced block. Please log in and try again. Log In 📗 嘿,大家好呀,我是景淮,一个加拿大的程序员,沉迷 AI 不能自拔中。 公众号: 景淮AI探索之旅 嘿,大家好呀,我是景淮,一个加拿大的程序员,沉迷 AI 不能自拔中。 公众号: 景淮AI探索之旅 一转眼,大家的假期也结束啦。新年期间,我一共发了三篇文章,包含两篇 中文学习 系列、一篇 孩子王 系列还有一篇关于我自我介绍和总结的文章。 身边的小伙伴们有很多 10 天没碰电脑了 所以也帮大家把文章的链接整理了一下,方便查看。链接如下: GPTs Action 实战:儿童汉语词典 GPTs Action 实战:儿童汉语词典 GPTs Action 实战: 制作成语小游戏 GPTs Action 实战: 制作成语小游戏 GPT Action 诗词大百科 GPT Action 诗词大百科 春节时期不打烊 持续输出新的内容给大家 好啦,现在让我们聊聊我们今天的主题。今天是我要更新孩子王系列内容的第 6 篇 GPT 制作彩色汉字小游戏 本文会根据以下内容顺序进行: • 需求分析 • 分步实现需求 • 提示词编写测试 • GPTs 使用链接 • 总结 一、需求分析 一)什么是彩色汉字小游戏 游戏如图所示: 1、彩色汉字 这个小游戏是一种认知挑战游戏,基于斯特鲁普效应设计,旨在测试和训练玩家的认知控制能力和注意力切换能力。游戏中展示的汉字是不同颜色名称的词语,但每个词语的呈现颜色与其实际意义不匹配。玩家的任务是忽略汉字的字面含义,而是要尽快准确地说出每个汉字的显示颜色。 2、对孩子的好处 1. 认知灵活性:认知灵活性是指个体在适应新的规则或环境时,从一个思维模式转换到另一个思维模式的能力。在这个游戏中,孩子需要忽略他们阅读汉字的自动反应,转而关注汉字的颜色,这有助于提高他们在遇到变化时适应和转换的能力。 2. 注意力控制:游戏要求孩子专注于特定的任务目标(汉字的颜色),而忽略干扰信息(汉字的字面意义)。这有助于提高孩子的注意力控制能力,即在众多信息中快速识别并专注于关键信息的能力。 3. 执行功能:执行功能是一系列高级认知过程,包括计划、决策、错误检测、冲动控制和任务切换等。这个游戏通过要求玩家同时处理相互冲突的信息(汉字的字面意义与颜色),促进了执行功能的发展。 4. 处理速度:玩家需要迅速识别颜色并做出反应,这种练习有助于提高孩子的信息处理速度。 5. 心理弹性:在游戏中,孩子可能会面临挑战和失败(如错误地说出汉字而不是颜色),这有助于他们学习如何在面对困难时保持尝试,并从错误中恢复。 二)游戏设计 游戏过程中我们可以为不同年龄的孩子设置三种不同的难度。("难"、“中”、“易”) 根据不同难度,每次可以从红色、蓝色、黄色、绿色、橙色、紫色、粉色、黑色、白色和棕色,十种颜色中随机选择生成不同的难度的游戏。 1、难度:简单(易) 随机获取其中的五种颜色,使用颜色和汉字相同的方式,让孩子进行阅读。通过颜色和汉字一一对应的方式,尝试让孩子在脑海中形成记忆。 如:"红色" = 红色 2、难度:中等(中) 随机获取其中的五种颜色,使用颜色和汉字不同的方式,让孩子根据 汉字 进行阅读。加深对汉字的含义的印象。 如: “红色” = 红色 3、难度:困难(难) 随机获取其中的五种颜色,使用 颜色和汉字随机匹配 的方式,让孩子根据 颜色 进行阅读。 如:“红色” = 黄色 4、生成的汉字数量 默认设定每次生成的汉字数量为 10 个,即 5 2,每行5个汉字,一共生成 2 排。 用户可以在选择难度的同时输入想要生成汉字的数量,但要求是 5 的倍数。 5、认识颜色和汉字 把十种颜色的汉字和颜色对应的卡片制作出来展示给小朋友,并提供一个可以连线练习的小游戏。 5、输出 使用 Python 绘制图片的方式,把对应难度的游戏内容书写在小卡片上。 三)需求整合 二、分步实现需求 一)认识颜色和汉字 首先,要制作一张颜色和汉字一一对应的卡片,这张卡片可以在后续使用中直接放在 Knowledge 中进行使用。并不需要重复的制作。 📌 提示词:使用 Python 帮我生成一张图片,这张图片中要实现中文颜色的汉字和对应的颜色一一对应起来。格式如下:一个长度为40px 宽度为10px的长方形,用红色进行填充。 后面对应汉字“红色”,依次生成“红色、蓝色、黄色、绿色、橙色、紫色、粉色、黑色、白色和棕色”十种颜色。同时每个颜色中间留出足够的空隙,不要挨得太近。放在同一张小卡片中,以供孩子学习。 提示词:使用 Python 帮我生成一张图片,这张图片中要实现中文颜色的汉字和对应的颜色一一对应起来。格式如下:一个长度为40px 宽度为10px的长方形,用红色进行填充。 后面对应汉字“红色”,依次生成“红色、蓝色、黄色、绿色、橙色、紫色、粉色、黑色、白色和棕色”十种颜色。同时每个颜色中间留出足够的空隙,不要挨得太近。放在同一张小卡片中,以供孩子学习。 当然我们也可以用 PS 等绘图软件进行制作,以个人方便的方式进行生成就好。 生成效果 每个颜色相对应的代码如下: • 红色 (Red): ff0000 • 蓝色 (Blue): 0000ff • 黄色 (Yellow): ffff00 • 绿色 (Green): 00ff00 • 橙色 (Orange): ffa400 • 紫色 (Purple): 9f1fef • 粉色 (Pink): ffc0ca • 黑色 (Black): 000000 • 白色 (White): ffffff • 棕色 (Brown): a42a2a 连线小游戏 提示词 📌 使用 Python 帮我生成一张图片。格式如下:一个长度为40px 宽度为10px的长方形,用红色进行填充。 然后依次生成“蓝色、黄色、绿色、橙色、紫色、粉色、黑色、白色和棕色”总共十种颜色。同时每个颜色中间留出足够的空隙,不要挨得太近。在每个颜色块的后面随机从十种颜色中选择一个写在长方形后面,中间保留30px间距。 给长方形增加一个1px的黑色边框,同时把所有内容居中 注意:每个颜色都只能使用一次,不能重复使用。放在同一张小卡片中,以供孩子学习。 使用 Python 帮我生成一张图片。格式如下:一个长度为40px 宽度为10px的长方形,用红色进行填充。 然后依次生成“蓝色、黄色、绿色、橙色、紫色、粉色、黑色、白色和棕色”总共十种颜色。同时每个颜色中间留出足够的空隙,不要挨得太近。在每个颜色块的后面随机从十种颜色中选择一个写在长方形后面,中间保留30px间距。 给长方形增加一个1px的黑色边框,同时把所有内容居中 注意:每个颜色都只能使用一次,不能重复使用。放在同一张小卡片中,以供孩子学习。 生成效果 代码实现 二)难度:简单(易) 提示词 📌 利用Python制作一张宽度为285px的小卡片,步骤如下: 利用Python制作一张宽度为285px的小卡片,步骤如下: 1. 从“红、蓝、黄、绿、橙、紫、粉、黑、白和棕”中随机抽取五个不重复的颜色。 2. 根据用户输入的汉字数量从所抽取的五个汉字中随机进行抽取[输入的汉字数量]次,确保每个汉字和汉字的字体颜色相同。注意:所抽取的每个汉字和颜色至少出现一次,如果用户没有输入则默认汉字数量为10 3. 比如抽到的字为红色则,在小卡片上使用上传的字体写下“红”。然后字体颜色设置为“红”。字体颜色和汉字必须一一对应。 4. 小卡片上的汉字大小为45px,同时每个汉字之间的间隔为10px。每行最多五个字。如果超过五个字则自动换行,同时行间距为20px。 5. 小卡片的背景颜色为灰黑色。 • 红 (Red): ff0000 • 蓝 (Blue): 0000ff • 黄 (Yellow): ffff00 • 绿 (Green): 00ff00 • 橙 (Orange): ffa400 • 紫 (Purple): 9f1fef • 粉 (Pink): ffc0ca • 黑 (Black): 000000 • 白 (White): ffffff • 棕 (Brown): a42a2a 效果展示 Python 代码 二)迭代后提示词 python from PIL import Image, ImageDraw, ImageFont import random 定义颜色与名称的映射 color map = { "红": " ff0000", "蓝": " 0000ff", "黄": " ffff00", "绿": " 00ff00", "橙": " ffa400", "紫": " 9f1fef", "粉": " ffc0ca", "黑": " 000000", "白": " ffffff", "棕": " a42a2a" } 随机抽取五个不重复的颜色 selected colors = random.sample(list(color map.keys()), 5) 用户没有输入,默认汉字数量为10 characters count = 10 从抽取的五个颜色中随机抽取指定数量的汉字,确保每个汉字至少出现一次 如果汉字数量少于颜色数量,则只选取前n个颜色 if characters count < len(selected colors): selected colors = selected colors[:characters count] 确保每个颜色至少出现一次后,填充剩余位置 characters = random.choices(selected colors, k=characters count) 定义卡片大小和初始参数 card width = 285 char size = 45 汉字大小 char spacing = 10 汉字间隔 line spacing = 20 行间距 max chars per line = 5 每行最大汉字数 计算卡片高度 rows = (characters count + max chars per line 1) // max chars per line card height = rows char size + (rows 1) line spacing + 2 char spacing 增加顶部和底部间隔 创建带有背景颜色的卡片 card = Image.new("RGB", (card width, card height), " 333333") draw = ImageDraw.Draw(card) 加载字体 font path = "/mnt/data/今年也要加油鸭.ttf" font = ImageFont.truetype(font path, char size) 计算第一个汉字的起始位置 x = char spacing y = char spacing for index, character in enumerat