外星人入侵游戏-(创新版)

🌈write in front🌈
🧸大家好,我是Aileen🧸.希望你看完之后,能对你有所帮助,不足请指正!共同学习交流.
🆔本文由Aileen_0v0🧸 原创 CSDN首发🐒 如需转载还请通知⚠️
📝个人主页:Aileen_0v0🧸—CSDN博客
🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​
📣系列专栏:Aileen_0v0🧸的PYTHON学习系列专栏——CSDN博客
🗼我的格言:"没有罗马,那就自己创造罗马~" 

目录

首先,在python上 安装pygame

然后,创建文件夹 要注意分级别​

 插入的图片

主函数 Aileen_invasion的文件

创建外星人aileen的文件

子弹bullet的文件

按钮button的文件

 游戏数据game_stats的文件

游戏分数scoreboard的文件

游戏设置settings的文件 

游戏飞船ship的文件

​编辑 全屏模式下的游戏

​编辑

小窗口下的游戏


首先,在python上 安装pygame

资源--->https://download.csdn.net/download/Aileenvov/88301424?spm=1001.2014.3001.5503

然后转到228页,根据步骤进行安装

然后,创建文件夹 要注意分级别

 插入的图片

插入图片:需要注意图片的大小比例,否则可能显示不出来,这需要根据系统屏幕大小进行设置,

将所需要的图片和音乐拖到对应的文件夹,这是我的图片

主函数 Aileen_invasion的文件

