【教学类-64-02】20240610色块眼力挑战(二)-2-25宫格色差10-100(10倍)(星火讯飞)

背景需求

以下的色块眼里挑战需要人工筛选图片,非常繁琐。

【教学类-64-01】20240607色块眼力挑战(一)-0-255随机底色-CSDN博客文章浏览阅读446次,点赞12次,收藏5次。【教学类-64-01】20240607色块眼力挑战(一)-0-255随机底色https://blog.csdn.net/reasonsummer/article/details/139522756?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22139522756%22%2C%22source%22%3A%22reasonsummer%22%7D

目前没有AI对话大师,无法用它写程序了。

因此在网络上搜索相关的代码,找到moyuweiqing的【Python小游戏】使用tkinter制作不同的找不同色块小游戏。

【Python小游戏】使用tkinter制作不同的找不同色块小游戏-CSDN博客文章浏览阅读377次。测一测你的色差情况_找不同色块https://blog.csdn.net/moyuweiqing/article/details/134263628

原作者代码

'''
作者:moyuweiqing
https://blog.csdn.net/moyuweiqing/article/details/134263628
'''from tkinter import *
from tkinter import messagebox
import numpy as np
import randomstart_grid_num = 2              # 开始的每行格子数
grid_num = start_grid_num       # 每次调用时候的每行格子数
size = 800                      # 画布的大小
margin = 2                      # 格子边缘大小
max_grid_num = 25               # 最大的每行格子数start_color_gap = 40            # 开始的色块差
min_color_gap = 5               # 最小色块差
color_gap = start_color_gap     # 每次调用时候的色块差
color_list = []                 # 颜色列表
each_size = 0                   # 每块格子的大小
A = np.full((grid_num, grid_num), 0)    # 矩阵score = 0                       # 计算分数def get_random_position(length):random_x = random.randint(0, length - 1)random_y = random.randint(0, length - 1)return random_x, random_ydef change_color_from_rgb(rgb):return "#%02x%02x%02x" % (rgb[0], rgb[1], rgb[2])def color_change():global color_list, color_gapcolor_list = []rgb_set1 = [random.randint(0, 255 - color_gap), random.randint(0, 255 - color_gap), random.randint(0, 255 - color_gap)]rgb_set2 = list((i + color_gap for i in rgb_set1))color_list.append(change_color_from_rgb(rgb_set1))color_list.append(change_color_from_rgb(rgb_set2))if color_gap > min_color_gap:color_gap -= 1def draw():global grid_num, each_size, AA = np.full((grid_num, grid_num), 0)each_size = size // grid_nums_x, s_y = get_random_position(grid_num)A[s_x][s_y] = -1canvas.delete('all')color_change()# 画方块for i in range(0, grid_num):for j in range(0, grid_num):if A[i][j] == 0:canvas.create_rectangle(i * each_size + margin, j * each_size + margin, (i + 1) * each_size - margin,(j + 1) * each_size - margin,fill=color_list[0])elif A[i][j] == -1:canvas.create_rectangle(i * each_size + margin, j * each_size + margin, (i + 1) * each_size - margin,(j + 1) * each_size - margin,fill=color_list[1])if grid_num < max_grid_num:grid_num += 1def if_right(x, y):global scorexx = x // each_sizeyy = y // each_sizeif A[xx][yy] == -1:score += 1return Trueelse:return Falsedef click(event):if if_right(event.x, event.y):draw()else:messagebox.showinfo('游戏结束!', '您的分数是:' + str(score))tk.destroy()if __name__ == '__main__':tk = Tk()tk.title('找不同色块')canvas = Canvas(tk, width=size, height=size, background='lightcyan')canvas.pack()draw()canvas.bind("<Button -1>", click)tk.mainloop()

存在问题:

我的电脑上始终无法安装tkinter,所以我不想做成TK界面小程序,只想要图片就行。

解决方式1——使用文心一言修改代码

但是源代码字母超过2000字符,没有办法完整输入代码,并写入需求

