python练习-袭击敌机

$ python -m pip install --user pygame

1、画游戏框

class Settings:def __init__(self):self.screen_width = 1200self.screen_height = 800self.bg_color = (230, 230, 230)
import sys
import pygame
from settings import Settingsclass AlienInvasion:def __init__(self):pygame.init()self.settings = Settings()# 设置边框 创建一个屏幕对象,并设置其宽度和高度。self.screen = pygame.display.set_mode((self.settings.screen_width, self.settings.screen_height))# 设置窗口标题pygame.display.set_caption("外星战机游戏")# 绘制def _update_screen(self):# 绘制背景self.screen.fill(self.settings.bg_color)# 绘制课件pygame.display.flip()# 运行def run_game(self):while True:self._update_screen()AlienInvasion().run_game()

这笔记是我把程序写完才落成笔记的,复盘

这里闪退,百思不得其解

在 Pygame 中,如果不处理事件(如关闭窗口事件),程序会因为无法响应这些事件而立即退出。问题分析:缺少事件处理:你的 run_game 方法中没有处理任何事件,包括关闭窗口的事件。因此,当窗口关闭事件发生时,程序没有机会响应,导致立即退出。缺少必要的更新:虽然你有 _update_screen 方法来更新屏幕,但没有处理游戏逻辑和用户输入。

2、造飞机

在ship类定义飞机属性

import sys
import pygame
from settings import Settings
from ship import Shipclass AlienInvasion:def __init__(self):pygame.init()self.settings = Settings()# 设置边框 创建一个屏幕对象,并设置其宽度和高度。self.screen = pygame.display.set_mode((self.settings.screen_width, self.settings.screen_height))# 设置窗口标题pygame.display.set_caption("外星战机游戏")self.ship = Ship(self)# 绘制def _update_screen(self):# 绘制背景self.screen.fill(self.settings.bg_color)# 绘制小飞船self.ship.blitme()# 绘制课件pygame.display.flip()AlienInvasion().run_game()
# 管理飞船类
class Ship:def __init__(self, ai_name):# 飞船和初始位置self.screen = ai_name.screenself.screen_rect = ai_name.screen.get_rect()# 加载飞船图形self.image = pygame.image.load("ship.bmp")self.rect = self.image.get_rect()def blitme(self):# 绘制飞船self.screen.blit(self.image, self.rect)def center_ship(self):# 生成飞船在居中底端self.rect.midbottom=self.screen_rect.midbottomself.x=float(self.rect.x)

3、开飞机

import sys
import pygame
from settings import Settings
from ship import Shipclass AlienInvasion:def __init__(self):pygame.init()self.settings = Settings()# 设置边框 创建一个屏幕对象,并设置其宽度和高度。self.screen = pygame.display.set_mode((self.settings.screen_width, self.settings.screen_height))#  设置窗口标题pygame.display.set_caption("外星战机游戏")self.ship = Ship(self)def run_game(self):while True:self._check_event()self.ship.update()self._update_screen()# 监控外设def _check_event(self):for event in pygame.event.get():if event.type == pygame.QUIT:sys.exit()elif event.type == pygame.KEYDOWN:self._check_key_down(event)elif event.type == pygame.KEYUP:self._check_key_up(event)# 按键按下监控def _check_key_down(self, event):if event.key == pygame.K_RIGHT:self.ship.moving_right = Trueif event.key == pygame.K_LEFT:self.ship.moving_left = Trueif event.key == pygame.K_UP:self.ship.moving_up = Trueif event.key == pygame.K_DOWN:self.ship.moving_down = Trueif event.key == pygame.K_SPACE:self.bullet.launch = True# 按键松开监控def _check_key_up(self, event):if event.key == pygame.K_RIGHT:self.ship.moving_right = Falseif event.key == pygame.K_LEFT:self.ship.moving_left = Falseif event.key == pygame.K_UP:self.ship.moving_up = Falseif event.key == pygame.K_DOWN:self.ship.moving_down = Falsedef run_game(self):while True:self._check_event()self.ship.update()self._update_screen()AlienInvasion().run_game()
import pygame# 管理飞船类
class Ship:def __init__(self, ai_name):# 飞船和初始位置self.screen = ai_name.screenself.screen_rect = ai_name.screen.get_rect()# 加载飞船图形self.image = pygame.image.load("C:/Users/MGL/Desktop/py_test/Alien/ship.bmp")self.rect = self.image.get_rect()# 底部中央self.rect.midbottom = self.screen_rect.midbottomself.moving_right = Falseself.moving_left = Falseself.moving_up = Falseself.moving_down = False# 持续移动 并设置限制def update(self):if self.moving_right and self.rect.right < self.screen_rect.right:self.rect.x += 1elif self.moving_left and self.rect.left > self.screen_rect.left:self.rect.x -= 1elif self.moving_up and self.rect.y > self.screen_rect.top:# self.screen_rect.top为0self.rect.y -= 1elif self.moving_down and self.rect.y < self.screen_rect.bottom - 100:self.rect.y += 1