import sys
from time import sleep
import pygame
from settings import Settings
from game_starts import GameStats
from scoreboard import Scoreboard
from button import Button
from ship import Ship
from bullet import Bullet
from aileen import Aileen
class AileenInvasion:"""Overall class to manage game assets and behavior.整体类来管理游戏资产和行为"""def __init__(self):#初始化"""Initialize the game, and create game resources."""pygame.init()self.settings = Settings()self.screen = pygame.display.set_mode((0,0),pygame.FULLSCREEN)self.settings.screen_width = self.screen.get_rect().widthself.settings.screen_height = self.screen.get_rect().height# self.screen = pygame.display.set_mode(#     (self.settings.screen_width,self.settings.screen_height))#类中变量前有self,说明该变量绑定在当前实例化本身pygame.display.set_caption("Aileen Invasion")# Creation an instance to store game statistics.self.stats = GameStats(self)# Create an instance to store game statics,# and create a scoreboard.self.sb = Scoreboard(self)self.ship = Ship(self)self.bullets = pygame.sprite.Group()#Group可以批量使用的函数self.aileens = pygame.sprite.Group()self._create_fleet()#Make the play button.self.play_button = Button(self,"Play")self.bg_color =(0,0,225)  #代表红 绿 蓝 三颜色# def _create_fleet(self):#     """Create the fleet of aileens."""#     #Make a aileen#     aileen = Aileen(self)#     self.aileens.add(aileen)#     #set the background color.def run_game(self): #功能:1监听事件,2处理事件,3更新屏幕事件"""Start the main loop for the game."""while True:# 1监听事件函数--监听和处理用户的行为self._check_events()#将监听事件(封装)外包给这个函数,减轻run_game的工作量---这个过程叫重构(refactory)if self.stats.game_active:# 2处理事件函数self.ship.update()#更新子弹self._update_bullets()self._update_aileens()# 3 屏幕更新函数self._update_screen()def _update_bullets(self):self.bullets.update()if not self.aileens:# Destory existing  bullets and create new fleetself.bullets.empty()self._create_fleet()# Get rid of the bullets that have disappeared.for bullet in self.bullets.copy():if bullet.rect.bottom <= 0:self.bullets.remove(bullet)self._check_bullet_aileen_collisions()def _check_bullet_aileen_collisions(self):"""Respond to bullet-aileen collisions."""""" Remove any bullets and aileens that have collided  """#👇collisions = pygame.sprite.groupcollide(self.bullets, self.aileens,True,True)if collisions:  #collision是字典类型变量# for aileens in collisions.values():self.stats.score += self.settings.aileen_points  #* len(aileens)for aileens in collisions.values():self.stats.score += self.settings.aileen_points * len(aileens)self.sb.prep_score()self.sb.check_high_score()self.sb.prep_high_score()if not self.aileens:# Destory existing bullets and create new fleet.self.bullets.empty()self._create_fleet()self.settings.increase_speed()# Increase levelself.stats.level += 1self.sb.prep_level()# print(len(self.bullets))# Watch for keyboard and mouse events.  监听用户在做什么操作--这里设置游戏菜单栏def _check_events(self): ##--snip--"""Respond to keypress and mouse events"""for event in pygame.event.get():if event.type == pygame.QUIT:sys.exit()elif event.type == pygame.KEYDOWN:self._check_keydown_events(event)elif event.type == pygame.KEYUP:self._check_keyup_events(event)elif event.type == pygame.MOUSEBUTTONDOWN:mouse_pos = pygame.mouse.get_pos()self._check_play_button(mouse_pos)def _check_play_button(self,mouse_pos):"""Start a new game when the player clicks Play."""button_clicked = self.play_button.rect.collidepoint(mouse_pos)if button_clicked and not self.stats.game_active:# Hide the mouse cursor.pygame.mouse.set_visible(False)# Reset the game statistics.self.stats.reset_stats()self.stats.game_active = True# 确保分数清0self.sb.prep_score()self.sb.prep_level()self.sb.prep_ships()# Get rid of any remaining aileens and bullets.self.aileens.empty()self.bullets.empty()#Create  A new fleet and center the ship.self._create_fleet()self.ship.center_ship()#Reset the game settings.self.settings.initialize_dynamic_settings()pygame.mixer.init()pygame.mixer.music.load("music/香香 - 猪之歌.mp3")# pygame.mixer.music.set_volume(2)pygame.mixer.music.play()def _check_keydown_events(self,event):"""Respond to keypress"""#判断右键if event.key == pygame.K_RIGHT:#处理右键self.ship.moving_right = Trueelif event.key == pygame.K_LEFT:self.ship.moving_left = Trueelif event.key == pygame.K_UP:self.ship.moving_up = Trueelif event.key == pygame.K_DOWN:self.ship.moving_down = Trueelif event.key == pygame.K_q:#按q键退出游戏sys.exit()elif event.key == pygame.K_SPACE:self._fire_bullet()def _check_keyup_events(self,event):"""Respond to key release."""if event.key == pygame.K_RIGHT:self.ship.moving_right = Falseelif event.key == pygame.K_LEFT:self.ship.moving_left = False# Move the ship to the right.self.ship.rect.x += 1elif event.key == pygame.K_m:self.screen = pygame.display.set_mode((0, 0), pygame.FULLSCREEN)self.settings.screen_width =self.screen.get_rect().widthself.settings.screen_height = self.screen.get_rect().heightself.ship = Ship(self)self.aliens = pygame.sprite.Group()self._create_fleet()elif event.key == pygame.K_n:self.settings = Settings()self.screen = pygame.display.set_mode((self.settings.screen_width, self.settings.screen_height))self.ship = Ship(self)self.aliens = pygame.sprite.Group()self._create_fleet()elif event.key == pygame.K_UP:self.ship.moving_up = Falseelif event.key == pygame.K_DOWN:self.ship.moving_down = Falsedef _fire_bullet(self):"""create a new bullet and add it to the bullets group."""if len(self.bullets) < self.settings.bullets_allowed:new_bullet = Bullet(self)self.bullets.add(new_bullet)def _create_fleet(self):#self传的也是ai"""Create the fleet of aileens."""#Create an aileen  and find the number of aileens in a row#Spacing between each aileen is equal to one aileen width.aileen = Aileen(self)aileen_width, aileen_height  = aileen.rect.sizeavailable_space_x = self.settings.screen_width - (2 * aileen_width)print(available_space_x)print(self.settings.screen_width)print(2 * aileen_width)number_aileen_x = available_space_x // (2 * aileen_width)# Determine the number of rows of aileens that fit on the screen.ship_height =self.ship.rect.heightavailable_space_y = (self.settings.screen_height -(3 * aileen_height) - ship_height)number_rows = available_space_y // (2 * aileen_height)#Create the first row of aileens.for row_number in range(number_rows):for aileen_number in range(number_aileen_x):self._create_aileen(aileen_number, row_number)def _create_aileen(self,aileen_number, row_number):# Create an aileen and place it in row.# Make a aileenaileen = Aileen(self)aileen_width, aileen_height =aileen.rect.sizeaileen.x = aileen_width + 2 * aileen_width * aileen_numberaileen.rect.x = aileen.xaileen.rect.y = aileen.rect.height + 2 * aileen.rect.height * row_numberself.aileens.add(aileen)def _check_aileens_bottom(self):"""Check if any aileens have reached the bottom of the screen."""screen_rect = self.screen.get_rect()for aileen in self.aileens.sprites():if aileen.rect.bottom >= screen_rect.bottom:#Treat this the same as if the ship got hit.self._ship_hit()break# Redraw the screen during each  pass through the loop.  更新画布颜色def _update_aileens(self):"""Check if the fleet is at an edge,then update the positions of all aliens in the fleet."""self._check_fleet_edges()"""Update the positions of all aileens in the fleet."""self.aileens.update()# Look for aileen-ship collisions.if pygame.sprite.spritecollideany(self.ship, self.aileens):self._ship_hit()print("Ship hit!!!")# Look for aileens hitting the bottom of the screenself._check_aileens_bottom()def _check_fleet_edges(self):"""Respond appropriately if any aileens have reached an edge."""for aileen in self.aileens.sprites():if aileen.check_edges():self._change_fleet_direction()breakdef _change_fleet_direction(self):"""Drop the entire fleet and change the fleet's direction."""for aileen in self.aileens.sprites():aileen.rect.y += self.settings.fleet_drop_speedself.settings.fleet_direction *= -1def _ship_hit(self):"""Respond to the ship being hit by an allien"""if self.stats.ships_left > 0:# Decrement ships_left.and update scoreboardself.stats.ships_left -= 1self.sb.prep_ships()# Get rid of any remaining aileens and bullets.self.aileens.empty()self.bullets.empty()# Create a new fleet and center the ship.self._create_fleet()self.ship.center_ship()# Pausesleep(0.5)else:self.stats.game_active = Falsepygame.mouse.set_visible(True)def _update_screen(self):"""Update images on the screen , and flip to the new screen"""self.screen.fill(self.settings.bg_color)self.ship.blitme()for bullet in self.bullets.sprites():bullet.draw_bullet()self.aileens.draw(self.screen)#Draw the score information.self.sb.show_score()# Draw the play button if the games is inactive.if not self.stats.game_active:self.play_button.draw_button()self.bullets.draw(self.screen)pygame.display.flip()def check_high_score(self):"""Check to see if there's a new high score."""if self.stats.score > self.stats.high_score:self.stats.high_score = self.stats.scoreself.prep_high_score()if __name__ == '__main__':#  Make a game instance , and run the game.ai = AileenInvasion()#游戏本身的实例化,ai就是那个AileenInvasionai.run_game()

