【Python实战】Google Chrome的离线小恐龙游戏

在这里插入图片描述在这里插入图片描述

文章目录

    • Google Chrome的离线小恐龙游戏
        • 项目结构大纲 📊👣
        • 逐步编码过程 🧩💡
            • 第一步:项目初始化与主程序框架
            • 第二步:实现T-Rex的跳跃功能
            • 第三步:添加障碍物和碰撞检测
            • 第四步:添加得分机制和显示得分
            • 第五步:游戏结束处理和重新开始选项
            • 第六步:添加背景和地面
        • 效果图

Google Chrome的离线小恐龙游戏

本文章通过详细的列举项目结构大纲和列举逐步编码过程和思路,便于学习者能够更加快速方便地掌握该游戏的开发。

项目结构大纲 📊👣
t_rex_game/
│
├── main.py        # 主程序文件
├── trex.py        # T-Rex角色类
├── assets/
│   └── trex.png   # T-Rex图片文件
├── obstacles.py   # 障碍物类
逐步编码过程 🧩💡
第一步:项目初始化与主程序框架

main.py

import pygame
import sys
from trex import TRex# 初始化pygame
pygame.init()# 设置屏幕尺寸
screen_width = 800
screen_height = 400
screen = pygame.display.set_mode((screen_width, screen_height))# 定义颜色
white = (255, 255, 255)# 设置帧率
clock = pygame.time.Clock()
fps = 30# 游戏主循环
def game_loop():t_rex = TRex(screen_width, screen_height)while True:for event in pygame.event.get():if event.type == pygame.QUIT:pygame.quit()sys.exit()screen.fill(white)t_rex.draw(screen)pygame.display.update()clock.tick(fps)if __name__ == "__main__":game_loop()

trex.py

import pygame
import osclass TRex:def __init__(self, screen_width, screen_height):# 获取当前脚本文件所在的目录current_path = os.path.dirname(__file__)# 拼接图片文件的完整路径image_path = os.path.join(current_path, 'assets', 'trex.png')self.image = pygame.image.load(image_path)self.image = pygame.transform.scale(self.image, (50, 50))  # 缩放图片self.x = 50self.y = screen_height - 70self.screen_width = screen_widthself.screen_height = screen_heightdef draw(self, screen):screen.blit(self.image, (self.x, self.y))

注意点
首先,trex.png指的是小恐龙的照片,要先保证照片能够正常显示;然后要使用pygame.transform.scale函数来缩放图片大小。调整后的图片大小为50x50像素,你可以根据需要调整这个尺寸。

第二步:实现T-Rex的跳跃功能

main.py

import pygame
import sys
from trex import TRex# 初始化pygame
pygame.init()# 设置屏幕尺寸
screen_width = 800
screen_height = 400
screen = pygame.display.set_mode((screen_width, screen_height))# 定义颜色
white = (255, 255, 255)# 设置帧率
clock = pygame.time.Clock()
fps = 30# 游戏主循环
def game_loop():t_rex = TRex(screen_width, screen_height)while True:for event in pygame.event.get():if event.type == pygame.QUIT:pygame.quit()sys.exit()if event.type == pygame.KEYDOWN:if event.key == pygame.K_SPACE:t_rex.jump()t_rex.update()  # 更新T-Rex的状态screen.fill(white)t_rex.draw(screen)pygame.display.update()clock.tick(fps)if __name__ == "__main__":game_loop()

trex.py

import pygame
import osclass TRex:def __init__(self, screen_width, screen_height):# 获取当前脚本文件所在的目录current_path = os.path.dirname(__file__)# 拼接图片文件的完整路径image_path = os.path.join(current_path, 'assets', 'trex.png')self.image = pygame.image.load(image_path)self.image = pygame.transform.scale(self.image, (50, 50))  # 缩放图片self.x = 50self.y = screen_height - 70self.jump_speed = 20  # 跳跃速度(增加)self.gravity = 2  # 重力(增加)self.velocity = 0  # 初始速度self.is_jumping = False  # 跳跃状态self.screen_width = screen_widthself.screen_height = screen_heightdef jump(self):if not self.is_jumping:self.is_jumping = Trueself.velocity = -self.jump_speeddef update(self):if self.is_jumping:self.y += self.velocityself.velocity += self.gravity# 检查是否着地if self.y >= self.screen_height - 70:self.y = self.screen_height - 70self.is_jumping = Falseself.velocity = 0def draw(self, screen):screen.blit(self.image, (self.x, self.y))