4、造导弹

import sys
import pygame
from settings import Settings
from ship import Ship
from bullet import Bulletclass AlienInvasion:def __init__(self):pygame.init()self.settings = Settings()# 设置边框 创建一个屏幕对象,并设置其宽度和高度。self.screen = pygame.display.set_mode((self.settings.screen_width, self.settings.screen_height))#  设置窗口标题pygame.display.set_caption("外星战机游戏")self.ship = Ship(self)self.bullet = Bullet(self)def run_game(self):while True:self._check_event()self.ship.update()self.bullet.bullets.update()# self._update_aliens()self._update_screen()# 监控外设def _check_event(self):for event in pygame.event.get():if event.type == pygame.QUIT:sys.exit()elif event.type == pygame.KEYDOWN:self._check_key_down(event)elif event.type == pygame.KEYUP:self._check_key_up(event)# 按键按下监控def _check_key_down(self, event):if event.key == pygame.K_RIGHT:self.ship.moving_right = Trueif event.key == pygame.K_LEFT:self.ship.moving_left = Trueif event.key == pygame.K_UP:self.ship.moving_up = Trueif event.key == pygame.K_DOWN:self.ship.moving_down = Trueif event.key == pygame.K_SPACE:self.bullet.launch = True# 按键松开监控def _check_key_up(self, event):if event.key == pygame.K_RIGHT:self.ship.moving_right = Falseif event.key == pygame.K_LEFT:self.ship.moving_left = Falseif event.key == pygame.K_UP:self.ship.moving_up = Falseif event.key == pygame.K_DOWN:self.ship.moving_down = Falseif event.key == pygame.K_SPACE:self.bullet.launch = False# 绘制def _update_screen(self):# 绘制背景self.screen.fill(self.settings.bg_color)# 绘制小飞船self.ship.blitme()self.bullet.launch_bullet(self)# 绘制课件pygame.display.flip()AlienInvasion().run_game()
# 设置类
class Settings:def __init__(self):self.screen_width = 1200self.screen_height = 800self.bg_color = (230, 230, 230)# 子弹设置self.bullet_speed = 2self.bullet_width = 3self.bullet_height = 15self.bullet_color = (60, 60, 60)self.bullet_allowed = 5
import pygame
from pygame.sprite import Sprite# 管理发射子弹类
class Bullet(Sprite):def __init__(self, ai_name):super().__init__()self.screen = ai_name.screenself.settings = ai_name.settingsself.color = self.settings.bullet_color# 连续射击标识符self.launch = False# 绘画子弹self.rect = pygame.Rect(0, 0, self.settings.bullet_width, self.settings.bullet_height)# 子弹在飞船上面self.rect.midtop = ai_name.ship.rect.midtop# 子弹位置self.y = float(self.rect.y)# 装弹弹夹self.bullets = pygame.sprite.Group()def update(self):# 子弹移动self.y -= self.settings.bullet_speedself.rect.y = self.y# 装弹def _fire_bullet(self, alien):if len(self.bullets) < self.settings.bullet_allowed:new_bullet = Bullet(alien)self.bullets.add(new_bullet)# 连续发射def launch_bullet(self, alien):if self.launch:self._fire_bullet(alien)for bullet in self.bullets.sprites():# 删除触顶的子弹if bullet.rect.bottom <= 0:self.bullets.remove(bullet)bullet.draw_bullet()# 绘制子弹def draw_bullet(self):pygame.draw.rect(self.screen, self.color, self.rect)