创建外星人aileen的文件

import pygame
from pygame.sprite import Spriteclass Aileen(Sprite):"""A class to represent a single alien in the fleet"""def __init__(self,ai_game):"""Initilize the aileen and set its starting position."""super().__init__()self.screen = ai_game.screenself.settings = ai_game.settings# Load the aileen image and set its rect attribute.self.image = pygame.image.load("images/aileen.png")self.rect = self.image.get_rect()# Start each new aileen near the top left of the screen.self.rect.x = self.rect.width#将矩形左上角的值作为外星人的宽度self.rect.y = self.rect.height#通过飞船左上角的坐标来控制其它图片的位置#Store the aileen's exact horizontal position.self.x = float(self.rect.x)def check_edges(self):"""Return True if aileen is at edge of screen"""screen_rect = self.screen.get_rect()if self.rect.right >= screen_rect.right or self.rect.left <= 0:return Truedef update(self):"""Move the aileen to the right or left"""self.x += (self.settings.aileen_speed *self.settings.fleet_direction)self.rect.x = self.x

子弹bullet的文件

import pygame
import random
from pygame.sprite import Spriteclass Bullet(Sprite):#子弹bullet继承Sprite类--继承"""A class to manage bullets fired from the ship"""def __init__(self,ai_game):"""Create a bullet object at the ship's current position"""super().__init__()#调用父类初始化函数self.screen = ai_game.screenself.settings = ai_game.settingsself.color = self.settings.bullet_color# Load the aileen image and set its rect attribute.self.bullet_images = [pygame.image.load("images/heart.png"),pygame.image.load("images/banana.png"),pygame.image.load("images/cherry.png")]self.image = random.choice(self.bullet_images)self.rect = self.image.get_rect()#Create a bullet rect at(0,0) and then set correct position.self.rect =pygame.Rect(0,0,self.settings.bullet_width,self.settings.bullet_height)self.rect.midtop =ai_game.ship.rect.midtop#利用ai将船和子弹初始位置绑定,使得子弹在船中上方# Store the bullet's position as a decimal value.self.y = float(self.rect.y)def update(self):"""move the bullet up the screen."""#update the decimal position of the bullet.self.y -= self.settings.bullet_speed#update the rect position.self.rect.y = self.ydef draw_bullet(self):"""draw the bullet to the screen"""self.screen.blit(self.image,self.rect)pygame.draw.rect(self.screen, self.color, self.rect)

