前言

halo,包子们晚上好
很久没有更新啦,主要是小编这边最近有点小忙
今天给大家整一个简易版本的王者荣耀
有法师,射手,坦克,辅助
支持双人游戏哟
快跟你的小伙伴一起玩耍吧

相关文件

关注小编,私信小编领取哟!
当然别忘了一件三连哟~~
源码点击蓝色字体领取

开发工具

Python版本:3.7.8
相关模块:
pygame模块;
setting模块;
re模块;
以及一些python自带的模块。

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。

模块介绍

  1. main.py 程序入口,进行游戏内容的初始化及主循环。
  2. game_event.py 处理输入事件,生成和更新物体状态的方法。
  3. live.py 玩家操控人物的属性和行为。
  4. enemy.py 游戏中的敌人的属性和行为。
  5. gameui.py 游戏过程中的信息的显示。
  6. startupui.py 游戏启动界面的按钮等组件的显示。
  7. rigidbody.py 模拟物体碰撞产生的位移。
  8. effect.py包含人物和敌人产生的攻击物体的更新和显示。
  9. setting.py 从外部加载图片,汇总游戏中各类属性的定义。

效果展示

游戏主页

三个模式,四大人物选择,大家不要看这个玩意不咋好看,小编只有这个能力画出这个玩意

游戏中

我们选择了法师,妲己,可能有点潦草的妲己,希望大家不要喷我,哈哈哈

游戏结束

四大人物
辅助:孙斌
射手:后羿
上单:猴子
法师:妲己
可以认出来就行啦,哈哈哈哈

部分代码展示

游戏初始化和主函数

