第二篇【传奇开心果微博系列】Python微项目技术点案例示例:成语接龙游戏

传奇开心果微博系列

  • 系列微博目录
    • Python微项目技术点案例示例系列
  • 微博目录
    • 一、微项目目标
    • 二、雏形示例代码
    • 三、扩展整体思路
    • 四、玩家输入示例代码
    • 五、成语判断示例代码
    • 六、回答判断示例代码
    • 七、电脑判断示例代码
    • 八、游戏结束示例代码
    • 九、界面优化示例代码
    • 十、扩展成语库示例代码
    • 十一、音效和动画效果示例代码

系列微博目录

Python微项目技术点案例示例系列

微博目录

一、微项目目标

在这里插入图片描述使用Pygame实现成语接龙小游戏微项目示例代码。

二、雏形示例代码

在这里插入图片描述下面是一个使用Pygame实现的简单成语接龙游戏示例代码:

import pygame
import random# 初始化Pygame
pygame.init()# 游戏窗口尺寸
WIDTH = 800
HEIGHT = 600# 定义颜色
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)# 创建游戏窗口
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("成语接龙游戏")# 加载背景图片
background = pygame.image.load("background.jpg")
background = pygame.transform.scale(background, (WIDTH, HEIGHT))# 加载字体
font = pygame.font.Font(None, 36)# 成语列表
idioms = ["一马当先", "人山人海", "一心一意", "自由自在", "一举两得", "千军万马", "一鸣惊人", "百年好合"]# 当前成语
current_idiom = random.choice(idioms)# 游戏主循环
running = True
while running:# 处理事件for event in pygame.event.get():if event.type == pygame.QUIT:running = False# 绘制背景screen.blit(background, (0, 0))# 绘制当前成语text = font.render("当前成语:" + current_idiom, True, BLACK)screen.blit(text, (50, 50))# 更新显示pygame.display.flip()# 退出游戏
pygame.quit()

这个示例代码创建了一个简单的成语接龙游戏窗口,加载了背景图片,并显示了当前的成语。

三、扩展整体思路

在这里插入图片描述要扩展这个成语接龙游戏的整体思路,可以考虑以下几个方面:

  1. 玩家输入: 让玩家能够输入成语作为回答。可以使用Pygame的文本输入功能,让玩家在游戏窗口中输入成语。

  2. 成语判断: 在玩家输入成语后,需要判断该成语是否符合接龙规则。可以使用成语库或者在线成语接口来验证成语的合法性,确保玩家输入的成语是有效的。

  3. 回答判断: 在判断成语合法后,需要判断该成语是否符合接龙规则,即是否与上一个成语的最后一个字相同。可以编写函数来进行判断,并给出相应的提示。

  4. 电脑回答: 可以编写一个电脑回答的函数,让电脑自动选择一个合适的成语作为回答。

  5. 游戏结束: 当玩家或电脑无法回答时,游戏结束。可以根据具体规则判断胜负,或者设置一个时间限制,超过时间限制则游戏结束。

  6. 界面优化: 可以对游戏界面进行美化和优化,比如添加背景音乐、按钮和菜单等,增加游戏的可玩性和用户体验。

  7. 成语扩展: 可以考虑扩展成语库,增加更多的成语,以提高游戏的趣味性和挑战性。

根据以上思路,你可以逐步完善游戏的功能和规则,使成语接龙游戏更加完整和有趣。

四、玩家输入示例代码

在这里插入图片描述以下是一个使用Pygame实现玩家输入成语的示例代码:

import pygame
import random# 初始化Pygame
pygame.init()# 游戏窗口尺寸
WIDTH = 800
HEIGHT = 600# 定义颜色
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)# 创建游戏窗口
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("成语接龙游戏")# 加载字体
font = pygame.font.Font(None, 36)# 成语列表
idioms = ["一马当先", "人山人海", "一心一意", "自由自在", "一举两得", "千军万马", "一鸣惊人", "百年好合"]# 当前成语
current_idiom = random.choice(idioms)# 玩家输入
player_input = ""# 游戏主循环
running = True
while running:# 处理事件for event in pygame.event.get():if event.type == pygame.QUIT:running = Falseelif event.type == pygame.KEYDOWN:if event.key == pygame.K_RETURN:# 玩家按下回车键,判断成语是否合法if player_input and player_input[-1] == current_idiom[-1]:# 成语合法,更新当前成语,并清空玩家输入current_idiom = player_inputplayer_input = ""else:# 成语不合法,给出提示print("成语不合法!")elif event.key == pygame.K_BACKSPACE:# 玩家按下退格键,删除最后一个字符player_input = player_input[:-1]else:# 玩家输入字符player_input += event.unicode# 绘制当前成语screen.fill(WHITE)text = font.render("当前成语:" + current_idiom, True, BLACK)screen.blit(text, (50, 50))# 绘制玩家输入input_text = font.render("玩家输入:" + player_input, True, BLACK)screen.blit(input_text, (50, 100))# 更新显示pygame.display.flip()# 退出游戏
pygame.quit()