注意点
在完成跳跃功能时,我们会使小恐龙跳跃回弹到地面的时间尽可能短。我们可以通过设置:
跳跃速度:将self.jump_speed从15增加到20。
重力加速度:将self.gravity从1增加到2。

第三步:添加障碍物和碰撞检测

我们需要创建一个Obstacle类,并在主程序中生成障碍物。同时,实现T-Rex与障碍物的碰撞检测。
项目结构大纲 📊👣

t_rex_game/
│
├── main.py        # 主程序文件
├── trex.py        # T-Rex角色类
├── obstacles.py   # 障碍物类
├── assets/
│   └── trex.png   # T-Rex图片文件
│   └── cactus.png # 障碍物图片文件
└── utils.py       # 工具函数

main.py

import pygame
import sys
from trex import TRex
from obstacles import Obstacle
import random# 初始化pygame
pygame.init()# 设置屏幕尺寸
screen_width = 800
screen_height = 400
screen = pygame.display.set_mode((screen_width, screen_height))# 定义颜色
white = (255, 255, 255)# 设置帧率
clock = pygame.time.Clock()
fps = 30# 游戏主循环
def game_loop():t_rex = TRex(screen_width, screen_height)obstacles = []def create_obstacle():obstacle = Obstacle(screen_width, screen_height)obstacles.append(obstacle)# 每隔一段时间创建一个新障碍物obstacle_timer = 0while True:for event in pygame.event.get():if event.type == pygame.QUIT:pygame.quit()sys.exit()if event.type == pygame.KEYDOWN:if event.key == pygame.K_SPACE:t_rex.jump()t_rex.update()  # 更新T-Rex的状态# 创建新障碍物obstacle_timer += 1if obstacle_timer > 50:create_obstacle()obstacle_timer = 0# 更新障碍物状态for obstacle in obstacles:obstacle.update()# 检测碰撞if t_rex.x < obstacle.x + obstacle.width and \t_rex.x + t_rex.width > obstacle.x and \t_rex.y < obstacle.y + obstacle.height and \t_rex.height + t_rex.y > obstacle.y:# 碰撞检测到pygame.quit()sys.exit()# 清除离开屏幕的障碍物obstacles = [obstacle for obstacle in obstacles if obstacle.x + obstacle.width > 0]screen.fill(white)t_rex.draw(screen)for obstacle in obstacles:obstacle.draw(screen)pygame.display.update()clock.tick(fps)if __name__ == "__main__":game_loop()

trex.py

import pygame
import osclass TRex:def __init__(self, screen_width, screen_height):# 获取当前脚本文件所在的目录current_path = os.path.dirname(__file__)# 拼接图片文件的完整路径image_path = os.path.join(current_path, 'assets', 'trex.png')self.image = pygame.image.load(image_path)self.image = pygame.transform.scale(self.image, (50, 50))  # 缩放图片self.x = 50self.y = screen_height - 70self.width = 50self.height = 50self.jump_speed = 20  # 跳跃速度self.gravity = 2  # 重力self.velocity = 0  # 初始速度self.is_jumping = False  # 跳跃状态self.screen_width = screen_widthself.screen_height = screen_heightdef jump(self):if not self.is_jumping:self.is_jumping = Trueself.velocity = -self.jump_speeddef update(self):if self.is_jumping:self.y += self.velocityself.velocity += self.gravity# 检查是否着地if self.y >= self.screen_height - 70:self.y = self.screen_height - 70self.is_jumping = Falseself.velocity = 0def draw(self, screen):screen.blit(self.image, (self.x, self.y))

obstacles.py

import pygame
import osclass Obstacle:def __init__(self, screen_width, screen_height):# 获取当前脚本文件所在的目录current_path = os.path.dirname(__file__)# 拼接图片文件的完整路径image_path = os.path.join(current_path, 'assets', 'cactus.png')self.image = pygame.image.load(image_path)self.image = pygame.transform.scale(self.image, (50, 50))  # 缩放图片self.x = screen_widthself.y = screen_height - 70self.width = 50self.height = 50self.speed = 10def update(self):self.x -= self.speeddef draw(self, screen):screen.blit(self.image, (self.x, self.y))