源码领取加群:494958217
'''
程序主函数,汇总其它模块输出游戏窗口
'''import pygame
import os.path
import csv
import setting as set
import live
import game_event
import gameui as gi
import startupui as si#程序主函数
def run_game():#初始化pygame库pygame.init()#创建时钟对象(控制帧率)clock=pygame.time.Clock()#实例化设置类,用于导入游戏设置setting=set.Setting()#设置游戏窗口screen=pygame.display.set_mode((setting.screen_width,setting.screen_height))pygame.display.set_caption(setting.screen_caption)#设置不同的组,用于分别处理各种物品间的关系#玩家组group_player=pygame.sprite.Group()#玩家的攻击组group_attack=pygame.sprite.Group()#敌人组group_enemy=pygame.sprite.Group()#敌人的攻击组group_enemy_attack=pygame.sprite.Group()#实例化ui对象#showinfo用于在游戏内显示人物血条等信息showinfo=gi.Info(setting,screen)#人物选择按钮yi_button=si.MonkeyKingButton(screen,setting)monkey_button=si.YiButton(screen,setting)fox_button=si.FoxButton(screen,setting)bin_button=si.BinButton(screen,setting)#游戏开始界面的按钮pve_button=si.PVEButton(screen,setting)pvp_button=si.PVPButton(screen,setting)endless_button=si.EndlessButton(screen,setting)control_button=si.ControlButton(screen,setting)memory_button=si.RecordButton(screen,setting)cooling_button=si.CoolingButton(screen,setting)#游戏背景select_button=si.SelectButton(screen,setting)win_button=si.WinButton(screen,setting)dead_button=si.DeadButton(screen,setting)#玩家当前选择的人物标记player_button_1=si.PlayerButton1(screen,setting)player_button_2=si.PlayerButton2(screen,setting)#空白按钮none_button=si.NoneButton(screen,setting)#空白图像none_info=gi.ExInfo(screen,none_button,setting.introduce_none)#介绍按钮作用的图像pve_info=gi.ExInfo(screen,pve_button,setting.introduce_pve)pvp_info=gi.ExInfo(screen,pvp_button,setting.introduce_pvp)endless_info=gi.ExInfo(screen,endless_button,setting.introduce_endless)control_info=gi.ExInfo(screen,control_button,setting.introduce_control)record_info=gi.ExInfo(screen,memory_button,setting.introduce_record)cooling_info=gi.ExInfo(screen,cooling_button,setting.introduce_cooling)#按钮组(绘制时,在前的按钮会被在后的按钮覆盖)buttons=[select_button,yi_button,monkey_button,fox_button,bin_button,pve_button,pvp_button,endless_button,cooling_button,control_button,memory_button,dead_button,win_button]#标签按钮组choose_buttons=[player_button_1,player_button_2]#介绍按钮作用的图像组button_info_dict={none_button:none_info,pve_button:pve_info,pvp_button:pvp_info,endless_button:endless_info,control_button:control_info,memory_button:record_info,cooling_button:cooling_info}#当前显示的图像列表info_label=[]#存储模拟刚体运动的列表rigidbody_list=[]#玩家实例,初始化为战士player_1=live.MonkeyKing(setting,screen)player_2=live.MonkeyKing(setting,screen)if not os.path.exists(setting.record_path):#如果游戏记录文件不存在就新创建一个with open(setting.record_path,'w',newline="") as f:writer=csv.writer(f)header=["Time","Mode","Winner","1st Score","2st Score","Duration(s)","1st Player","2nd Player","isCooling"]writer.writerow(header)  #游戏主循环while True: #绘制背景screen.blit(setting.screen_surface_background,(0,0))#设置游戏帧率clock.tick(setting.fps)#检测键盘鼠标事件   game_event.check_event(setting,screen,group_player,group_attack,group_enemy,group_enemy_attack,buttons,showinfo,button_info_dict,info_label)#更新当前选择人物的标签game_event.update_choose(setting,buttons,choose_buttons)#游戏运行,非玩家对抗模式if (setting.game_active and (setting.game_mode==0 or setting.game_mode==2)):#人物初始化if(not setting.isinit):if setting.player_1!=None:player_1=setting.player_1group_player.add(player_1)if setting.player_2!=None:player_2=setting.player_2group_player.add(player_2)                setting.isinit=True#游戏计时器setting.timer+=1#更新玩家group_player.update()#生成敌人game_event.generate_enemies(setting,group_enemy,screen) #更新敌人,玩家的攻击,敌人的攻击,玩家状态等game_event.update_enemies(setting,showinfo,screen,group_player,group_enemy,group_attack,group_enemy_attack)game_event.update_attacks(setting,screen,group_attack,group_enemy,rigidbody_list)game_event.update_enemy_attacks(setting,screen,group_player,group_enemy_attack,rigidbody_list)game_event.update_state(setting,showinfo)game_event.update_rigidbody(setting,rigidbody_list)#胜利条件if setting.timer>=60*setting.fps and not group_enemy.spritedict and setting.game_mode==0:game_event.game_win(setting,showinfo,group_enemy,group_attack,group_enemy_attack)setting.timer=0#失败条件if setting.isinit and ((setting.player_1!=None and setting.health_1<=0) or (setting.player_2!=None and setting.health_2<=0)):              game_event.game_dead(setting,showinfo,group_enemy,group_attack,group_enemy_attack)setting.timer=0#玩家对抗模式elif setting.game_active and setting.game_mode==1:#人物初始化if(not setting.isinit):if setting.player_1!=None and setting.player_2!=None:player_1=setting.player_1group_player.add(player_1)player_2=setting.player_2group_player.add(player_2)                        setting.isinit=True#游戏计时器setting.timer+=1#更新玩家player_1.update()player_2.update()#更新玩家的攻击,信息显示和物理模拟game_event.update_attacks_pvp(setting,screen,group_attack,rigidbody_list)game_event.update_state(setting,showinfo)game_event.update_rigidbody(setting,rigidbody_list)#玩家1胜利条件if setting.isinit and setting.health_2<=0:setting.score_1+=1game_event.game_win(setting,showinfo,group_enemy,group_attack,group_enemy_attack)setting.timer=0#玩家2胜利条件if setting.isinit and setting.health_1<=0:setting.score_2+=1game_event.game_win(setting,showinfo,group_enemy,group_attack,group_enemy_attack)setting.timer=0#根据上述更新的结果绘制整个游戏窗口game_event.update_screen(setting,screen,group_player,group_attack,group_enemy,group_enemy_attack,showinfo,buttons,info_label,choose_buttons)                 #运行游戏
run_game()