在这个示例代码中,我们添加了玩家输入的功能。玩家可以在游戏窗口中输入成语,并按下回车键来提交输入。如果输入的成语与当前成语的最后一个字相同,则更新当前成语,并清空玩家输入。如果输入的成语不合法,则给出相应的提示。玩家可以使用退格键来删除最后一个字符。

五、成语判断示例代码

在这里插入图片描述以下是一个使用在线成语接口验证成语合法性的示例代码:

import pygame
import requests# 初始化Pygame
pygame.init()# 游戏窗口尺寸
WIDTH = 800
HEIGHT = 600# 定义颜色
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)# 创建游戏窗口
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("成语接龙游戏")# 加载字体
font = pygame.font.Font(None, 36)# 成语列表
idioms = ["一马当先", "人山人海", "一心一意", "自由自在", "一举两得", "千军万马", "一鸣惊人", "百年好合"]# 当前成语
current_idiom = random.choice(idioms)# 玩家输入
player_input = ""# 验证成语合法性的函数
def validate_idiom(idiom):url = "http://api.avatardata.cn/ChengYu/Search?key=your_api_key&id={}".format(idiom)response = requests.get(url)data = response.json()if data["error_code"] == 0 and data["result"]:return Trueelse:return False# 游戏主循环
running = True
while running:# 处理事件for event in pygame.event.get():if event.type == pygame.QUIT:running = Falseelif event.type == pygame.KEYDOWN:if event.key == pygame.K_RETURN:# 玩家按下回车键,判断成语是否合法if player_input and player_input[-1] == current_idiom[-1] and validate_idiom(player_input):# 成语合法,更新当前成语,并清空玩家输入current_idiom = player_inputplayer_input = ""else:# 成语不合法,给出提示print("成语不合法!")elif event.key == pygame.K_BACKSPACE:# 玩家按下退格键,删除最后一个字符player_input = player_input[:-1]else:# 玩家输入字符player_input += event.unicode# 绘制当前成语screen.fill(WHITE)text = font.render("当前成语:" + current_idiom, True, BLACK)screen.blit(text, (50, 50))# 绘制玩家输入input_text = font.render("玩家输入:" + player_input, True, BLACK)screen.blit(input_text, (50, 100))# 更新显示pygame.display.flip()# 退出游戏
pygame.quit()

在这个示例代码中,我们使用了一个在线成语接口来验证玩家输入的成语是否合法。validate_idiom 函数会向接口发送请求,并根据返回的数据判断成语是否合法。你需要将 your_api_key 替换为你自己的API密钥。

请注意,这只是一个示例,实际使用时你可能需要根据接口的返回数据进行适当的处理和错误处理。另外,你也可以使用本地的成语库或其他成语验证方法来验证成语的合法性。

六、回答判断示例代码

在这里插入图片描述以下是一个示例代码,用于判断玩家输入的成语是否符合接龙规则:

import pygame
import requests# 初始化Pygame
pygame.init()# 游戏窗口尺寸
WIDTH = 800
HEIGHT = 600# 定义颜色
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)# 创建游戏窗口
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("成语接龙游戏")# 加载字体
font = pygame.font.Font(None, 36)# 成语列表
idioms = ["一马当先", "人山人海", "一心一意", "自由自在", "一举两得", "千军万马", "一鸣惊人", "百年好合"]# 当前成语
current_idiom = random.choice(idioms)# 玩家输入
player_input = ""# 验证成语合法性的函数
def validate_idiom(idiom):url = "http://api.avatardata.cn/ChengYu/Search?key=your_api_key&id={}".format(idiom)response = requests.get(url)data = response.json()if data["error_code"] == 0 and data["result"]:return Trueelse:return False# 判断成语是否符合接龙规则的函数
def is_valid_idiom(idiom):if idiom and idiom[0] == current_idiom[-1]:return Trueelse:return False# 游戏主循环
running = True
while running:# 处理事件for event in pygame.event.get():if event.type == pygame.QUIT:running = Falseelif event.type == pygame.KEYDOWN:if event.key == pygame.K_RETURN:# 玩家按下回车键,判断成语是否合法并符合接龙规则if player_input and validate_idiom(player_input) and is_valid_idiom(player_input):# 成语合法且符合接龙规则,更新当前成语,并清空玩家输入current_idiom = player_inputplayer_input = ""else:# 成语不合法或不符合接龙规则,给出相应的提示if not player_input:print("请输入成语!")elif not is_valid_idiom(player_input):print("成语不符合接龙规则!")elif event.key == pygame.K_BACKSPACE:# 玩家按下退格键,删除最后一个字符player_input = player_input[:-1]else:# 玩家输入字符player_input += event.unicode# 绘制当前成语screen.fill(WHITE)text = font.render("当前成语:" + current_idiom, True, BLACK)screen.blit(text, (50, 50))# 绘制玩家输入input_text = font.render("玩家输入:" + player_input, True, BLACK)screen.blit(input_text, (50, 100))# 更新显示pygame.display.flip()# 退出游戏
pygame.quit()

在上述代码中,我们添加了一个名为 is_valid_idiom 的函数,用于判断玩家输入的成语是否符合接龙规则。该函数检查玩家输入的成语是否为空,并且判断玩家输入的成语的第一个字是否与当前成语的最后一个字相同。如果成语符合接龙规则,则更新当前成语,并清空玩家输入;否则,给出相应的提示。

请注意,这只是一个示例,你可以根据自己的需求进行修改和扩展。例如,你可以添加更多的成语验证规则,或者修改提示的方式(例如在游戏窗口中显示提示信息)。

七、电脑判断示例代码

在这里插入图片描述

以下是一个示例代码,用于让电脑自动选择一个合适的成语作为回答:

import random# 电脑回答的函数
def computer_answer():available_idioms = [idiom for idiom in idioms if idiom[0] == current_idiom[-1]]if available_idioms:return random.choice(available_idioms)else:return None# 游戏主循环
running = True
while running:# 处理事件for event in pygame.event.get():# ...# ...# 电脑回答computer_idiom = computer_answer()if computer_idiom:# 成功选择一个合适的成语作为回答current_idiom = computer_idiomelse:# 无法找到合适的成语作为回答,游戏结束print("电脑无法回答,游戏结束!")running = False# ...# ...

在上述代码中,我们添加了一个名为 computer_answer 的函数,用于让电脑自动选择一个合适的成语作为回答。该函数首先筛选出所有以当前成语最后一个字开头的成语,然后从中随机选择一个成语作为回答。如果找不到合适的成语作为回答,则游戏结束。

你可以将 computer_answer 函数放在游戏主循环的适当位置,以便在玩家输入后调用该函数来获取电脑的回答。然后,根据电脑的回答更新当前成语,并进行相应的处理(例如判断游戏是否结束)。

请注意,这只是一个示例,你可以根据自己的需求进行修改和扩展。例如,你可以根据不同的策略选择电脑的回答,或者在电脑回答后添加额外的逻辑(例如判断电脑回答是否合法)。

八、游戏结束示例代码

在这里插入图片描述

以下是一个示例代码,添加了游戏结束的判断和时间限制:

import time# 游戏时间限制(单位:秒)
time_limit = 60
start_time = time.time()# 游戏主循环
running = True
while running:# 处理事件for event in pygame.event.get():# ...# ...# 判断玩家回答if player_input:if is_valid_idiom(player_input):if player_input[0] == current_idiom[-1]:current_idiom = player_inputplayer_input = ""else:print("玩家回答不符合接龙规则!")else:print("玩家回答不是有效的成语!")# 判断电脑回答computer_idiom = computer_answer()if computer_idiom:current_idiom = computer_idiomelse:print("电脑无法回答,游戏结束!")running = False# 判断游戏是否结束if time.time() - start_time > time_limit:print("时间到,游戏结束!")running = False# ...# ...

在上述代码中,我们添加了一个游戏时间限制 time_limit,以秒为单位。在游戏主循环中,我们使用 time.time() 函数获取当前时间,并与游戏开始时间进行比较,判断是否超过了时间限制。如果超过了时间限制,则游戏结束。

你可以根据具体的游戏规则进行胜负判断。例如,可以在玩家回答或电脑回答后添加额外的逻辑,判断是否达到胜利条件或失败条件,然后设置 running 变量来控制游戏是否继续进行。