解决方式2——使用讯飞星火

讯飞星火是免费的,可以输入超过2000字的代码,并输入需求

成果展示:

通过对moyuweiqing的【Python小游戏】使用tkinter制作不同的找不同色块小游戏。代码的修改,实现了快速获得“2-25宫格”“色差从10-100”“题卡和答案”“导入PPT”四种需求

'''
目的:不同的找不同色块小游戏(从2宫格-25宫格,色差从10,20^100)有提卡和答案,从难度1-10(难度1就是色差100,难度10是色彩10)
图片导入PPT
原作者:moyuweiqing
https://blog.csdn.net/moyuweiqing/article/details/134263628
改编:星火讯飞,阿夏
时间:2024年6月9日
'''print('------1、图片和答案----------')
from PIL import Image, ImageDraw  # 导入PIL库中的Image和ImageDraw模块
import numpy as np  # 导入numpy库并简写为np
import random ,os # 导入random库path = r'C:\Users\jg2yXRZ\OneDrive\桌面\辨认色彩图'
new_path=path+r'\01样式'  # 图片保存路径
os.makedirs(new_path,exist_ok=True)z=1                             # 份数
start_grid_num = 2              # 开始的每行格子数
grid_num = start_grid_num       # 每次调用时候的每行格子数
size = 800                      # 画布的大小
margin = 2                      # 格子边缘大小
max_grid_num = 25             # 最大的每行格子数# 色块颜色差
color_start=10                  # 起始的色块值(最小)
color_end=100              # 结束的色块值(最大)
color_gap=10                    # 最大最小色块值的间隔数量 如10个数字一次# 开始的色块差,10的色块与其他底色相同,看不清清除,,100数字越大,对比越清晰,看的清除
start_color_gap = list(range(color_start,color_end+color_start, color_gap))    
# start_color_gap = list(range(100, 0, -10))      # 为了从简单(100)到难(10),数字翻过来# 难度,从色块颜色差里提取
nd=list(range(int(color_end/color_gap),int(color_start/color_gap)-1,-int(color_gap/color_gap)))
# (10,0,-1)# start_color_gap = list(range(100, 0, -10))      # 为了从简单(100)到难(10),数字翻过来
print(start_color_gap)
min_color_gap = 5               # 最小色块差
color_list = []                 # 颜色列表
each_size = 0                   # 每块格子的大小
A = np.full((grid_num, grid_num), 0)    # 矩阵
max_color_gap = 25  def get_random_position(length):random_x = random.randint(0, length - 1)  # 随机生成x坐标random_y = random.randint(0, length - 1)  # 随机生成y坐标return random_x, random_ydef change_color_from_rgb(rgb):return "#%02x%02x%02x" % (rgb[0], rgb[1], rgb[2])  # 将RGB颜色转换为十六进制颜色def color_change():global color_list, color_gapcolor_list = []  # 清空颜色列表rgb_set1 = [random.randint(0, 255 - color_gap), random.randint(0, 255 - color_gap), random.randint(0, 255 - color_gap)]  # 生成第一个颜色的RGB值rgb_set2 = list((i + color_gap for i in rgb_set1))  # 生成第二个颜色的RGB值color_list.append(change_color_from_rgb(rgb_set1))  # 将第一个颜色添加到颜色列表中color_list.append(change_color_from_rgb(rgb_set2))  # 将第二个颜色添加到颜色列表中if color_gap > min_color_gap:color_gap -= 1  # 如果当前颜色间隔大于最小颜色间隔,则减小颜色间隔if __name__ == '__main__': for aa in range(z):    # 每个宫格2张for zz in range(len(start_color_gap)): start_grid_num = 2              # 开始的每行格子数grid_num = start_grid_num       # 每次调用时候的每行格子数   for yy in range(start_grid_num, max_grid_num + 1): color_gap = start_color_gap[zz]print(color_gap)A = np.full((grid_num, grid_num), 0)  # 重置二维数组each_size = size // grid_num  # 计算每个网格的尺寸s_x, s_y = get_random_position(grid_num)  # 获取随机位置A[s_x][s_y] = -1  # 将随机位置的值设为-1img1 = Image.new('RGB', (size, size), 'lightcyan')  # 创建一个新的图片对象img2 = Image.new('RGB', (size, size), 'lightcyan')  # 创建一个新的图片对象draw1 = ImageDraw.Draw(img1)  # 创建一个绘图对象draw2 = ImageDraw.Draw(img2)  # 创建一个绘图对象color_change()  # 改变颜色for i in range(0, grid_num):for j in range(0, grid_num):if A[i][j] == 0:draw1.rectangle([i * each_size + margin, j * each_size + margin, (i + 1) * each_size - margin, (j + 1) * each_size - margin], fill=color_list[0])  # 绘制矩形并填充颜色draw2.rectangle([i * each_size + margin, j * each_size + margin, (i + 1) * each_size - margin, (j + 1) * each_size - margin], fill=color_list[0])  # 绘制矩形并填充颜色elif A[i][j] == -1:draw1.rectangle([i * each_size + margin, j * each_size + margin, (i + 1) * each_size - margin, (j + 1) * each_size - margin], fill=color_list[1])  # 绘制矩形并填充颜色draw2.rectangle([i * each_size + margin, j * each_size + margin, (i + 1) * each_size - margin, (j + 1) * each_size - margin], fill=color_list[1], outline='white', width=10)  # 绘制矩形并填充颜色,添加黑色边框if grid_num <= max_grid_num:grid_num += 1  # 如果当前网格数量小于最大网格数量,则增加网格数量img1.save(new_path+fr'\难度{nd[zz]:02d}色彩间距{start_color_gap[zz]:03d}色块差{min_color_gap:03d}格子数{grid_num-1:02d}_01试题.png')  # 保存图片img2.save(new_path+fr'\难度{nd[zz]:02d}色彩间距{start_color_gap[zz]:03d}色块差{min_color_gap:03d}格子数{grid_num-1:02d}_02答案.png')  # 保存图片print('------2、导入PPT----------')import os
from pptx import Presentation
from pptx.util import Inches# 创建一个新的PPT文件
ppt = Presentation()# 设置PPT页面大小为800x800
ppt.slide_width = Inches(8)
ppt.slide_height = Inches(8)# 获取123文件夹中的所有图片文件
image_folder = new_path
image_files = [f for f in os.listdir(image_folder) if f.endswith(('.png', '.jpg', '.jpeg', '.gif'))]# 将图片批量导入到PPT中
for image_file in image_files:slide = ppt.slides.add_slide(ppt.slide_layouts[6])  # 添加一个空白幻灯片img_path = os.path.join(image_folder, image_file)left, top, width, height = Inches(0), Inches(0), Inches(8), Inches(8)slide.shapes.add_picture(img_path, left, top, width, height)# 保存PPT文件
ppt.save(path+fr'\01色块小游戏(每种{z}张{start_grid_num}-{max_grid_num}).pptx')import shutil
shutil.rmtree(new_path)