5、出现敌机

# 设置类
class Settings:def __init__(self):self.screen_width = 1200self.screen_height = 800self.bg_color = (230, 230, 230)# 子弹设置self.bullet_speed = 2self.bullet_width = 3self.bullet_height = 15self.bullet_color = (60, 60, 60)self.bullet_allowed = 5self.alien_sheep = 0.3self.fleet_drop_speed = 1#     # 1 右移 -1 左移self.fleet_drop_direction = 1
import sys
import pygame
from settings import Settings
from ship import Ship
from bullet import Bullet
from alien import Alienclass AlienInvasion:def __init__(self):pygame.init()self.settings = Settings()# 设置边框 创建一个屏幕对象,并设置其宽度和高度。self.screen = pygame.display.set_mode((self.settings.screen_width, self.settings.screen_height))#  设置窗口标题pygame.display.set_caption("外星战机游戏")self.ship = Ship(self)self.bullet = Bullet(self)self.alien = Alien(self)def run_game(self):while True:self._check_event()self.ship.update()self.bullet.bullets.update()self._update_aliens()self._update_screen()# 忽略其他代码def _create_fleet(self):alien_n = Alien(self)alien_width = self.alien.rect.widthalien_height = self.alien.rect.height# 一行敌机占多少宽度 给屏幕两边留有移动空间available_space_x = self.settings.screen_width - (2 * alien_width)# 计算可以放多少量敌机 (每个外星人间隔一个外星人宽度的距离)所以  2 * alien_widthnumber_aliens_x = available_space_x // (2 * alien_width)# 计算屏幕可容纳多少行ship_height = self.ship.rect.height# 敌机占据的高度available_space_y = (self.settings.screen_height - (3 * alien_height) - ship_height)# 间隔有个敌机number_rows = available_space_y // (2 * alien_height)# 创建敌机for row_num in range(number_rows):for alien_num in range(number_aliens_x):self._create_alien(alien_num, row_num, alien_width)def _create_alien(self, alien_num, row_num, alien_width):alien = Alien(self)# 2 * alien_width * alien_num 定位起始位置alien.x = alien_width + 2 * alien_width * alien_numalien.rect.x = alien.xalien.rect.y = alien.rect.height + 2 * alien.rect.height * row_numself.alien.aliens.add(alien)def _update_aliens(self):self.alien._check_fleet_edges()self.alien.aliens.update()def _update_bullets(self):# 打完敌机再来一群if not self.alien.aliens:# 清空弹夹并新建敌机self.bullet.bullets.empty()self._create_fleet()# 绘制def _update_screen(self):# 绘制背景self.screen.fill(self.settings.bg_color)# 绘制小飞船self.ship.blitme()self.bullet.launch_bullet(self)self.alien.aliens.draw(self.screen)self._update_bullets()# 绘制课件pygame.display.flip()AlienInvasion().run_game()
import pygame
from pygame.sprite import Spriteclass Alien(Sprite):def __init__(self, ai_name):super().__init__()self.screen = ai_name.screenself.screen_rect = ai_name.screen.get_rect()self.image = pygame.image.load("alien.bmp")self.rect = self.image.get_rect()self.settings = ai_name.settings# 敌机 最初位置self.rect.x = self.rect.widthself.rect.y = self.rect.heightself.x = float(self.rect.x)self.aliens = pygame.sprite.Group()def update(self):# 左移右移self.x += self.settings.alien_sheep * self.settings.fleet_drop_directionself.rect.x = self.xdef _check_fleet_edges(self):# 有外星人到达边缘时采取相应的措施。# self.aliens.sprites() 遍历for alien in self.aliens.sprites():if alien._check_edges():self._change_fleet_direction()breakdef _check_edges(self):# 如果外星人位于屏幕边缘,就返回True# 获取游戏框信息screen_rect = self.screen.get_rect()# 判断是否有敌机超出游戏框范围if self.rect.right >= screen_rect.right or self.rect.left <= 0:return Truedef _change_fleet_direction(self):# 将整群外星人下移,并改变它们的方向for alien in self.aliens.sprites():alien.rect.y += self.settings.fleet_drop_speedalien.rect.y += 1self.settings.fleet_drop_direction *= -1