游戏启动界面的按钮等组件的显示。

源码领取加群:494958217
'''
startupui模块定义了在游戏启动界面的各类ui组件外观
Button类为模块中其它类的父类,虽然叫button但不包括事件处理,只定义了图像和布局(点击事件的处理在game_event模块中)
Button类提供一个draw()实例方法绘制自身
子类 SelectButton WinButton DeadButton 作为界面背景(选人、胜利、失败)
子类 MonkeyKingButton YiButton FoxButton BinButton 作为选人按钮
其它子类为启动界面的各类功能按钮,包括开始特定模式的游戏,开关冷却等
'''import pygame.font
import pygame.drawclass Button():"""按钮基类"""def __init__(self,screen,setting):#窗口和设置属性self.screen=screenself.screen_rect=screen.get_rect()self.setting=setting#按钮的长宽self.width = 120self.height = 50#按钮背景和字体颜色self.button_color = (40, 200, 0)self.text_color = (255, 255, 255)#默认字体self.font = pygame.font.SysFont(None, 50)#布局self.rect = pygame.Rect(0, 0, self.width, self.height)self.rect.center = self.screen_rect.centerdef draw(self):"""渲染方法"""self.screen.blit(self.surface, self.rect)class MonkeyKingButton(Button):"""战士按钮"""def __init__(self,screen,setting):super().__init__(screen,setting)self.surface=self.setting.surface_noneself.rect =  pygame.Rect((0,0),(200,380))class FoxButton(Button):"""法师按钮"""def __init__(self,screen,setting):super().__init__(screen,setting)self.surface=self.setting.surface_noneself.rect =  pygame.Rect((200,0),(200,380))class BinButton(Button):"""辅助按钮"""def __init__(self,screen,setting):super().__init__(screen,setting)self.surface=self.setting.surface_noneself.rect =  pygame.Rect((400,0),(200,380))class YiButton(Button):"""射手按钮"""def __init__(self,screen,setting):super().__init__(screen,setting)self.surface=self.setting.surface_noneself.rect =  pygame.Rect((600,0),(200,380))class SelectButton(Button):"""人物选择界面"""def __init__(self,screen,setting):super().__init__(screen,setting)self.surface=self.setting.screen_surface_selectself.rect = self.surface.get_rect()        class WinButton(Button):"""胜利界面"""def __init__(self,screen,setting):super().__init__(screen,setting)self.surface=self.setting.screen_surface_winself.rect =  self.surface.get_rect()class DeadButton(Button):"""失败界面"""def __init__(self,screen,setting):super().__init__(screen,setting)self.surface=setting.screen_surface_deadself.rect =  self.surface.get_rect()class PVEButton(Button):"""普通模式按钮"""def __init__(self,screen,setting):super().__init__(screen,setting)self.surface=setting.button_pve_surfaceself.rect=self.surface.get_rect()self.rect.center=(400,100)class PVPButton(Button):"""玩家对抗按钮"""def __init__(self,screen,setting):super().__init__(screen,setting)self.surface=setting.button_pvp_surfaceself.rect=self.surface.get_rect()self.rect.center=(400,200)class EndlessButton(Button):"""无尽模式按钮"""def __init__(self,screen,setting):super().__init__(screen,setting)self.surface=setting.button_endless_surfaceself.rect=self.surface.get_rect()self.rect.center=(400,300)class PlayerButton1(Button):"""玩家1人物选择标记"""def __init__(self,screen,setting):super().__init__(screen,setting)self.surface=setting.player_1_surfaceself.rect=self.surface.get_rect()self.rect.center=(1000,1000)class PlayerButton2(Button):"""玩家2人物选择标记"""def __init__(self,screen,setting):super().__init__(screen,setting)self.surface=setting.player_2_surfaceself.rect=self.surface.get_rect()self.rect.center=(1000,1000)class NoneButton(Button):"""空白按钮"""def __init__(self,screen,setting):super().__init__(screen,setting)self.surface=setting.surface_noneself.rect=self.surface.get_rect()self.rect.center=(1000,1000)self.rect.size=(1,1)class CoolingButton(Button):"""技能冷却按钮"""def __init__(self,screen,setting):super().__init__(screen,setting)self.surface=setting.button_cooling_surface_0self.surface_=setting.button_cooling_surface_1self.rect=self.surface.get_rect()self.rect.center=(70,360)def draw(self):"""根据技能状态绘制按钮"""if self.setting.iscooling:self.screen.blit(self.surface, self.rect)else:self.screen.blit(self.surface_, self.rect)class ControlButton(Button):"""控制按钮"""def __init__(self,screen,setting):super().__init__(screen,setting)self.surface=setting.button_control_surfaceself.rect=self.surface.get_rect()self.rect.center=(740,390)class RecordButton(Button):"""记录按钮"""def __init__(self,screen,setting):super().__init__(screen,setting)self.surface=setting.button_memory_surfaceself.rect=self.surface.get_rect()self.rect.center=(70,420)