按钮button的文件

import  pygame.fontclass Button:def __init__(self,ai_game,msg):"""Initialize button attributes."""self.screen = ai_game.screenself.screen_rect = self.screen.get_rect()# Set the dimensions and properties(财产,属性==attributes) of the buttonself.width, self.height = 200, 50self.button_color = (0, 255, 0)self.text_color = (255,255,255)self.font = pygame.font.SysFont(None, 48)# Build the button's rect object and center it.self.rect = pygame.Rect(0,0,self.width,self.height)self.rect.center = self.screen_rect.center# The button message needs to be prepped(准备) only once.self._prep_msg(msg)def _prep_msg(self,msg):"""Turn msg into a rendered image and center and center text on the button."""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):# Draw blank button and then draw message.self.screen.fill(self.button_color,self.rect)self.screen.blit(self.msg_image,self.msg_image_rect)

 游戏数据game_stats的文件

class GameStats:"""Track statics for Aileen Invasion."""def __init__(self,ai_game):# High score should never be reset.self.high_score = 0# Start Aileen Invasion in an active state.self.game_active = True"""Initiallize statistics."""self.settings = ai_game.settingsself.reset_stats()# Start game in an inactive state.self.game_active = Falsedef reset_stats(self):"""Initialize statistics that can change during the game."""self.ships_left = self.settings.ship_limitself.score = 0self.level=1

游戏分数scoreboard的文件

import pygame.font
from pygame.sprite import Group
from ship import Shipclass Scoreboard:"""A class to report scoring information."""def __init__(self,ai_game):"""Initialize scorekeeping attributes."""self.ai_game = ai_gameself.screen = ai_game.screenself.screen_rect = self.screen.get_rect()self.settings = ai_game.settingsself.stats = ai_game.stats# Font settings for scoring information.self.text_color = (30,30,30)self.font = pygame.font.SysFont(None,48)#Prepare the initial score image.self.prep_score()self.prep_high_score()self.prep_level()self.prep_ships()def prep_ships(self):"""Show how many ships are left."""self.ships = Group ()for ship_number in range(self.stats.ships_left):ship= Ship(self.ai_game)ship.rect.x = 10 + ship_number * ship.rect.widthship.rect.y = 10self.ships.add(ship)def prep_score(self):"""Turn the score into a rendered image (将分数转换为渲染图像)"""score_str = str(self.stats.score)"""Turn the score into a rendered image."""rounded_score = round(self.stats.score,-1)score_str = "{:,}".format(rounded_score)  #round 取整self.score_image = self.font.render(score_str,True,self.text_color,self.settings.bg_color)#Display the score at the top right of the screen.self.score_rect = self.score_image.get_rect()self.score_rect.right = self.screen_rect.right - 20self.score_rect.top = 20def prep_high_score(self):"""Turn the high score into a rendered image"""high_score = round(self.stats.high_score,-1)high_score_str = "{:,}".format(high_score)self.high_score_image = self.font.render(high_score_str,True,self.text_color,self.settings.bg_color)# Center the high score at the top of the screen.self.high_score_rect = self.high_score_image.get_rect()self.high_score_rect.centerx = self.screen_rect.centerxself.high_score_rect.top = self.score_rect.topdef check_high_score(self):"""Check to see if there's a new high score."""if self.stats.score > self.stats.high_score:self.stats.high_score = self.stats.scoreself.prep_high_score()def prep_level(self):"""Turn the level into a rendered image."""level_str = str(self.stats.level)self.level_image = self.font.render(level_str,True,self.text_color,self.settings.bg_color)#Position the level below the score.self.level_rect = self.level_image.get_rect()self.level_rect.right = self.score_rect.rightself.level_rect.top = self.score_rect.bottom + 10def show_score(self):"""Draw score,level,and ships to the screen"""self.screen.blit(self.score_image,self.score_rect)self.screen.blit(self.high_score_image,self.high_score_rect)self.screen.blit(self.level_image,self.level_rect)self.ships.draw(self.screen)