结果展示

以下是难度1,最简单的,色差100,所以看起来对比明显,最小色差5,从2宫格-25宫格,每个宫格有试题和答案两张

以下是难度10,最难的,色差10,几乎看不出色彩差异,最小色差5,从2宫格-25宫格,每个宫格有试题和答案两张

把所有2宫格图像提取出来,可以看,色差越大(100),辨认难度越小,所以放在难度是1,色差越小(10)辨认难度越高(几乎与周边颜色相同),所以难度10。

图片放大看,

这样生成速度很快。一共480图,实际240图

保存为PPT。

视频展示

202406106色块小游戏

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/353092.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Playwright工作原理

执行test时&#xff0c;有哪些关键步骤 当我们用Playwright编写一段简单的test script&#xff0c;代码如下所示&#xff1a;在test case中第一段代码就是await page.goto(xxxxx) import { test, expect } from playwright/test;test(test, async ({ page }) > {await page…

【Windows】配置Flutter开发环境

一、下载 flutter sdk 点此跳至下载官网 下载好flutter sdk&#xff0c;并解压到自定义的位置。 二、配置环境变量 此电脑 --> 右键 选择 属性 --> 点击 高级系统设置 --> 会弹出系统属性的窗口&#xff0c;点击 环境变量 按钮 1.配置加速镜像地址 PUB_HOSTED_…

