【教学类-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)start_grid_num = 2              # 开始的每行格子数
grid_num = start_grid_num       # 每次调用时候的每行格子数
size = 800                      # 画布的大小
margin = 2                      # 格子边缘大小
max_grid_num = 25               # 最大的每行格子数# 难度
nd=list(range(10,0,-1))
print(nd)start_color_gap = list(range(10,110, 10))      # 开始的色块差,10的色块与其他底色相同,看不清清除,,100数字越大,对比越清晰,看的清除
# 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 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+r'\色块小游戏.pptx')

结果展示

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

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

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

图片放大看,

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

保存为PPT。

视频展示

202406106色块小游戏

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

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

相关文章

Linux安装Docker | 使用国内镜像

环境 CentOS7 先确认能够上网 curl www.baidu.com返回该输出说明网络OK 步骤一&#xff1a;安装gcc 和 gcc-c yum -y install gccyum -y install gcc-c步骤二&#xff1a;安装Docker仓库 yum install -y yum-utils接下来配置yum的国内镜像 yum-config-manager --add-re…

tomcat服务器之maxHttpHeaderSize

背景&#xff1a;在OA流程表单中&#xff0c;填写了200条数据&#xff0c;一提交&#xff0c;秒报400错误&#xff0c;且请求没有打到后端中&#xff08;无报错日志&#xff09;&#xff0c;一开始以为是谷歌浏览器的问题&#xff0c;可百度上关于这个错误的解决方案都是清除缓…

转让北京劳务分包地基基础施工资质条件和流程

地基基础资质转让流程是怎样的?对于企业来说&#xff0c;资质证书不仅是实力的证明&#xff0c;更是获得工程承包的前提。而在有了资质证书后&#xff0c;企业才可以安心的准备工程投标&#xff0c;进而在工程竣工后获得收益。而对于从事地基基础工程施工的企业&#xff0c;需…

特种设备起重机指挥题库附答案

1、【多选题】力的三要素是指:( )。(ACD) A、力的大小 B、力的单位 C、力的方向 D、力的作用点 2、【多选题】司索作业规范正确的要求是( )(ABC) A、吊点正确 B、吊索挂设合理 C、绑扎牢靠 D、吊索长短一致 3、【多选题】圆柱形物体兜吊时&#xff0c;一定要放空圈&#…

【python】python GUI编程--tkinter模块初探

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

Keil软件仿真的使用

一、软件的初始化设置 初始设置可以按照下图&#xff0c;这里我使用的是STM32F103C8T6&#xff0c;所以单片机型号为STM32F103C8&#xff0c;这个设置在Debug目录下。然后进行时钟的设置&#xff0c;我们板上晶振为8M&#xff0c;这里将时钟改为8. 或许有人想问如果是别的型号单…

Effective Java 1 用静态工厂方法代替构造器

知识点上本书需要会Java语法和lang、util、io库&#xff0c;涉及concurrent和function包。 内容上主要和设计模式相关&#xff0c;代码风格力求清晰简洁&#xff0c;代码尽量复用&#xff0c;组件尽量少依赖&#xff0c;错误尽早发现。 第1个经验法则&#xff1a;用静态工厂方…

Chroium 源码目录结构分析(1):源码目录体积一栏

获取源码 首先&#xff0c;我们拉一份最新的源代码&#xff08;笔者是2024.6.6日拉取的&#xff09;&#xff1a; fetch --nohistory chromium 源码预处理 如果运行build&#xff0c;会生成许多生成的代码&#xff0c;因此我们不运行build。 然后&#xff0c;把干扰后续分析…

sqlilabs靶场安装

05-sqllabs靶场安装 1 安装 1 把靶场sqli-labs-master.zip上传到 /opt/lampp/htdocs 目录下 2 解压缩 unzip sqli-labs-master.zip3 数据库配置 找到配置文件,修改数据库配置信息 用户名密码&#xff0c;修改为你lampp下mysql的用户名密码&#xff0c;root/123456host:la…

贪吃蛇双人模式设计(2)

