第二篇【传奇开心果微博系列】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()
这个示例代码创建了一个简单的成语接龙游戏窗口,加载了背景图片,并显示了当前的成语。
三、扩展整体思路
要扩展这个成语接龙游戏的整体思路,可以考虑以下几个方面:
-
玩家输入: 让玩家能够输入成语作为回答。可以使用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("成语接龙游戏")# 加载字体
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 的其他功能来实现更复杂的动画效果,如平移、缩放等。
请注意,上述代码只是一个示例,你可以根据自己的需要进行修改和扩展。
相关文章:

第二篇【传奇开心果微博系列】Python微项目技术点案例示例:成语接龙游戏
传奇开心果微博系列 系列微博目录Python微项目技术点案例示例系列 微博目录一、微项目目标二、雏形示例代码三、扩展整体思路四、玩家输入示例代码五、成语判断示例代码六、回答判断示例代码七、电脑判断示例代码八、游戏结束示例代码九、界面优化示例代码十、扩展成语库示例代…...

国内AI大模型主要有哪些
ChatGPT火爆后不到一个月的时间,阿里、华为、腾讯、京东、字节、360、商汤、科大讯飞等大厂纷纷下场,或官宣入场或亮相大模型。我国对生成式AI实行监管的正式法规主要是2023年8月正式施行的《生成式人工智能服务管理暂行办法》。 据不完全统计ÿ…...

RabbitMQ保证消息的可靠性
1. 问题引入 消息从发送,到消费者接收,会经理多个过程: 其中的每一步都可能导致消息丢失,常见的丢失原因包括: 发送时丢失: 生产者发送的消息未送达exchange消息到达exchange后未到达queue MQ宕机&…...
【工作实践-02】实验室移动端—跳转页面及交互
一、跳转页面不关闭当前页,与uniapp头部导航栏的返回按钮效果相似 uni.navigateBack({delta: 1}) 二、返回页面并刷新 1. 返回上一页时重新获取列表(调用上一页面获取列表方法) let pages getCurrentPages(); // 当前页面let beforePage pages[pages.length - 2…...