为啥找对象千万别找大厂男,还好我不是大厂的。。

网上看到一大厂女员工发文说&#xff1a;找对象千万别找大厂男&#xff0c;理由说了一大堆&#xff0c;无非就是大厂男为了逃避带娃&#xff0c;以加班为由宁愿在工位上玩游戏也不愿回家。当然这种观点有的人赞同有的人反对。 网友精彩评论&#xff1a; --------------下面是今…

Python武器库开发-武器库篇之链接提取器(六十)

Python武器库开发-武器库篇之链接提取器&#xff08;六十&#xff09; 链接提取器介绍 链接提取器&#xff08;Link Extractor&#xff09;是一种用于从网页中提取链接的工具。它可以从网页的源代码中识别出所有的链接&#xff0c;并将这些链接提取出来。链接提取器可以用于各…

Maya 白膜渲染简单教程

零基础渲染小白&#xff0c;没关系&#xff0c;一篇超简单教程带你学会渲染白膜。 先打开Maya&#xff0c;看看面板有没有渲染器&#xff0c;这里以Arnold为主。 要是没有这个&#xff0c;就去找插件管理器&#xff0c; Arnold的是mtoa&#xff0c;在搜索栏搜&#xff0c;然后把…

打造精致UI界面:字体设计的妙招

字体设计是UI设计的关键模块之一。字体设计是否有效可能直接实现或破坏整个UI界面。那么&#xff0c;界面设计的字体设计有哪些规范呢&#xff1f;如何设计细节字体&#xff1f;本文将解释字体设计规范的可读性、可读性和可用性&#xff0c;并介绍UI界面中的字体设计技巧。 如…

02-ES6新语法

1. ES6 Proxy与Reflect 1.1 概述 Proxy 与 Reflect 是 ES6 为了操作对象引入的 API 。 Proxy 可以对目标对象的读取、函数调用等操作进行拦截&#xff0c;然后进行操作处理。它不直接操作对象&#xff0c;而是像代理模式&#xff0c;通过对象的代理对象进行操作&#xff0c;…

功能测试的内容与目的是什么?

在软件开发与测试过程中&#xff0c;功能测试是不可或缺的关键步骤&#xff0c;它主要关注软件产品是否能够按照设计规格和用户需求实现预定的功能。功能测试的内容与目的&#xff0c;简单来讲&#xff0c;就是验证软件的各种特性和功能是否正确、完整且符合预期&#xff0c;确…

docker 中 File Sharing 和Volumes 的区别

在 Docker 中&#xff0c;File Sharing 和 Volumes 都涉及到将文件和目录从主机系统映射到容器中&#xff0c;但它们的用途和实现方式有一些重要的区别&#xff1a; 一、简介 File Sharing 是 Docker Desktop 在 Windows 和 macOS 上的一项功能&#xff0c;允许你将主机文件系…

API-操作元素内容

学习目标&#xff1a; 掌握操作元素内容 学习内容&#xff1a; 操作元素内容元素innerText属性元素innerHTML属性案例 操作元素内容&#xff1a; DOM对象都是根据标签生成的&#xff0c;所以操作标签&#xff0c;本质上就是操作DOM对象。就是操作对象使用的点语法。如果想要修…

开源的数字孪生平台

欧洲对工业4.0的追求体现在三个方面&#xff1a; 数字孪生、智能制造和万物互联。 资助2440万欧元的开源数字孪生平台 源代码&#xff1a; http://www.gitpp.com/ccdan/dpqq-digital-twins 这套数字孪生是工业4.0整体规划中的中的一项技术&#xff0c;实现了一种称为“数字…