游戏设置settings的文件 

class Settings:"""A class store all settings for Aileen Invasion."""def __init__(self):"""Initialize the game'settings """#Ship settingsself.ship_speed = 1.5self.ship_limit = 3# Screen settingsself.screen_width =1200self.screen_height=800self.bg_color =(255,255,255)# Bullet settingsself.bullet_speed = 1self.bullet_width = 3self.bullet_height = 15self.bullet_color = (60,60,60)self.bullets_allowed = 3#Aileen settingsself.aileen_speed = 1.0self.fleet_drop_speed = 10# How quickly the game speeds upself.speedup_scale = 2# How quickly the aileen point values increaseself.score_scale =1.5self.initialize_dynamic_settings()def initialize_dynamic_settings(self):"""Initialize speed settings"""self.ship_speed = 1.5self.bullet_speed = 1.5self.aileen_speed = 10# Scoringself.aileen_points =50# fleet_direction of 1 represents right ; -1 represents left.self.fleet_direction = 1def increase_speed(self):"""Increase speed settings""""""Increase speed settings and aileen point values"""self.ship_speed *= self.speedup_scaleself.bullet_speed *= self.speedup_scaleself.aileen_speed *= self.speedup_scaleself.aileen_points = int(self.aileen_points * self.score_scale)print(self.aileen_points)

游戏飞船ship的文件

import  pygame
from pygame.sprite import Spriteclass Ship(Sprite):"""A class to manage the ship."""def __init__(self,ai_game):"""Initialize the ship and set its starting position."""super().__init__()self.screen = ai_game.screenself.settings = ai_game.settingsself.screen_rect = ai_game.screen.get_rect()#返回窗口矩形# Load the ship image and get its rect.self.image = pygame.image.load("images/ship.png")self.rect=self.image.get_rect()#取得屏幕的矩形 rect=rectangle 拿到图片矩形# Start each new ship at the bottom center of the screen.self.rect.midbottom = self.screen_rect.midbottom#通过赋值:图片的中下方的坐标,等于屏幕中下方的坐标# Store a decimal value for the ship's horizontal position.self.x = float(self.rect.x)self.y = float(self.rect.y)# Movement flagself.moving_right =Falseself.moving_left =Falseself.moving_up =Falseself.moving_down =Falsedef center_ship(self):"""Center the ship on the screen"""self.rect.midbottom = self.screen_rect.midbottomself.x = float(self.rect.x)def update(self):"""Update the ship's position based on the movement flag"""# Update the ship's value, not the rect.# if self.moving_right:if self.moving_right and self.rect.right < self.screen_rect.right:self.x += self.settings.ship_speed#不断增加飞船左上角的横坐标带动图片移动self.rect.x += 1# if self.moving_left:if self.moving_left and self.rect.left > 0:self.x -= self.settings.ship_speedself.rect.x -= 1#topif self.moving_up and self.rect.top > 720 :self.y -= self.settings.ship_speedself.rect.y -= 1if self.moving_down and self.rect.bottom < self.screen_rect.bottom:self.y += self.settings.ship_speedself.rect.y += 1def blitme(self):#渲染函数,让图片显示出来"""Draw the ship at its current location."""self.screen.blit(self.image,self.rect)

 全屏模式下的游戏

小窗口下的游戏

🐖今天的打猪游戏就分享到这里啦~🐖

🐖喜欢就一键三连支持一下吧~🐖