游戏中的敌人的属性和行为。

源码领取加群:494958217
import pygame
import random
import effect
from pygame.sprite import Spriteclass Enemy(Sprite):"""敌人的基类"""def __init__(self,setting,screen,surface,generate_point,health,speed,action_interval,attack_interval,weight,score):super().__init__()#基本变量self.screen=screenself.setting=settingself.screen_rect=screen.get_rect()#移动速度self.speed=speed#重设移动方向间隔self.action_interval=action_interval#攻击间隔self.attack_interval=attack_interval#重量self.weight=weight#死亡后玩家获取的得分self.score=score#选择一名玩家人物作为目标if setting.player_1!=None and setting.player_2!=None:target=[setting.player_1,setting.player_2]self.player=random.choice(target)elif setting.player_1!=None: self.player=setting.player_1else:self.player=setting.player_2#以一个随机时刻开始移动和攻击计时器self.action_timer=random.randint(0,int(action_interval))self.attack_timer=random.randint(0,int(attack_interval))#是否还存活self.isalive=True#是否是近战self.ismelee=False#近战攻击生成次数self.melee_count=1#朝向(-1朝左,1朝右)self.forward=-1#图像self.surface=surfaceself.surface_flip=pygame.transform.flip(self.surface,True,False)#布局self.rect=self.surface.get_rect()#出生位置self.rect.center=generate_point#生命属性self.max_health=healthself.health=self.max_health#生命条布局self.health_rect_background=pygame.Rect(self.rect.centerx-10,self.rect.centery-30,50,20)self.health_rect=pygame.Rect(self.rect.centerx-10,self.rect.centery-30,self.health/self.max_health*50,20)#移动方向self.direction_x=0.0self.direction_y=0.0def update(self):"""更新状态"""self.flip()self.auto_move()self.update_health_ui()def draw(self):"""绘制图像"""if self.forward==-1:self.screen.blit(self.surface,self.rect)else:self.screen.blit(self.surface_flip,self.rect)#绘制生命条pygame.draw.rect(self.screen,(200,200,200),self.health_rect_background)pygame.draw.rect(self.screen,(30,30,30),self.health_rect)def flip(self):"""更新当前朝向"""if (self.rect.centerx-self.player.rect.centerx)>=0:self.forward=-1else:self.forward=1def update_health_ui(self,x=-25,y=-40,width=50,height=10):"""更新血量ui"""self.health_rect_background=pygame.Rect(self.rect.centerx+x,self.rect.centery+y,width,height)self.health_rect=pygame.Rect(self.rect.centerx+x,self.rect.centery+y,self.health/self.max_health*width,height)def auto_move(self):"""自主更新位置"""passclass Mage(Enemy):"""小法师"""def __init__(self,setting,screen):super().__init__(setting,screen,setting.enemy_mage_surface,setting.enemy_genrate_point,setting.enemy_mage_health,setting.enemy_mage_move_speed,setting.enemy_mage_action_interval,setting.enemy_mage_attack_interval,setting.enemy_mage_weight,setting.enemy_mage_score)self.rect.centery+=random.randint(-150,150)def auto_move(self):"""上下随机移动"""if(self.action_timer<=0):self.direction_x=0self.direction_y=random.uniform(-2,2)#重置计时器self.action_timer=self.action_intervalelif(self.action_timer%2==0):#移动不能超出窗口if self.rect.left > 0 and self.direction_x<0:self.rect.centerx+=self.direction_x*self.speedif self.rect.right < self.screen_rect.right and self.direction_x>0:self.rect.centerx+=self.direction_x*self.speedif self.rect.bottom < self.screen_rect.bottom and self.direction_y>0:self.rect.centery+=self.direction_y*self.speedif self.rect.top > 0 and self.direction_y<0:self.rect.centery+=self.direction_y*self.speedself.action_timer-=1else:self.action_timer-=1def auto_attack(self):"""返回攻击物"""return effect.EnemyFireBall(self.setting,self.screen,self.player,self)class Warrior(Enemy):"""小战士"""def __init__(self,setting,screen):super().__init__(setting,screen,setting.enemy_warrior_surface,setting.enemy_genrate_point,setting.enemy_warrior_health,setting.enemy_warrior_move_speed,setting.enemy_warrior_action_interval,setting.enemy_warrior_attack_interval,setting.enemy_warrior_weight,setting.enemy_warrior_score)self.ismelee=Trueself.rect.centerx+=random.randint(-100,0)self.rect.centery+=random.randint(-120,120)def auto_move(self):"""朝向目标玩家移动"""if(self.action_timer<=0):if self.player.rect.centerx-self.rect.centerx<=0:self.direction_x=random.uniform(-2,-1)else:self.direction_x=random.uniform(1,2)if self.player.rect.centery-self.rect.centery<=0:self.direction_y=random.uniform(-2,-1)else:self.direction_y=random.uniform(1,2)#重置计时器self.action_timer=self.action_intervalelif(self.action_timer%2==0):#移动不能超出窗口if self.rect.left > 0 and self.direction_x<0:self.rect.centerx+=self.direction_x*self.speedif self.rect.right < self.screen_rect.right and self.direction_x>0:self.rect.centerx+=self.direction_x*self.speedif self.rect.bottom < self.screen_rect.bottom and self.direction_y>0:self.rect.centery+=self.direction_y*self.speedif self.rect.top > 0 and self.direction_y<0:self.rect.centery+=self.direction_y*self.speedself.action_timer-=1else:self.action_timer-=1def auto_attack(self):return effect.EnemyCollide(self.setting,self.screen,self.player,self)class Artillery(Enemy):"""小炮兵"""def __init__(self,setting,screen):super().__init__(setting,screen,setting.enemy_artillery_surface,setting.enemy_genrate_point,setting.enemy_artillery_health,setting.enemy_artillery_move_speed,setting.enemy_artillery_action_interval,setting.enemy_artillery_attack_interval,setting.enemy_artillery_weight,setting.enemy_artillery_score)self.rect.centery+=random.randint(-200,200)def auto_move(self):"""远离玩家移动"""if(self.action_timer<=0):if self.player.rect.centerx-self.rect.centerx<=0:self.direction_x=random.uniform(1,2)else:self.direction_x=random.uniform(-2,-1)if self.player.rect.centery-self.rect.centery<=0:self.direction_y=random.uniform(1,2)             else:self.direction_y=random.uniform(-2,-1)#重置计时器self.action_timer=self.action_intervalelif(self.action_timer%2==0):#移动不能超出窗口if self.rect.left > 0 and self.direction_x<0:self.rect.centerx+=self.direction_x*self.speedif self.rect.right < self.screen_rect.right and self.direction_x>0:self.rect.centerx+=self.direction_x*self.speedif self.rect.bottom < self.screen_rect.bottom and self.direction_y>0:self.rect.centery+=self.direction_y*self.speedif self.rect.top > 0 and self.direction_y<0:self.rect.centery+=self.direction_y*self.speedself.action_timer-=1else:self.action_timer-=1def auto_attack(self):return effect.EnemyTargetBall(self.setting,self.screen,self.player,self)class Overlord(Enemy):"""大宿主"""def __init__(self,setting,screen):super().__init__(setting,screen,setting.enemy_overlord_surface,setting.enemy_genrate_point,setting.enemy_overlord_health,setting.enemy_overlord_move_speed,setting.enemy_overlord_action_interval,setting.enemy_overlord_attack_interval,setting.enemy_overlord_weight,setting.enemy_overlord_score)self.rect.centerx-=random.randint(0,300)#眼睛的图像self.eye_surface=setting.enemy_eye_surface        self.eye_rect=self.eye_surface.get_rect()self.eye_rect.center=self.rect.center#半径的平方self.radius=12**2def eye_move(self):"""眼睛移动向玩家"""move_x=0move_y=0if self.player.rect.centerx-self.rect.centerx>=0:move_x+=1else:move_x-=1               if self.player.rect.centery-self.rect.centery>=0:move_y+=1else:move_y-=1#计算和圆心的距离delta_x=((self.eye_rect.centerx+move_x)-self.rect.centerx)delta_y=((self.eye_rect.centery+move_y)-self.rect.centery)#如果超出半径,则往回移动,否则朝目标移动if (delta_x**2+delta_y**2)<self.radius:self.eye_rect.centerx+=move_xself.eye_rect.centery+=move_yelse:if delta_x<=0:self.eye_rect.centerx+=1else:self.eye_rect.centerx-=1if delta_y<=0:self.eye_rect.centery+=1else:self.eye_rect.centery-=1def update(self):"""更新状态"""self.flip()self.eye_move()self.update_health_ui(y=-100,x=-50,width=100,height=15)def auto_attack(self):"""随机选择一种攻击返回"""i=random.randint(0,1)if i==0:          return effect.EnemyRingAttack(self.setting,self.screen,self.player,self)else:return effect.EnemyShoot(self.setting,self.screen,self.player,self)def draw(self):"""绘制自身和眼睛"""super().draw()self.screen.blit(self.eye_surface,self.eye_rect)