正则表达式常用表示

视频教程&#xff1a;10分钟快速掌握正则表达式 正则表达式在线测试工具&#xff08;亲测好用&#xff09;&#xff1a;测试工具 正则表达式常用表示 限定符 a*&#xff1a;a出现0次或多次a&#xff1a;a出现1次或多次a?&#xff1a;a出现0次或1次a{6}&#xff1a;a出现6次a…

UE4_材质_雨滴涟漪效果ripple effect_ben教程

学习笔记&#xff0c;不喜勿喷&#xff01;侵权立删&#xff0c;祝愿生活越来越好&#xff01; 雨水落下时会产生这些非常漂亮的同心环波纹&#xff0c;我们要做的第一件事是创建一个单个的圆环遮罩动画&#xff0c;我们希望环在开始的时候在中心很小&#xff0c;然后放大&…

论文发表CN期刊《高考》是什么级别的刊物?

论文发表CN期刊《高考》是什么级别的刊物&#xff1f; 《高考》是由吉林省长春出版社主管并主办的省级教育类期刊&#xff0c;期刊以科教兴国战略为服务宗旨&#xff0c;专门反映和探索国内外教育教学和科研实践的最新成果。该期刊致力于为广大教育工作者提供一个高质量的学术…

Docker部署常见应用之SFTP服务器

文章目录 简介Dockers部署单用户多用户用户信息加密使用SSH密钥认证 参考文章 简介 atmoz/sftp 是一个基于 Docker 的 SFTP 服务镜像&#xff0c;它使用 OpenSSH 来提供 SFTP 服务。这个镜像支持创建单个或多个用户的 SFTP 访问&#xff0c;并允许用户通过 SFTP 协议安全地共享…

CAN总线仲裁(四)

​ 多设备同时发送遇到的问题 CAN总线只有一对差分信号线&#xff0c;同一时间只能有一个设备操作总线发送数据&#xff0c;若多个设备同时有发送需求&#xff0c;该如何分配总线资源&#xff1f; 解决问题的思路&#xff1a;制定资源分配规则&#xff0c;依次满足多个设备的…

空气质量预报模式系统WRF-CMAQ

空气污染问题日益受到各级政府以及社会公众的高度重视&#xff0c;从实时的数据监测公布到空气质量数值预报及预报产品的发布&#xff0c;我国在空气质量监测和预报方面取得了一定进展。随着计算机技术的高速发展、空气污染监测手段的提高和人们对大气物理化学过程认识的深入&a…

【vue大作业-端午节主题网站】【预览展示视频和详细文档】

vue大作业-端午节主题网站介绍 端午节&#xff0c;又称为龙舟节&#xff0c;是中国的传统节日之一&#xff0c;每年农历五月初五庆祝。这个节日不仅是纪念古代爱国诗人屈原的日子&#xff0c;也是家人团聚、共享美食的时刻。今天&#xff0c;我们非常高兴地分享一个以端午节为…

高压防触碰预警装置,工期重要还是命重要?

“说了多少遍了&#xff0c;不要在高压线下赶工期”吊车违规施工碰撞到高压线&#xff0c;导致供电线路跳闸停电事故&#xff0c;现场火花四溅及其危险&#xff0c; 高压线路被外力破坏的情况&#xff0c;违规施工、赶工期、视觉盲区导致线路外破等情况&#xff0c;想必大家也…

基于STM32的简易智能家居设计(嘉立创支持)

一、项目功能概述 1、OLED显示温湿度、空气质量&#xff0c;并可以设置报警阈值 2、设置4个继电器开关&#xff0c;分别控制灯、空调、开关、风扇 3、设计一个离线语音识别系统&#xff0c;可以语音控制打开指定开关、并且可以显示识别命令词到OLED屏上 4、OLED实时显示&#…