🐖谢谢家人们!🐖

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

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

相关文章

Improving 3D Imaging with Pre-Trained Perpendicular 2D Diffusion Models

使用预先训练的垂直 2D 扩散模型改进 3D 成像 论文链接&#xff1a;https://arxiv.org/abs/2303.08440 项目链接&#xff1a;https://github.com/hyn2028/tpdm Abstract 扩散模型由于其众多的优点已经成为一种流行的图像生成和重建方法。然而&#xff0c;大多数基于扩散的逆…

YOLOv8学习

1 YOLOv8训练自己的数据集 1.1 部署和运行 1.1.1 第一步&#xff0c;下载代码 源码地址 1.1.2 第二步&#xff0c;创建环境 默认已经安装好conda conda create -n yolopy38 python3.8conda activate yolopy38安装所需要的包&#xff0c;先cd到代码目录下 pip install -r…

基于Java的养老院管理系统的设计与实现(亮点:多角色、登录验证码、留言反馈)

养老院管理系统 一、前言二、我的优势2.1 自己的网站2.2 自己的小程序&#xff08;小蔡coding&#xff09;2.3 有保障的售后2.4 福利 三、开发环境与技术3.1 MySQL数据库3.2 Vue前端技术3.3 Spring Boot框架3.4 微信小程序 四、功能设计4.1 主要功能描述 五、系统实现5.1 养老院…

Linux底层基础知识

一.汇编&#xff0c;C语言&#xff0c;C&#xff0c;JAVA之间的关系 汇编&#xff0c;C语言&#xff0c;C可以通过不同的编译器&#xff0c;编译成机器码。而java只能由Java虚拟机识别。Java虚拟机可以看成一个操作系统&#xff0c;Java虚拟机是由汇编&#xff0c;C&#xff0c…

【深度学习实验】线性模型(三):使用Pytorch实现简单线性模型:搭建、构造损失函数、计算损失值

目录 一、实验介绍 二、实验环境 1. 配置虚拟环境 2. 库版本介绍 三、实验内容 0. 导入库 1. 定义线性模型linear_model 2. 定义损失函数loss_function 3. 定义数据 4. 调用模型 5. 完整代码 一、实验介绍 使用Pytorch实现 线性模型搭建构造损失函数计算损失值 二、…

idea创建springboot项+集成阿里连接池druid

创建项目并集成流程 1&#xff1a;前提准备2&#xff1a;创建springboot项目流程3&#xff1a;集成阿里连接池步骤4&#xff1a;集成swagger方便测试5&#xff1a;书写增删改查进行测试6&#xff1a;项目gitee地址 1&#xff1a;前提准备 准备开发工具&#xff1a;idea java环…

nginx知识点详解:反向代理+负载均衡+动静分离+高可用集群

一、nginx基本概念 1. nginx是什么&#xff0c;做什么事情&#xff1f; Nginx是一个高性能的HTTP和反向代理服务器&#xff0c;特点是占有内存少&#xff0c;并发能力强。Nginx转为性能优化而开发&#xff0c;能经受高负载考验。支持热部署&#xff0c;启动容易&#xff0c;运…

linux内核分析:线程和进程创建,内存管理

lec18-19:进程与线程创建 lec20-21虚拟内存管理 内核代码,全局变量这些只有一份,但是内核栈有多份,这可能就是linux线程模型1对1模式的由来。通过栈来做的 x86 CPU支持分段和分页(平坦内存模式)两种 分段,选择子那里就有特权标记了

Linux多线程【线程控制】

✨个人主页&#xff1a; 北 海 &#x1f389;所属专栏&#xff1a; Linux学习之旅 &#x1f383;操作环境&#xff1a; CentOS 7.6 阿里云远程服务器 文章目录 &#x1f307;前言&#x1f3d9;️正文1、线程知识补充1.2、线程私有资源1.3、线程共享资源1.4、原生线程库 2、线程…

GIS跟踪监管系统单元信息更新

GIS跟踪监管系统单元信息更新 单元信息更新。① 新增单元。② 编辑单元。③ 删除单元。物资查询&#xff08;1&#xff09;物资查询与展示。① 几何查询。• 单击查询&#xff1a;• 拉框查询&#xff1a;• 多边形查询&#xff1a;② 物资定位。• 多个物资定位&#xff1a; 单…