6、打敌机

敌机打完重新开局,敌机接触到底部重新开局

# pygame.sprite.groupcollide(group1, group2, dokill1, dokill2, collided=None)
# group1: 第一个精灵组。通常是一个 pygame.sprite.Group 对象。
# group2: 第二个精灵组。通常也是一个 pygame.sprite.Group 对象。
# dokill1: 一个布尔值,表示是否在发生碰撞后从 group1 中移除发生碰撞的精灵。如果设置为 True,则发生碰撞的精灵会被自动删除。
# dokill2: 一个布尔值,表示是否在发生碰撞后从 group2 中移除发生碰撞的精灵。如果设置为 True,则发生碰撞的精灵会被自动删除。
# collided: 可选参数,一个函数,用于确定两个精灵是否发生碰撞。默认情况下,Pygame 使用矩形碰撞检测。如果提供了一个函数,该函数应该接受两个精灵作为参数,并返回一个布尔值。pygame.sprite.spritecollideany 是 Pygame 中用于检测单个精灵与一个精灵组之间是否发生碰撞的函数sprite: 单个精灵对象。通常是一个 pygame.sprite.Sprite 的子类实例。
group: 精灵组。通常是一个 pygame.sprite.Group 对象。
collided: 可选参数,一个函数,用于确定两个精灵是否发生碰撞。默认情况下,Pygame 使用矩形碰撞检测。如果提供了一个函数,该函数应该接受两个精灵作为参数,并返回一个布尔值。
如果 sprite 与 group 中的任何一个精灵发生碰撞,返回 True;否则返回 False
import sys
import pygame
from settings import Settings
from ship import Ship
from bullet import Bullet
from alien import Alien
import timeclass AlienInvasion:# 忽略其他代码def _update_aliens(self):self.alien._check_fleet_edges()self.alien.aliens.update()# 与敌机碰撞判断if pygame.sprite.spritecollideany(self.ship, self.alien.aliens):self._ship_hit()# 检查敌机是否到底部self._check_aliens_bottom()def _update_bullets(self):# 检查是否击中敌机 如果是 则删除# collisions = pygame.sprite.groupcollide(self.bullet.bullets, self.alien.aliens, True, True)# 打完敌机再来一群if not self.alien.aliens:# 清空弹夹并新建敌机self.bullet.bullets.empty()self._create_fleet()def _ship_hit(self):self.alien.aliens.empty()self.bullet.bullets.empty()self._create_fleet()self.ship.center_ship()time.sleep(0.5)def _check_aliens_bottom(self):# 检查是否有外星人到达了屏幕底端screen_rect = self.screen.get_rect()for alien in self.alien.aliens.sprites():if alien.rect.bottom >= screen_rect.bottom:# 像飞船被撞到一样处理。self._ship_hit()break

7、记分