总结

源码有点多,所以就不都给大家展示啦
需要源码的小伙伴看文章末尾找到小编领取哈

【Python游戏】Python实现低配版王者荣耀,除了没有打野啥都有,你确定不心动嘛?相关推荐

  1. rust低配设置图片_西部题材生存玩法,Steam这款免费游戏疑似低配版大表哥2?...

    近些年来,"开放题材"不断发展,精品游戏接连出现,各自玩出了各自的花样.18年有<Rust>,主打废土生存,在发售之初就颇受好评:19年有<荒野大镖客2>主 ...

  2. 实现Linux中低配版王者荣耀点将系统

    目录 1.搭建环境 (1).opencv的安装 (2).安装sox播放器 1.安装,使用如下命令安装 2.使用,安装完成后,在终端使用 play + test.mp3 播放test.mp3音乐 3.在 ...

  3. 绝地求生低配版显示当前服务器,为什么我的绝地求生低配版一进去游戏页面显示错误再你的地区不可使用...

    满意答案 为什么你的绝地求生低配版游戏错误感情的真谛在于无求. 爱一个人并不是要从对方身上得到什幺利益, 你爱一个人, 愿 意对他好,因为你觉得很快乐. 这就是为什幺我们会批评这是个无情的时代, 因为 ...

  4. python自学篇十[ 面向对象 (四) :王者荣耀小游戏+模拟一个简单的银行进行业务办理的类]

    python基础系列: python自学篇一[ Anaconda3安装 ] python自学篇二[ pycharm安装及使用 ] python自学篇三[ 判断语句if的使用 ] python自学篇四[ ...

  5. 一个低配版小恐龙游戏

    用过Chrome的同学应该玩耍过自带的那个小恐龙 无聊的时候刷上一下下倒也是一种消遣 (讲道理打到这个分我都快眼瞎了) 以下正经脸 所以呢我就用Construct 2做个真·低配版吧 既然是低配版那就 ...

  6. java muki_基于canvas和web audio实现低配版MikuTap

    导言 最近发掘了一个特别happy的网页小游戏--MikuTap.打开之后沉迷了一下午,导致开发工作没做完差点就要删库跑路了,还好boss瞥了我一眼就没下文了.于是第二天我就继续沉迷,随着一阵抽搐,这 ...

  7. 绝地求生低配版显示当前服务器,绝地求生低配版介绍 绝地求生低配版怎么样...

    绝地求生低配版介绍 绝地求生低配版怎么样 2018-10-04 16:23:13来源:游戏下载编辑:野狐禅评论(0) <绝地求生>官方公布消息要发布针对东南亚地区的低配版本,这个版本怎么样 ...

  8. 实现一个基于 IConfiguration 的低配版 FeatureFlag

    实现一个基于 IConfiguration 的低配版 FeatureFlag Intro 在我们的应用中,可能有一些配置开关的需求,某些功能是否启用使用一个配置开关,用的时候就打开,不用的时候就关掉, ...

  9. 【Node.js】论一个低配版Web实时通信库是如何实现的1( WebSocket篇)

    引论 simple-socket是我写的一个"低配版"的Web实时通信工具(相对于Socket.io),在参考了相关源码和资料的基础上,实现了前后端实时互通的基本功能 选用了Web ...

最新文章

  1. 化栈为队(两个栈来实现一个队列)
  2. 白盒测试有哪些方法_QA测试开发常考的面试题+答案汇总(持续更新)
  3. const的使用CC++
  4. [引]Windows Server 2003 : 网络负载平衡
  5. 有限元笔记06-三维实体单元
  6. qcow2磁盘格式分析
  7. 如何解决Error: failed PB timebomb check
  8. Microsoft C++ 异常: 内存位置处的 std::bad_alloc问题解决办法
  9. JDK版本更换后编译android系统出错
  10. 以“数”防疫,快速实施,两周落地,天翎疫情管理系统
  11. 【论文阅读笔记】:CGD: Multi-View Clustering via Cross-View Graph Diffusion
  12. RV-LINK:将 GD32VF103C-START 开发板变成 RISCV-V 仿真器
  13. java测试一个泰勒级数,数学原理-高等数学复习笔记 ——1.1 泰勒公式 泰勒展开式...
  14. ICMP flood(ICMP洪水攻击)
  15. 读《透过结构看世界》
  16. 软件测试100W字!【这可能是最全的总结】
  17. spring.log
  18. 2022年全球市场数控超声波焊接机总体规模、主要生产商、主要地区、产品和应用细分研究报告
  19. 爱普生EPSON Stylus SX130 打印机驱动
  20. 计算机高级工考试题库2018,维修电工高级工试题题库2018

热门文章

  1. 您说什么:在新计算机上安装应用程序的最佳顺序是什么?
  2. 【特效】3D旋转相册
  3. 机器人仿真 软件 V-REP 入门教程 (一)简介
  4. 邮箱申请vip邮箱怎么样,163VIP邮箱有哪些好用的功能
  5. 瑞吉外卖项目源码【可下载】
  6. 新电脑验机步骤(2)
  7. android 手势密码功能sdk,利用ActivityLifecycleCallBack监控app前后台状态切换,实现手势密码即九宫格解锁...
  8. 数字图像处理学习笔记(四)——数字图像的内插、度量、表示与质量
  9. 计算机二级python考试2021-优秀成绩实战总结
  10. Android学习教程三分钟学会安卓开发