解释
障碍物类:Obstacle类用于表示游戏中的障碍物。每个障碍物都有位置、大小和速度属性。
创建和更新障碍物:在主程序中,我们定期创建新障碍物,并在每一帧更新它们的位置。
碰撞检测:在主程序的每一帧,我们检查T-Rex与每个障碍物是否发生碰撞。如果发生碰撞,游戏结束。

第四步:添加得分机制和显示得分

main.py

import pygame
import sys
from trex import TRex
from obstacles import Obstacle
import random# 初始化pygame
pygame.init()# 设置屏幕尺寸
screen_width = 800
screen_height = 400
screen = pygame.display.set_mode((screen_width, screen_height))# 定义颜色
white = (255, 255, 255)
black = (0, 0, 0)# 设置帧率
clock = pygame.time.Clock()
fps = 30# 游戏主循环
def game_loop():t_rex = TRex(screen_width, screen_height)obstacles = []score = 0def create_obstacle():obstacle = Obstacle(screen_width, screen_height)obstacles.append(obstacle)# 每隔一段时间创建一个新障碍物obstacle_timer = 0# 创建字体对象font = pygame.font.Font(None, 36)while True:for event in pygame.event.get():if event.type == pygame.QUIT:pygame.quit()sys.exit()if event.type == pygame.KEYDOWN:if event.key == pygame.K_SPACE:t_rex.jump()t_rex.update()  # 更新T-Rex的状态# 创建新障碍物obstacle_timer += 1if obstacle_timer > 50:create_obstacle()obstacle_timer = 0# 更新障碍物状态for obstacle in obstacles:obstacle.update()# 检测碰撞if t_rex.x < obstacle.x + obstacle.width and \t_rex.x + t_rex.width > obstacle.x and \t_rex.y < obstacle.y + obstacle.height and \t_rex.height + t_rex.y > obstacle.y:# 碰撞检测到pygame.quit()sys.exit()# 更新得分for obstacle in obstacles:if obstacle.x + obstacle.width < t_rex.x:score += 1obstacles.remove(obstacle)  # 删除已通过的障碍物screen.fill(white)t_rex.draw(screen)for obstacle in obstacles:obstacle.draw(screen)# 显示得分score_text = font.render(f'Score: {score}', True, black)screen.blit(score_text, (10, 10))pygame.display.update()clock.tick(fps)if __name__ == "__main__":game_loop()

trex.py

import pygame
import osclass TRex:def __init__(self, screen_width, screen_height):# 获取当前脚本文件所在的目录current_path = os.path.dirname(__file__)# 拼接图片文件的完整路径image_path = os.path.join(current_path, 'assets', 'trex.png')self.image = pygame.image.load(image_path)self.image = pygame.transform.scale(self.image, (50, 50))  # 缩放图片self.x = 50self.y = screen_height - 70self.width = 50self.height = 50self.jump_speed = 20  # 跳跃速度self.gravity = 2  # 重力self.velocity = 0  # 初始速度self.is_jumping = False  # 跳跃状态self.screen_width = screen_widthself.screen_height = screen_heightdef jump(self):if not self.is_jumping:self.is_jumping = Trueself.velocity = -self.jump_speeddef update(self):if self.is_jumping:self.y += self.velocityself.velocity += self.gravity# 检查是否着地if self.y >= self.screen_height - 70:self.y = self.screen_height - 70self.is_jumping = Falseself.velocity = 0def draw(self, screen):screen.blit(self.image, (self.x, self.y))

obstacles.py

import pygame
import osclass Obstacle:def __init__(self, screen_width, screen_height):# 获取当前脚本文件所在的目录current_path = os.path.dirname(__file__)# 拼接图片文件的完整路径image_path = os.path.join(current_path, 'assets', 'cactus.png')self.image = pygame.image.load(image_path)self.image = pygame.transform.scale(self.image, (50, 50))  # 缩放图片self.x = screen_widthself.y = screen_height - 70self.width = 50self.height = 50self.speed = 10def update(self):self.x -= self.speeddef draw(self, screen):screen.blit(self.image, (self.x, self.y))

解释
更新得分机制:在每一帧中,检查每个障碍物是否已经通过了T-Rex的位置(obstacle.x + obstacle.width < t_rex.x)。如果通过,增加得分,并从障碍物列表中删除该障碍物。