class GameStats:def __init__(self, ai_name):self.settings = ai_name.settingsself.reset_stats()def reset_stats(self):self.score = 0
import pygame.fontclass ScoreBoard:# 显示得分信息的类def __init__(self, ai_game):# 初始化显示得分涉及的属性self.screen = ai_game.screenself.screen_rect = self.screen.get_rect()self.settings = ai_game.settingsself.stats = ai_game.stats# 显示得分信息时使用的字体设置self.text_color = (30, 30, 30)self.font = pygame.font.SysFont(None, 48)# 准备初始得分图像self.prep_score()def prep_score(self):# 将得分转换为一幅渲染的图像score_str = str(self.stats.score)self.score_image = self.font.render(score_str, True, self.text_color, self.settings.bg_color)# 在屏幕右上角显示得分。self.score_rect = self.score_image.get_rect()self.score_rect.right = self.screen_rect.right - 20self.score_rect.top = 20def show_score(self):# 在屏幕上显示得分self.screen.blit(self.score_image, self.score_rect)
import sys
import pygame
from settings import Settings
from ship import Ship
from bullet import Bullet
from alien import Alien
from game_stats import GameStats
import time
from score_board import ScoreBoardclass AlienInvasion:def __init__(self):pygame.init()self.settings = Settings()# 设置边框 创建一个屏幕对象,并设置其宽度和高度。self.screen = pygame.display.set_mode((self.settings.screen_width, self.settings.screen_height))#  设置窗口标题pygame.display.set_caption("外星战机游戏")self.ship = Ship(self)self.bullet = Bullet(self)self.alien = Alien(self)self.stats = GameStats(self)self.score = ScoreBoard(self)# 忽略部分代码def _update_bullets(self):# 检查是否击中敌机 如果是 则删除collisions = pygame.sprite.groupcollide(self.bullet.bullets, self.alien.aliens, True, True)# 打完敌机再来一群if not self.alien.aliens:# 清空弹夹并新建敌机self.bullet.bullets.empty()self._create_fleet()if collisions:self.stats.score += self.settings.alien_pointsself.score.prep_score()def _ship_hit(self):# self.stats.ship_left -= 1self.alien.aliens.empty()self.bullet.bullets.empty()self._create_fleet()self.ship.center_ship()self.stats.score = 0self.score.prep_score()time.sleep(0.5)# 绘制def _update_screen(self):# 绘制背景self.screen.fill(self.settings.bg_color)# 绘制小飞船self.ship.blitme()self.bullet.launch_bullet(self)self.alien.aliens.draw(self.screen)self._update_bullets()# 显示得分self.score.show_score()# 绘制课件pygame.display.flip()AlienInvasion().run_game()

8、番外

  • 按键
import pygame.fontclass Button:def __init__(self, ai_name, msg):self.screen = ai_name.screenself.screen_rect = ai_name.screen.get_rect()# 设置按钮的尺寸和其他属性。self.width, self.height = 200, 50self.button_color = (0, 255, 0)self.text_color = (255, 255, 255)self.font = pygame.font.SysFont(None, 48)# 创建按钮的rect对象,并使其居中。self.rect = pygame.Rect(0, 0, self.width, self.height)self.rect.center = self.screen_rect.center# 按钮的标签只需创建一次。self._prep_msg(msg)def _prep_msg(self, msg):# 将msg渲染为图像,并使其在按钮上居中self.msg_image = self.font.render(msg, True, self.text_color, self.button_color)self.msg_image_rect = self.msg_image.get_rect()self.msg_image_rect.center = self.rect.centerdef draw_button(self):# 绘制一个用颜色填充的按钮,再绘制文本。self.screen.fill(self.button_color,self.rect)self.screen.blit(self.msg_image,self.msg_image_rect)
# from button import Button
#self.play_button = Button(self, "Play")
## 绘制按钮
# self.play_button.draw_button()
## 隐藏鼠标光标
# pygame.mouse.set_visible(false)

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

windows server2019下载docker拉取redis等镜像并运行项目

一、基本概念 1、windows server 指由微软公司开发的“Windows”系列中的“服务器”版本。这意味着它是基于Windows操作系统的&#xff0c;但专门设计用于服务器环境&#xff0c;而不是普通的桌面或个人用户使用。主要用途包括服务器功能、用户和资源管理、虚拟化等 2、dock…