敲上瘾-CSDN博客控制台程序设置_c语言控制程序窗口大小-CSDN博客贪吃蛇小游戏_贪吃蛇小游戏csdn-CSDN博客​​​​​​​ 一、功能实现&#xff1a; 玩家1使用↓ → ← ↑按键来操作蛇的方向&#xff0c;使用右Shift键加速&#xff0c;右Ctrl键减速玩家2使用W A S D按键来操…

matlab演示地月碰撞

代码 function EarthMoonCollisionSimulation()% 初始化参数earth_radius 6371; % 地球半径&#xff0c;单位&#xff1a;公里moon_radius 1737; % 月球半径&#xff0c;单位&#xff1a;公里distance 384400; % 地月距离&#xff0c;单位&#xff1a;公里collision_tim…

Astar路径规划算法复现-python实现

# -*- coding: utf-8 -*- """ Created on Fri May 24 09:04:23 2024"""import os import sys import math import heapq import matplotlib.pyplot as plt import time 传统A*算法 class Astar:AStar set the cost heuristics as the priorityA…

Kafka集成flume

1.flume作为生产者集成Kafka kafka作为flume的sink&#xff0c;扮演消费者角色 1.1 flume配置文件 vim $kafka/jobs/flume-kafka.conf # agent a1.sources r1 a1.sinks k1 a1.channels c1 c2# Describe/configure the source a1.sources.r1.type TAILDIR #记录最后监控文件…

基于python-CNN深度学习的水瓶是否装满水识别-含数据集+pyqt界面

代码下载地址&#xff1a; https://download.csdn.net/download/qq_34904125/89374853 本代码是基于python pytorch环境安装的。 下载本代码后&#xff0c;有个requirement.txt文本&#xff0c;里面介绍了如何安装环境&#xff0c;环境需要自行配置。 或可直接参考下面博文…

绘唐2.5一键追爆款2.5免费版

免费分享给您 小说推文工具是一种用于在社交媒体上宣传和推广小说的工具。它可以帮助作者将小说的内容和相关信息以推文的形式快速发布在各种社交媒体平台上&#xff0c;吸引读者的注意力并增加小说的曝光度。 以下是一些小说推文工具可能具备的功能&#xff1a; 1. 编辑和排…

【linux】进程控制——进程创建,进程退出,进程等待

个人主页&#xff1a;东洛的克莱斯韦克-CSDN博客 祝福语&#xff1a;愿你拥抱自由的风 相关文章 【Linux】进程地址空间-CSDN博客 【linux】详解linux基本指令-CSDN博客 目录 进程控制概述 创建子进程 fork函数 父子进程执行流 原理刨析 常见用法 出错原因 进程退出 概…

MyBatis-Plus学习总结

一.快速入门 (一)简介 MyBatis-Plus (opens new window)&#xff08;简称 MP&#xff09;是一个 MyBatis (opens new window) 的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为简化开发、提高效率而生。 (二)快速入门 1.准备数据库脚本 2.准备bo…

六、Docker Swarm、Docker Stack和Portainer的使用

六、Docker swarm和Docker stack的使用 系列文章目录1.Docker swarm1.简介2.docker swarm常用命令3.docker node常用命令4.docker service常用命令5.实战案例6.参考文章 2.Docker stack1.简介3.Docker stack常用命令4.实战案例5.常见问题及调错方式1.查看报错信息并尝试解决&am…

SpringBootWeb 篇-深入了解 Redis 五种类型命令与如何在 Java 中操作 Redis

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 Redis 概述 1.1 Redis 下载与安装 2.0 Redis 数据类型 3.0 Redis 常见五种类型的命令 3.1 字符串操作命令 3.2 哈希操作命令 3.3 列表操作命令 3.4 集合操作命令 …

7-43 排列问题

排列问题 分数 10 全屏浏览 切换布局 作者 雷丽兰 单位 宜春学院 全排列问题 输出自然数1至n中n个数字的全排列&#xff08;1≤n≤9&#xff09;&#xff0c;要求所产生的任一数字序列中不允许出现重复的数字。 输入格式: 一个自然数 输出格式: 由1到n中n个数字组成的…