Visual Studio2019报错

1- Visual Studio2019报错 错误 MSB8036 找不到 Windows SDK 版本 10.0.19041.0的解决方法 小伙伴们在更新到Visual Studio2019后编译项目时可能遇到过这个错误&#xff1a;“ 错误 MSB8036 找不到 Windows SDK 版本 10.0.19041.0的解决方法”&#xff0c;但是我们明明安装了该…

智慧公厕:不放过任何“卫生死角”,为公共厕所装上“净化系统”。

#智慧公厕[话题]# #智慧公厕系统[话题]# #智慧公厕管理系统[话题]# #智慧公厕设备[话题]# #智慧公厕厂家[话题]# 在社会活动中&#xff0c;公共厕所是我们经常使用和停留的场所。然而&#xff0c;由于传统公共厕所的粗放式管理&#xff0c;导致卫生情况差、设备不齐全、配置破…

MySql中分割字符串

MySql中分割字符串 在MySql中分割字符串可以用到SUBSTRING_INDEX&#xff08;str, delim, count&#xff09; 参数解说       解释 str         需要拆分的字符串 delim         分隔符&#xff0c;通过某字符进行拆分 count          当 count 为正数&…

Learn Prompt-ChatGPT 精选案例:内容总结

ChatGPT 可以通过分析内容并生成一个浓缩版本来总结文本。这对节省时间和精力很有帮助&#xff0c;特别是在阅读长篇文章、研究论文或报告时。 通用总结​ 你所要做的就是把具体的文字复制并粘贴到提示中&#xff0c;并要求ChatGPT对所选文本进行简化总结。这里我们参考opena…

Linux的调试工具 - gdb(超详细)

Linux的调试工具 - gdb 1. 背景2. 开始使用指令的使用都用下面这个C语言简单小代码来进行演示&#xff1a;1. list或l 行号&#xff1a;显示文件源代码&#xff0c;接着上次的位置往下列&#xff0c;每次列10行。2. list或l 函数名:列出某个函数的源代码。3. r或run: 运行程序。…

Java进化史:从Java 8到Java 17的语言特性全解析

文章目录 Java 8&#xff1a;引入Lambda表达式和Stream APILambda表达式Stream API Java 9&#xff1a;模块化系统模块Jigsaw项目 Java 10&#xff1a;局部变量类型推断Java 11&#xff1a;引入HTTP客户端HTTP客户端 Java 12&#xff1a;引入Switch表达式Switch表达式 Java 13到…

微服务架构介绍

系统架构的演变 1、技术架构发展历史时间轴 ①单机垂直拆分&#xff1a;应用间进行了解耦&#xff0c;系统容错提高了&#xff0c;也解决了独立应用发布的问题&#xff0c;存在单机计算能力瓶颈。 ②集群化负载均衡可有效解决单机情况下并发量不足瓶颈。 ③服务改造架构 虽然系…

Spring修炼之路--基础知识

一、核心概念 1.1软件模块化 软件模块化是一种软件开发的设计模式&#xff0c;它将一个大型的软件系统划分成多个独立的模块&#xff0c;每个模块都有自己的功能和接口&#xff0c;并且能够与其他模块独立地工作1. 软件模块化设计可以使软件不至于随着逐渐变大而变得不可控&am…

【ICASSP 2023】ST-MVDNET++论文阅读分析与总结

主要是数据增强的提点方式。并不能带来idea启发&#xff0c;但对模型性能有帮助 Challenge&#xff1a; 少有作品应用一些全局数据增强&#xff0c;利用ST-MVDNet自训练的师生框架&#xff0c;集成了更常见的数据增强&#xff0c;如全局旋转、平移、缩放和翻转。 Contributi…

Vulnhub实战-DC9

前言 本次的实验靶场是Vulnhub上面的DC-9&#xff0c;其中的渗透测试过程比较多&#xff0c;最终的目的是要找到其中的flag。 一、信息收集 对目标网络进行扫描 arp-scan -l 对目标进行端口扫描 nmap -sC -sV -oA dc-9 192.168.1.131 扫描出目标开放了22和80两个端口&a…