软件设计师中级 第9章 数据库技术基础

9.1 基本概念 9.1.1 数据库的三级模式结构 数据库系统有三级模式结构&#xff0c;一个数据库可以由多个外模式&#xff0c;只能有一个内模式。 视图对应外模式、基本表对应模式&#xff08;概念模式&#xff09;、存储文件对应内模式。 外模式 也称子模式&#xff08;Subsch…

1.python介绍、安装

python可以做什么&#xff1f; 1.自动化脚本&#xff08;运维开发、测试开发等&#xff09; 2.自动化办公 3.web应用程序 4.基于python完成数据计算&#xff08;生物、化学、物理&#xff09; 5.基于python开发AI程序 6.完成大数据开发Spark、Flink 想要与计算机交流&am…

一文学会easyexcel导入数据,多sheet页、字典转换【附带源码】

文章目录 前言一、业务流程二、实现1、引入easyexcel、fastjson、lombok包2、创建Json工具类3、创建自定义字典转换注解4、创建字典转换实现类5、创建数据对象类6、创建多sheet页封装对象7、创建Excel导入工具类8、创建测试类 三、接口测试1、启用项目2、使用数据导出的文件&am…

大模型微调技术 --> IA3

IA3 1.摘要 我们引入了一种名为 ( I A ) 3 (IA)^3 (IA)3 (通过抑制和放大内部激活的注入适配器, Infused Adapter by Inhibiting and Amplifying Inner Activations)的新的PEFT方法&#xff0c;该方法通过学习向量缩放激活&#xff0c;在只引入相对少量的新参数的情况下获得更…

Liunx:进程控制

进程终止 三种场景&#xff0c;进程结束结果正确&#xff0c;进程结束不正确&#xff0c;异常终止。 进程的退出码&#xff0c;也就是return&#xff0c;表征着进程运行结果是否正常&#xff0c;return 返回值被父进程接收。return 0表示进程运行结束并且结果正确。他是给用户的…

C++builder中的人工智能(12):了解ELU(Exponential Linear Unit)——人工神经网络中的激活函数

在这篇文章中&#xff0c;我们将解释什么是指数线性单元&#xff08;ELU&#xff09;&#xff0c;以及如何利用ELU激活函数。通过学习这些知识&#xff0c;你将能够使用C软件创建C应用程序。 我们需要了解哪些关于激活函数的知识&#xff1f; 激活函数&#xff08;phi()&#…

从0开始学习机器学习--Day19--学习曲线

一般来说&#xff0c;如果一个算法的表现不理想&#xff0c;那么多半是因为出现了欠拟合或过拟合问题&#xff0c;这种时候我们要做的就是搞清楚出现的是偏差问题还是方差问题&#xff0c;亦或是二者皆有&#xff0c;这有助于我们精准定位问题所在。 之前&#xff0c;我们发现…

豆包大模型团队开源RLHF框架,破解强化学习训练部署难题

1. 引言 1.1 强化学习 强化学习&#xff08;Reinforcement Learning, RL&#xff09;是与监督学习和无监督学习并列的一种机器学习方法&#xff0c;其用于描述和解决智能体&#xff08;agent&#xff09;在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题…

练习LabVIEW第四十三题

学习目标&#xff1a; 模拟红绿灯&#xff0c;红灯亮十秒&#xff0c;绿灯亮五秒&#xff0c;交替&#xff0c;并用波形图将波形显示 开始编写&#xff1a; 前面板 两个指示灯&#xff0c;一个红色&#xff0c;一个绿色&#xff0c;一个波形图&#xff1b; 程序框图 创建…

css:基础

前言 我们之前其实也可以写出一个看起来算是一个网页的网页&#xff0c;为什么我们还要学css&#xff1f; CSS&#xff08;Cascading Style Sheets&#xff09;也叫层叠样式表&#xff0c;是负责美化的&#xff0c;我们之前说html就是一个骨架&#xff0c;css就可以用来美化网…