请注意,这只是一个示例,你可以根据自己的需求进行修改和扩展。例如,你可以添加更多的游戏规则判断,或者修改时间限制的方式(例如在游戏窗口中显示剩余时间)。

九、界面优化示例代码

在这里插入图片描述以下是一个示例代码,演示如何对游戏界面进行美化和优化,包括添加背景音乐、按钮和菜单等元素:

import pygame
import random# 初始化Pygame
pygame.init()# 设置窗口尺寸
window_width = 800
window_height = 600
window = pygame.display.set_mode((window_width, window_height))# 加载背景音乐
pygame.mixer.music.load("background_music.mp3")
pygame.mixer.music.play(-1)  # 循环播放背景音乐# 加载按钮图片
button_image = pygame.image.load("button_image.png")
button_rect = button_image.get_rect()
button_rect.center = (window_width // 2, window_height // 2)# 游戏主循环
running = True
while running:# 处理事件for event in pygame.event.get():if event.type == pygame.QUIT:running = Falseelif event.type == pygame.MOUSEBUTTONDOWN:mouse_pos = pygame.mouse.get_pos()if button_rect.collidepoint(mouse_pos):print("按钮被点击!")# 在按钮被点击后执行相应的操作# 绘制背景window.fill((255, 255, 255))  # 使用白色填充窗口背景# 绘制按钮window.blit(button_image, button_rect)# 更新显示pygame.display.flip()# 退出游戏
pygame.quit()

在上述代码中,我们使用 Pygame 的 pygame.mixer.music 模块加载并播放背景音乐。我们还加载了一个按钮图片,并使用 blit() 函数将其绘制在窗口上。在游戏主循环中,我们检测鼠标点击事件,并使用 collidepoint() 函数判断鼠标点击是否在按钮区域内。如果按钮被点击,我们可以在相应的条件下执行特定的操作。

你可以根据自己的需求修改按钮的位置、大小和外观,以及添加其他的游戏元素(如菜单、游戏角色等)。此外,你还可以使用 Pygame 的其他功能来增强游戏的可玩性和用户体验,例如添加音效、动画效果等。

十、扩展成语库示例代码

在这里插入图片描述以下是一个示例代码,演示如何扩展成语库,增加更多的成语:

import pygame
import random# 初始化Pygame
pygame.init()# 设置窗口尺寸
window_width = 800
window_height = 600
window = pygame.display.set_mode((window_width, window_height))# 加载背景音乐
pygame.mixer.music.load("background_music.mp3")
pygame.mixer.music.play(-1)  # 循环播放背景音乐# 加载按钮图片
button_image = pygame.image.load("button_image.png")
button_rect = button_image.get_rect()
button_rect.center = (window_width // 2, window_height // 2)# 成语库
idioms = ["卧薪尝胆","画蛇添足","杯弓蛇影",# 添加更多的成语...
]# 随机选择一个成语作为当前成语
current_idiom = random.choice(idioms)# 游戏主循环
running = True
while running:# 处理事件for event in pygame.event.get():if event.type == pygame.QUIT:running = Falseelif event.type == pygame.MOUSEBUTTONDOWN:mouse_pos = pygame.mouse.get_pos()if button_rect.collidepoint(mouse_pos):print("按钮被点击!")# 在按钮被点击后执行相应的操作# 绘制背景window.fill((255, 255, 255))  # 使用白色填充窗口背景# 绘制按钮window.blit(button_image, button_rect)# 更新显示pygame.display.flip()# 退出游戏
pygame.quit()

在上述代码中,我们创建了一个成语库 idioms,其中包含了一些成语。你可以根据需要添加更多的成语。在游戏主循环中,我们使用 random.choice() 函数随机选择一个成语作为当前成语。这样,每次游戏开始时,玩家和电脑都可以基于当前成语进行成语接龙。

你可以通过在 idioms 列表中添加更多的成语来扩展成语库。可以从各种来源获取成语,如成语词典、互联网资源等。确保成语库中的成语是正确且合法的。

请注意,上述代码只是一个示例,你可以根据自己的需要进行修改和扩展。例如,你可以创建一个文本文件,将成语存储在其中,并编写代码来读取该文件并构建成语库。这样可以更方便地扩展和管理成语库。

十一、音效和动画效果示例代码

在这里插入图片描述以下是一个示例代码,演示如何添加音效和动画效果:

import pygame
import random# 初始化Pygame
pygame.init()# 设置窗口尺寸
window_width = 800
window_height = 600
window = pygame.display.set_mode((window_width, window_height))# 加载背景音乐
pygame.mixer.music.load("background_music.mp3")
pygame.mixer.music.play(-1)  # 循环播放背景音乐# 加载按钮图片
button_image = pygame.image.load("button_image.png")
button_rect = button_image.get_rect()
button_rect.center = (window_width // 2, window_height // 2)# 加载音效
click_sound = pygame.mixer.Sound("click_sound.wav")# 成语库
idioms = ["卧薪尝胆","画蛇添足","杯弓蛇影",# 添加更多的成语...
]# 随机选择一个成语作为当前成语
current_idiom = random.choice(idioms)# 游戏主循环
running = True
while running:# 处理事件for event in pygame.event.get():if event.type == pygame.QUIT:running = Falseelif event.type == pygame.MOUSEBUTTONDOWN:mouse_pos = pygame.mouse.get_pos()if button_rect.collidepoint(mouse_pos):print("按钮被点击!")click_sound.play()  # 播放点击音效# 在按钮被点击后执行相应的操作# 绘制背景window.fill((255, 255, 255))  # 使用白色填充窗口背景# 绘制按钮window.blit(button_image, button_rect)# 添加动画效果rotation_angle = pygame.time.get_ticks() / 10  # 根据时间计算旋转角度rotated_button = pygame.transform.rotate(button_image, rotation_angle)button_rect.center = (window_width // 2, window_height // 2)window.blit(rotated_button, button_rect)# 更新显示pygame.display.flip()# 退出游戏
pygame.quit()

在上述代码中,我们首先加载了一个点击音效 click_sound.wav,通过 pygame.mixer.Sound() 函数创建音效对象。然后,在按钮被点击的事件处理中,我们调用 play() 方法播放点击音效。

此外,我们还添加了一个动画效果。我们使用 pygame.time.get_ticks() 函数获取当前时间的毫秒数,并将其除以一个适当的值来计算旋转角度。然后,使用 pygame.transform.rotate() 函数根据旋转角度对按钮图片进行旋转。最后,我们将旋转后的按钮图片绘制在窗口上。

你可以根据需要添加其他的音效和动画效果。例如,可以在游戏开始时播放一个欢迎音效,或者在玩家完成一轮成语接龙时播放一个胜利的音效。同样,你可以使用 Pygame 的其他功能来实现更复杂的动画效果,如平移、缩放等。
在这里插入图片描述

请注意,上述代码只是一个示例,你可以根据自己的需要进行修改和扩展。

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

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

相关文章

数据结构——6.1 图的基本概念

第六章 图 6.1 图的基本概念 概念 图的概念:G由点集V和边集E构成,记为G(V,E),边集可以为空,但是点集不能为空 注意:线性表可以是空表,树可以是空树,但图不可以是空,即V一定是非空集…

【MATLAB】GA_BP神经网络回归预测算法

有意向获取代码,请转文末观看代码获取方式~也可转原文链接获取~ 1 基本定义 GA_BP神经网络回归预测算法结合了遗传算法(Genetic Algorithm, GA)和BP神经网络(Backpropagation Neural Network, BPNN),用于解…

蓝桥杯嵌入式第8届真题(完成) STM32G431

蓝桥杯嵌入式第8届真题(完成) STM32G431 题目 分析和代码 对比第六届和第七届,这届的题目在逻辑思维上确实要麻烦不少,可以从题目看出,这届题目对时间顺序的要求很严格,所以就可以使用状态机的思想来编程,拿到类似题…

Python基于大数据的电影预测分析系统

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝30W、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

介绍 MSTest Runner – CLI、Visual Studio 等

作者:Amaury Lev Marco Rossignoli Jakub Jareš 排版:Alan Wang 我们很高兴推出 MSTest 运行器,这是一款全新的轻量级 MSTest 测试运行器。这个新的运行器使测试更加便携和可靠,运行速度更快,并且具有可扩展性&#x…

leetcode 461. 汉明距离

比较简单的一题,先对两个整数进行异或操作,会将两个整数二进制形式中各个数字进行异或操作,不同的数字则为1,再通过移位操作统计得到的二进制数中为1的个数,即为所求。 Java代码如下: class Solution {pub…

Android SystemConfig相关

SystemConfig在哪里初始化 它声明在PackageManagerService类的静态方法main()中。在该方法中间定义Injector类对象时,作为它的构造参数。它是调用的SystemConfig.getInstance()实现初始化,之后能通过Injector类对象的getSystemConfig()得到SystemConfig类…

计算机网络——网络安全

计算机网络——网络安全 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家, [跳转到网站](https://www.captainbed.cn/qianqiu) 小程一言专栏链接: [link](http://t.csdnimg.cn/ZUTXU) 网络安全何…

PyTorch深度学习实战(26)——多对象实例分割

PyTorch深度学习实战(26)——多对象实例分割 0. 前言1. 获取并准备数据2. 使用 Detectron2 训练实例分割模型3. 对新图像进行推断小结系列链接 0. 前言 我们已经学习了多种图像分割算法,在本节中,我们将学习如何使用 Detectron2 …

单页404源码

<!doctype html> <html> <head> <meta charset"utf-8"> <title>简约 404错误页</title><link rel"shortcut icon" href"./favicon.png"><style> import url("https://fonts.googleapis.co…

C# 字体大小的相关问题

设置字体大小无法这么写&#xff0c; button1.Font.Size 20&#xff1b; 这个是只读属性&#xff1b; 把字体大小改为16&#xff0c; button2.Font new Font(button2.Font.Name, 16); 程序运行的时候先看一下窗体和控件的默认字体尺寸&#xff0c;都是9&#xff1b;然后点b…

jsp教务管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 教务管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql5.0&…

人脸追踪案例及机器学习认识

1.人脸追踪机器人初制 用程序控制舵机运动的方法与机械臂项目完全相同。 由于摄像头的安装方式为上下倒转安装&#xff0c;我们在编写程序读取图像时需使用 flip 函数将 图像上下翻转。 现在&#xff0c;只需要使用哈尔特征检测得到人脸在图像中的位置&#xff0c;再指示舵机运…

Docker容器输入汉字触发自动补全

一、描述 输入汉字自动触发补全&#xff1a; Display all 952 possibilities? (y or n)是因为容器中没有中文字符集和中文字体导致的&#xff0c;安装中文字体&#xff0c;并设置字符集即可。 二、解决 1、安装字符集 &#xff08;1&#xff09;查看系统支持的字符集 lo…

使用Cargo创建、编译与运行Rust项目

在 Rust 开发中&#xff0c;Cargo 是一个非常重要的工具&#xff0c;它负责项目的构建、管理和依赖管理。以下是如何使用 Cargo 创建、编译和运行 Rust 项目的详细步骤。 1. 创建新项目 首先确保你已经在计算机上安装了 Rust 和 Cargo。然后&#xff0c;在命令行中输入以下命…

HarmonyOS 横屏调试与真机横屏运行

我们有些程序 需要横屏才能执行出效果 我们在预览器上 点击如下图指向出 就进入一个横屏调试了 但 我们真机运行 依旧是竖着的 我们如下图 找到 module.json5 在 abilities 下面 第一个对象 最下面 加上 "orientation": "landscape"然后 我们再真机运…

【深度学习】基于多层感知机的手写数字识别

案例2&#xff1a;构建自己的多层感知机: MNIST手写数字识别 相关知识点: numpy科学计算包&#xff0c;如向量化操作&#xff0c;广播机制等 1 任务目标 1.1 数据集简介 ​ MNIST手写数字识别数据集是图像分类领域最常用的数据集之一&#xff0c;它包含60,000张训练图片&am…

算法沉淀——位运算(leetcode真题剖析)

算法沉淀——位运算 常用位运算总结1.基础位运算2.确定一个数中第x位是0还是13.将一个数的第x位改成14.将一个数的第x位改成05.位图6.提取一个数最右边的17.删掉一个数最右边的18.异或运算9.基础例题 力扣题目讲解01.面试题 01.01. 判定字符是否唯一02.丢失的数字03.两整数之和…

opencv mat用法赋值克隆的操作和一些基本属性

//Mat基本结构 (头部 数据部分) //赋值的话 就是修改了指针位置 但还是指向了原来数据 并没创建数据 本质上并没有变 //只有克隆或者拷贝时 它才会真正复制一份数据 //代码实现 //创建方法 - 克隆 //Mat m1 src.clone(); //复制 //Mat m2; //src.copyTo(m2); //赋值法 …

Git的基础操作指令

目录 1 前言 2 指令 2.1 git init 2.2 touch xxx 2.3 git status 2.4 git add xxx 2.5 git commit -m xxxx 2.5 git log及git log --prettyoneline --all --graph --abbrev-commit 2.6 rm xxx 2.7 git reset --hard xxx(含小技巧) 2.8 git reflog 2.9 mv xxx yyy 1…