HTTP 请求 400错误
问题 HTTP 请求 400错误 详细问题 客户端发送请求 public static UserInfo updateUserInfo(UserInfo userInfo) {// 创建 OkHttpClient 对象OkHttpClient client new OkHttpClient();// 创建请求体MediaType JSON MediaType.parse("application/json; charsetutf-8&…...

C语言---指针进阶
1.字符指针 int main() {char str1[] "hello world";char str2[] "hello world";const char* str3 "hello world.";const char* str4 "hello world.";if (str3 str4){//常量字符串在内存里面是无法修改的,所以没必要…...
QT-通信编码格式问题
这里写目录标题 一、项目场景1.QT客户端与服务端通信时,转化步骤如下:2.原数据示例3.转化后数据 二、问题描述1.采用Soap协议2.采用HTTP协议 三、原因分析四、解决方案 一、项目场景 1.QT客户端与服务端通信时,转化步骤如下: 1&…...

一文了解Web3.0真实社交先驱ERA
Web2时代,少数科技巨头垄断了全球近60亿人口的网络社交数据,并用之为自己牟利,用户无法掌控个人数据,打破该局面逐渐成为共识,于是,不少人看到了Web3社交赛道蕴含的巨大机遇,标榜着去中心化和抗…...

微前端(qiankun)vue3+vite
目录 一、什么是微前端 二、主应用接入 qiankun 1.按照qiankun插件 2.注册微应用引用 3.挂载容器 三、微应用接入 qiankun 1.vite.config.ts 2.main.ts ps:手动加载微应用方式 ps:为什么不用 iframe 一、什么是微前端 微前端是一种多个团队通过独…...

根据Ruoyi做二开
Ruoyi二开 前言菜单代码生成新建微服务网关添加微服务的路由 vue页面和对应的js文件js中方法的url和controller中方法的url总结 前言 之前写过一篇文章,若依微服务版本搭建,超详细,就介绍了怎么搭建若依微服务版本,我们使用若依就…...

DockerFile的应用
DockerFile的应用 一、介绍1 构建的三步骤2 构建的过程 二、常用命令三、DockerFile案例1 创建DockerFile文件2 使用DockerFile文件构建镜像3 启动容器并验证 四 DockerFile添加数据卷 一、介绍 DockerFile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成…...

爬虫入门一
文章目录 一、什么是爬虫?二、爬虫基本流程三、requests模块介绍四、requests模块发送Get请求五、Get请求携带参数六、携带请求头七、发送post请求八、携带cookie方式一:放在请求头中方式二:放在cookie参数中 九、post请求携带参数十、模拟登…...
2024-02-16 web3-区块链-keypass记录
摘要: 2024-02-16 web3-区块链-keypass记录 文档: Introduction - Keypass Docs What is KEYPASS? - Keypass Docs What is KEYPASS? KeyPass Wallet is a new smart contract wallet that provides a secure and customizable registration…...
使用 JMimeMagic 在 Java 中识别文件类型
在 Java 中,我们可以使用 JMimeMagic 库来识别文件类型,尤其是在需要准确区分文件类型时。下面是一个简单的使用 JMimeMagic 的示例代码。 添加依赖 首先,在你的项目中添加 JMimeMagic 依赖。你可以在 Maven 项目中的 pom.xml 文件中加入以…...

yolov8源码解读Detect层
yolov8源码解读Detect层 Detect层解读网络各层解读及detect层后的处理 关于网络的backbone,head,以及detect层后处理,可以参考文章结尾博主的文章。 Detect层解读 先贴一下全部代码,下面一一解读。 class Detect(nn.Module):"""YOLOv8 …...

(AtCoder Beginner Contest 341)(A - D)
比赛地址 : Tasks - Toyota Programming Contest 2024#2(AtCoder Beginner Contest 341) A . Print 341 模拟就好了 , 先放一个 1 , 然后放 n 个 01 ; #include<bits/stdc.h> #define IOS ios::sync_with_stdio(0);cin.tie(0);cout…...
python Flask与微信小程序 统计管理
common/models/stat/StatDailyMember.py DROP TABLE IF EXISTS stat_daily_member;CREATE TABLE stat_daily_member (id int(11) unsigned NOT NULL AUTO_INCREMENT,date date NOT NULL COMMENT 日期,member_id int(11) NOT NULL DEFAULT 0 COMMENT 会员id,total_shared_count …...
光伏企业助力乡村振兴
光伏是一种利用太阳能生产电能的发电技术,属于可再生能源。近年来我国的光伏企业发展迅速,已经称霸全球,同时也为乡村振兴贡献了力量。 一、光伏企业助力乡村 1.推动农业发展 光伏发电和农业种植、畜牧、渔业、水产等有机结合,…...

root MUSIC 算法补充说明
root MUSIC 算法补充说明 多项式求根root MUSIC 算法原理如何从 2 M − 2 2M-2 2M−2 个根中确定 K K K 个根从复数域上观察 2 M − 2 2M-2 2M−2 个根的分布 这篇笔记是上一篇关于 root MUSIC 笔记的补充。 多项式求根 要理解 root MUSIC 算法,需要理解多项式求…...

关于Django的中间件使用说明。
目录 1.中间件2. 为什么要中间件?3. 具体使用中间件3.1 中间件所在的位置:在django的settings.py里面的MIDDLEWARE。3.2 中间件的创建3.3 中间件的使用 4. 展示成果 1.中间件 中间件的大概解释:在浏览器在请求服务器的时候,首先要…...

51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...

Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望
文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...

相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了: 这一篇我们开始讲: 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下: 一、场景操作步骤 操作步…...

循环冗余码校验CRC码 算法步骤+详细实例计算
通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)࿰…...
在rocky linux 9.5上在线安装 docker
前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...

C# 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...

AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别
【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而,传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案,能够实现大范围覆盖并远程采集数据。尽管具备这些优势…...

C# 表达式和运算符(求值顺序)
求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如,已知表达式3*52,依照子表达式的求值顺序,有两种可能的结果,如图9-3所示。 如果乘法先执行,结果是17。如果5…...

通过MicroSip配置自己的freeswitch服务器进行调试记录
之前用docker安装的freeswitch的,启动是正常的, 但用下面的Microsip连接不上 主要原因有可能一下几个 1、通过下面命令可以看 [rootlocalhost default]# docker exec -it freeswitch fs_cli -x "sofia status profile internal"Name …...