解析 “Cookies Not Marked as HttpOnly” 漏洞

一、引言 在 Web 应用安全领域&#xff0c;Cookies 相关的漏洞一直是备受关注的问题。其中&#xff0c;“Cookies Not Marked as HttpOnly” 漏洞可能会对用户数据安全和网站的正常运行造成潜在威胁。本文将详细介绍这个漏洞&#xff0c;包括其原理、影响、检测方法以及修复措…

基于MATLAB DCT域图像水印技术

1数字水印技术的概念和特点 数字水印&#xff08;Digital Watermark&#xff09;技术是将与多媒体内容相关或不相关的一些标示信息直接嵌入多媒体内容当中&#xff0c;但不影响原内容的使用价值&#xff0c;并不容易被人的知觉系统觉察或注意到。通过这些隐藏在多媒体内容中的…

【语义分割|代码解析】CMTFNet-2: CNN and Multiscale Transformer Fusion Network 用于遥感图像分割!

【语义分割|代码解析】CMTFNet-2: CNN and Multiscale Transformer Fusion Network 用于遥感图像分割&#xff01; 【语义分割|代码解析】CMTFNet-2: CNN and Multiscale Transformer Fusion Network 用于遥感图像分割&#xff01; 文章目录 【语义分割|代码解析】CMTFNet-2: …

在暗处执着生长,终有一日馥郁传香

总有人说很孤独&#xff0c;一个人吃饭&#xff0c;一个人上班&#xff0c;一个人逛街&#xff1b; 总有人又说享受孤独&#xff0c;面对时间&#xff0c;迎接苦难&#xff0c;战胜痛苦&#xff1b; 可没人说这些的大前提是你要有信念支撑啊&#xff0c;如果干完了上面的所有&a…

揭秘集装箱箱号自动识别原理,箱号识别算法

集装箱箱号自动识别算法是一种高效且实用的软件工具。它利用相机、手机或其他摄像头捕获集装箱箱号图像&#xff0c;并通过深度学习的OCR&#xff08;光学字符识别&#xff09;识别技术对集装箱号码进行准确识别。要想进行集装箱箱号识别&#xff0c;需要以下几个基本步骤&…

JavaScript 网页设计详解教程

JavaScript 网页设计详解教程 引言 JavaScript 是一种广泛使用的编程语言&#xff0c;主要用于网页开发。它使得网页具有动态交互性&#xff0c;能够响应用户的操作。随着前端开发的不断发展&#xff0c;JavaScript 已成为现代网页设计中不可或缺的一部分。本文将详细介绍 Ja…

高新技术企业知识库搭建:在创新创业中的支撑作用

在快速迭代的科技时代&#xff0c;高新技术企业&#xff08;以下简称“高企”&#xff09;作为推动经济社会发展的核心力量&#xff0c;正面临着前所未有的创新挑战与机遇。知识库&#xff0c;作为信息时代的智慧宝库&#xff0c;不仅承载着企业内部的宝贵知识与经验&#xff0…

ReposVul: A Repository-Level High-Quality Vulnerability Dataset 论文阅读

本文发表于 ICSE2024 会议中。 引入 在过去的漏洞数据库中&#xff0c;主要存在以下几种问题&#xff1a; 无效补丁&#xff08;Tangled Patches&#xff09;&#xff1a;针对某个漏洞的补丁无法正确修复该漏洞缺乏跨函数漏洞&#xff08;Inter-procedural Vulnerabilities&…

【图解版】力扣第70题:爬楼梯

推理出状态表达式 f(5)表示到达第5层&#xff0c;所有可能的方法数。 到达第5层&#xff0c;有可能是从第4层走一步上来&#xff0c;也有可能是从第3层走两步上来。所以我们可以慢慢延伸&#xff0c;画出上面&#x1f446;&#x1f3fb;的图。 从图中&#xff0c;我们可以看到…