第五步:游戏结束处理和重新开始选项

main.py

import pygame
import sys
from trex import TRex
from obstacles import Obstacle
import random# 初始化pygame
pygame.init()# 设置屏幕尺寸
screen_width = 800
screen_height = 400
screen = pygame.display.set_mode((screen_width, screen_height))# 定义颜色
white = (255, 255, 255)
black = (0, 0, 0)
red = (255, 0, 0)# 设置帧率
clock = pygame.time.Clock()
fps = 30# 显示游戏结束画面
def show_game_over_screen(score):screen.fill(white)font = pygame.font.Font(None, 48)game_over_text = font.render('Game Over', True, red)score_text = font.render(f'Score: {score}', True, black)restart_text = font.render('Press R to Restart', True, black)screen.blit(game_over_text, (screen_width // 2 - game_over_text.get_width() // 2, screen_height // 2 - 50))screen.blit(score_text, (screen_width // 2 - score_text.get_width() // 2, screen_height // 2))screen.blit(restart_text, (screen_width // 2 - restart_text.get_width() // 2, screen_height // 2 + 50))pygame.display.update()# 等待用户按下 R 键重新开始while True:for event in pygame.event.get():if event.type == pygame.QUIT:pygame.quit()sys.exit()if event.type == pygame.KEYDOWN:if event.key == pygame.K_r:return  # 重新开始游戏# 游戏主循环
def game_loop():t_rex = TRex(screen_width, screen_height)obstacles = []score = 0def create_obstacle():obstacle = Obstacle(screen_width, screen_height)obstacles.append(obstacle)# 每隔一段时间创建一个新障碍物obstacle_timer = 0# 创建字体对象font = pygame.font.Font(None, 36)while True:for event in pygame.event.get():if event.type == pygame.QUIT:pygame.quit()sys.exit()if event.type == pygame.KEYDOWN:if event.key == pygame.K_SPACE:t_rex.jump()t_rex.update()  # 更新T-Rex的状态# 创建新障碍物obstacle_timer += 1if obstacle_timer > 50:create_obstacle()obstacle_timer = 0# 更新障碍物状态for obstacle in obstacles:obstacle.update()# 检测碰撞if t_rex.x < obstacle.x + obstacle.width and \t_rex.x + t_rex.width > obstacle.x and \t_rex.y < obstacle.y + obstacle.height and \t_rex.height + t_rex.y > obstacle.y:# 碰撞检测到,显示游戏结束画面show_game_over_screen(score)return# 更新得分for obstacle in obstacles:if obstacle.x + obstacle.width < t_rex.x:score += 1obstacles.remove(obstacle)  # 删除已通过的障碍物screen.fill(white)t_rex.draw(screen)for obstacle in obstacles:obstacle.draw(screen)# 显示得分score_text = font.render(f'Score: {score}', True, black)screen.blit(score_text, (10, 10))pygame.display.update()clock.tick(fps)if __name__ == "__main__":while True:game_loop()
第六步:添加背景和地面

项目结构大纲

t_rex_game/
│
├── main.py        # 主程序文件
├── trex.py        # T-Rex角色类
├── obstacles.py   # 障碍物类
├── assets/
│   └── trex.png   # T-Rex图片文件
│   └── cactus.png # 障碍物图片文件
│   └── ground.png # 地面图片文件
└── utils.py       # 工具函数

main.py

import pygame
import sys
from trex import TRex
from obstacles import Obstacle
import random# 初始化pygame
pygame.init()# 设置屏幕尺寸
screen_width = 800
screen_height = 400
screen = pygame.display.set_mode((screen_width, screen_height))# 定义颜色
white = (255, 255, 255)
black = (0, 0, 0)
red = (255, 0, 0)# 设置帧率
clock = pygame.time.Clock()
fps = 30# 加载地面图片
ground = pygame.image.load('assets/ground.png')
ground_height = 20
ground = pygame.transform.scale(ground, (screen_width, ground_height))# 显示游戏结束画面
def show_game_over_screen(score):screen.fill(white)font = pygame.font.Font(None, 48)game_over_text = font.render('Game Over', True, red)score_text = font.render(f'Score: {score}', True, black)restart_text = font.render('Press R to Restart', True, black)screen.blit(game_over_text, (screen_width // 2 - game_over_text.get_width() // 2, screen_height // 2 - 50))screen.blit(score_text, (screen_width // 2 - score_text.get_width() // 2, screen_height // 2))screen.blit(restart_text, (screen_width // 2 - restart_text.get_width() // 2, screen_height // 2 + 50))pygame.display.update()# 等待用户按下 R 键重新开始while True:for event in pygame.event.get():if event.type == pygame.QUIT:pygame.quit()sys.exit()if event.type == pygame.KEYDOWN:if event.key == pygame.K_r:return  # 重新开始游戏# 游戏主循环
def game_loop():t_rex = TRex(screen_width, screen_height)obstacles = []score = 0def create_obstacle():obstacle = Obstacle(screen_width, screen_height)obstacles.append(obstacle)# 每隔一段时间创建一个新障碍物obstacle_timer = 0# 创建字体对象font = pygame.font.Font(None, 36)# 背景颜色控制bg_color = whitebg_color_change_timer = 0bg_color_change_interval = 500  # 颜色变化间隔(帧数)while True:for event in pygame.event.get():if event.type == pygame.QUIT:pygame.quit()sys.exit()if event.type == pygame.KEYDOWN:if event.key == pygame.K_SPACE:t_rex.jump()t_rex.update()  # 更新T-Rex的状态# 创建新障碍物obstacle_timer += 1if obstacle_timer > 50:create_obstacle()obstacle_timer = 0# 更新障碍物状态for obstacle in obstacles:obstacle.update()# 检测碰撞if t_rex.x < obstacle.x + obstacle.width and \t_rex.x + t_rex.width > obstacle.x and \t_rex.y < obstacle.y + obstacle.height and \t_rex.height + t_rex.y > obstacle.y:# 碰撞检测到,显示游戏结束画面show_game_over_screen(score)return# 更新得分for obstacle in obstacles:if obstacle.x + obstacle.width < t_rex.x:score += 1obstacles.remove(obstacle)  # 删除已通过的障碍物# 变换背景颜色bg_color_change_timer += 1if bg_color_change_timer > bg_color_change_interval:bg_color = black if bg_color == white else whitebg_color_change_timer = 0screen.fill(bg_color)screen.blit(ground, (0, screen_height - ground_height))  # 显示地面t_rex.draw(screen)for obstacle in obstacles:obstacle.draw(screen)# 显示得分score_text = font.render(f'Score: {score}', True, black if bg_color == white else white)screen.blit(score_text, (10, 10))pygame.display.update()clock.tick(fps)if __name__ == "__main__":while True:game_loop()

trex.py

import pygame
import osclass TRex:def __init__(self, screen_width, screen_height):# 获取当前脚本文件所在的目录current_path = os.path.dirname(__file__)# 拼接图片文件的完整路径image_path = os.path.join(current_path, 'assets', 'trex.png')self.image = pygame.image.load(image_path)self.image = pygame.transform.scale(self.image, (50, 50))  # 缩放图片self.x = 50self.y = screen_height - 70 - 20  # 调整位置以适应地面高度self.width = 50self.height = 50self.jump_speed = 20  # 跳跃速度self.gravity = 2  # 重力self.velocity = 0  # 初始速度self.is_jumping = False  # 跳跃状态self.screen_width = screen_widthself.screen_height = screen_heightdef jump(self):if not self.is_jumping:self.is_jumping = Trueself.velocity = -self.jump_speeddef update(self):if self.is_jumping:self.y += self.velocityself.velocity += self.gravity# 检查是否着地if self.y >= self.screen_height - 70 - 20:self.y = self.screen_height - 70 - 20self.is_jumping = Falseself.velocity = 0def draw(self, screen):screen.blit(self.image, (self.x, self.y))

obstacles.py

import pygame
import osclass Obstacle:def __init__(self, screen_width, screen_height):# 获取当前脚本文件所在的目录current_path = os.path.dirname(__file__)# 拼接图片文件的完整路径image_path = os.path.join(current_path, 'assets', 'cactus.png')self.image = pygame.image.load(image_path)self.image = pygame.transform.scale(self.image, (50, 50))  # 缩放图片self.x = screen_widthself.y = screen_height - 70 - 20  # 调整位置以适应地面高度self.width = 50self.height = 50self.speed = 10def update(self):self.x -= self.speeddef draw(self, screen):screen.blit(self.image, (self.x, self.y))

解释
背景颜色切换:在主程序中,我们使用一个计时器bg_color_change_timer来控制背景颜色的变化。每当计时器达到设定的间隔时,背景颜色在白色和黑色之间切换。
地面调整:调整了T-Rex和障碍物的垂直位置以适应地面高度。

效果图

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

前端面试项目细节重难点分享(十三)

面试题提问&#xff1a;分享你最近做的这个项目&#xff0c;并讲讲该项目的重难点&#xff1f; 答&#xff1a;最近这个项目是一个二次迭代开发项目&#xff0c;迭代周期一年&#xff0c;在做这些任务需求时&#xff0c;确实有很多值得分享的印象深刻的点&#xff0c;我讲讲下面…

go语言学习文档精简版

Go语言是一门开源的编程语言&#xff0c;目的在于降低构建简单、可靠、高效软件的门槛。Go平衡了底层系统语言的能力&#xff0c;以及在现代语言中所见到的高级特性。 你好&#xff0c;Go package main // 程序组织成包import "fmt" // fmt包用于格式化输出数据// …

排序算法详解

​ &#x1f48e;所属专栏&#xff1a;数据结构与算法学习 &#x1f48e; 欢迎大家互三&#xff1a;2的n次方_ &#x1f341;1. 插入排序 &#x1f341;1.1 直接插入排序 插入排序是一种简单直观的排序算法&#xff0c;它的原理是通过构建有序序列&#xff0c;对于未排序数…

使用 Visual Studio 2022 自带的 cl.exe 测试编译 opencv helloworld

1. 参考博客&#xff1a;https://blog.csdn.net/yangSHU21/article/details/130237669( 利用OpenCV把一幅彩色图像转换成灰度图 )( 代码用的此博客的&#xff0c;就改了下图片文件路径而已 )。 2. 编译探索步骤&#xff1a; test.cpp&#xff1a; #include <iostream>…

Golang | Leetcode Golang题解之第283题移动零

题目&#xff1a; 题解&#xff1a; func moveZeroes(nums []int) {left, right, n : 0, 0, len(nums)for right < n {if nums[right] ! 0 {nums[left], nums[right] nums[right], nums[left]left}right} }

单证不一致清关难题 | 国际贸易综合服务平台 | 箱讯科技

什么是单证一致&#xff1f; 单证一致出口方所提供的所有单据要严格符合进口方开证银行所开信用证的要求&#xff0c;或者说出口方制作和提供的所有与本项货物买卖有关的单据&#xff0c;与进口方申请开立的信用证对单据的要求完全吻合&#xff0c;没有矛盾。 添加图片注释&am…

【Stable Diffusion】(基础篇四)—— 模型

模型 本系列博客笔记主要参考B站nenly同学的视频教程&#xff0c;传送门&#xff1a;B站第一套系统的AI绘画课&#xff01;零基础学会Stable Diffusion&#xff0c;这绝对是你看过的最容易上手的AI绘画教程 | SD WebUI 保姆级攻略_哔哩哔哩_bilibili 本文主要讲解如何下载和使…

Spire.PDF for .NET【文档操作】演示:在 PDF 中添加、隐藏或删除图层

PDF 图层是一种将 PDF 文件的内容按图层排列的功能&#xff0c;允许用户在同一个 PDF 文件中选择性地将某些内容设置为可见&#xff0c;将其他内容设置为不可见。PDF 图层是分层艺术品、地图和 CAD 图纸中使用的常见元素。本文将演示如何使用Spire.PDF for .NET以编程方式在 PD…

分类常用的评价指标-二分类/多分类

二分类常用的性能度量指标 精确率、召回率、F1、TPR、FPR、AUC、PR曲线、ROC曲线、混淆矩阵 「精确率」查准率 PrecisionTP/(TPFP) 「召回率」查全率RecallTP/(TPFN) 「真正例率」即为正例被判断为正例的概率TPRTP/(TPFN) 「假正例率」即为反例被判断为正例的概率FPRFP/(TNFP)…

唯众物联网(IOT)全功能综合实训教学解决方案

一、引言 在信息技术日新月异的今天&#xff0c;物联网&#xff08;IoT&#xff09;作为推动数字化转型的关键力量&#xff0c;其触角已延伸至我们生活的方方面面&#xff0c;深刻地重塑了工作模式、生活习惯乃至社会结构的每一个角落。面对这一前所未有的变革浪潮&#xff0c…

Java的类加载机制

Java的类加载机制是指将类的字节码文件&#xff08;.class文件&#xff09;加载到JVM中并将其转换为Class对象的过程。这个过程由类加载器&#xff08;ClassLoader&#xff09;完成。Java的类加载机制具有动态性和灵活性&#xff0c;使得Java能够支持动态加载类、实现模块化开发…

day4 vue2以及ElementUI

创建vue2项目 可能用到的命令行们 vue create 项目名称 // 创建项目 cd 项目名称 // 只有进入项目下&#xff0c;才能运行 npm run serve // 运行项目 D: //切换盘符 更改 Vue项目的端口配置 基础语法 项目创建完成之后&#xff0c;会有一个组件HelloWorld.vue&#xff0c;…

推动智慧交通建设,边缘计算赋能交通信号灯数据处理与决策能力

随着智慧城市建设的快速发展&#xff0c;智慧交通已成为城市发展的重要组成项目。智慧交通旨在通过大数据、人工智能、物联网等先进技术&#xff0c;实现交通系统的全面感知、智能分析、主动服务和协同管理。边缘计算在交通信号灯物联网应用中展现了交通信号灯数据处理与决策能…

手机怎么设置不同的ip地址

在数字化日益深入的今天&#xff0c;智能手机已成为我们生活、工作和学习中不可或缺的设备。然而&#xff0c;随着网络应用的广泛和深入&#xff0c;我们有时需要为手机设置不同的IP地址来满足特定需求。比如&#xff0c;避免网络限制、提高网络安全、或者进行网络测试等。本文…

内网对抗-隧道技术篇防火墙组策略HTTP反向SSH转发出网穿透CrossC2解决方案

知识点&#xff1a; 1、C2/C2上线-CrossC2插件-多系统平台支持 2、隧道技术篇-应用层-SSH协议-判断&封装&建立&穿透 3、隧道技术篇-应用层-HTTP协议-判断&封装&建立&穿透隧道技术主要解决网络通讯问题&#xff1a;遇到防火墙就用隧道技术&#xff0c;…

Ubuntu设置网络

进入网络配置文件夹 cd /etc/netplan 使用 vim 打开下的配置文件 打开后的配置 配置说明&#xff1a; network:# 网络配置部分ethernets:# 配置名为ens33的以太网接口ens33:addresses:# 为ens33接口分配IP地址192.168.220.30&#xff0c;子网掩码为24位- 192.168.220.30/24n…

软考-软件设计师(3)-数据结构与算法:树、图、队列、查找算法、排序算法、霍夫曼编码/树、环路复杂性、算法/时间复杂度/空间复杂度等高频考点

场景 软考-软件设计师-数据结构与算法模块高频考点整理。 以下为高频考点、知识点汇总,不代表该模块所有知识点覆盖,请以官方教程提纲为准。 注: 博客:霸道流氓气质-CSDN博客 实现 知识点 树:节点的度、树的度、深度、高度、满二叉树、完全二叉树、平衡二叉树、B树…

利用宝塔部署前后端分离springboot项目,以EasyPan为例

前置准备 服务器购买 请参考其他教程&#xff0c;这里不再赘述。 项目 部署到服务器前请确保项目在本地运行正常 安装宝塔面板 宝塔Linux面板的安装配置以及基本使用教程&#xff08;超详细&#xff09;_宝塔linux面板新手使用教程-CSDN博客 sql文件 IDEA中怎样导出数据…

删除的视频怎样才能恢复?详尽指南

在日常生活中&#xff0c;我们有时会不小心删除一些重要的视频文件&#xff0c;或者在整理存储空间时不慎丢失了珍贵的记忆片段。这时候&#xff0c;我们可以通过一些数据恢复工具和技巧&#xff0c;找回这些被删除的视频。本文将详细介绍几种常见且有效的视频恢复方法&#xf…

Vue与ASP.NET Core Web Api设置localhost与本地ip地址皆可访问

Vue的设置 我们创建并启动一个Vue项目&#xff0c;如下所示&#xff1a; 打开cmd&#xff0c;输入ipconfig查询本地ip地址&#xff1a; 想通过本地ip地址访问&#xff0c;把localhost改成本地ip地址&#xff0c;发现打不开&#xff1a; 这是因为Vue项目默认只有localhost&…