自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

寒泉

一只野生程序猿

  • 博客(872)
  • 资源 (1)
  • 论坛 (1)
  • 收藏
  • 关注

原创 集群搭建:CentOS模板机封装、配置静态IP、简单优化

最小化安装关闭内核转储安装常用工具yum install -y wget vim net-tools lrzsz配置静态ipcd /etc/sysconfig/network-scriptsvim ifcfg-ens33将 ifcfg-ens33 文件配置如下TYPE="Ethernet"PROXY_METHOD="none"BROWSER_ONLY="no"DEFROUTE="yes"IPV4_FAILURE_FATAL="no"IPV6INIT="yes"IPV6_A

2020-07-06 20:21:34 222

原创 如何解决 GitHub 提交次数过多导致 .git 文件过大的问题?彻底删除git中的大文件

问题GitHub 上的仓库由于提交次数过多,导致 clone 下来时 .git 文件夹特别大,比代码本身大。确定当前提交之前的修改历史都没有用了,用什么方法能清除之前的提交记录,让 clone 下来的 .git 文件夹变小一点?git 如果提交一个文件,然后删除他,继续提交,那么这个文件是存在 git 中,需要使用特殊的命令才可以删除。原因 & 解决方法首先要注意尽量不要往git上提交二进制文件,二进制文件是不按diff保存的,即使提交了也不要每次改一点然后再提交一遍。如果全是文本文

2020-11-26 11:45:16 10

原创 面试必会系列 - 1.7 JVM 内存模型

对象内存布局new Object() 对象在内存中占多少字节?16字节8 字节(MarkWord,固定大小)4 字节(开启压缩时的对象指针 ClassPointer,指向你的对象 TT.class)0 字节 Instance data,要看你的对象有多少成员变量4 字节 padding(对齐,要被 8 整除)

2020-11-26 11:08:19 12

原创 操作系统:第五章 磁盘管理 - I/O控制,缓冲区管理

目录第五章 磁盘管理 - I/O控制,缓冲区管理I/O 设备按使用特性分类按传输速率分类按信息交换的单位分类I/O 控制器为什么有 I/O 控制器?I/O 控制器在哪里?主要功能组成两种寄存器编址方式I/O 控制方式程序解控制方式中断驱动方式DMA 方式DMA 控制器通道控制方式I/O 控制方式总结I/O 软件层次结构I/O 核心子系统SPOOLing 技术(假脱机技术)设备的分配与回收设备分配管理中的数据结构优化后的设备分配步骤缓冲区管理单缓冲策略双缓

2020-11-22 15:19:38 37 1

原创 操作系统:第四章 文件管理2 - 磁盘管理,磁盘调度算法

磁盘的物理地址磁盘调度算法影响磁盘“寻道时间”的算法先来先服务算法(FCFS)最短寻找时间优先(SSTF)扫描算法(SCAN)扫描算法的改进:LOOK调度算法扫描算法的改进:循环扫描算法(C-SCAN)减少磁盘“延迟时间”的方法交替编号(同一个盘面内的扇区交替编号)错位命名(不同盘面之间扇区错位命名)磁盘的管理磁盘初始化引导块坏块的管理

2020-11-16 23:21:21 39

原创 操作系统:第四章 文件管理1 - 文件逻辑结构,物理结构,文件目录,软硬连接,文件系统

文件基础知识文件的属性操作系统提供的系统调用文件的逻辑结构 / 物理结构文件的逻辑结构文件的物理结构(文件分配方式)连续分配链接分配索引分配文件目录文件控制块 FCB索引结点(FCB的改进)文件存储空间管理空闲表法空闲链表法位示图法成组链接法文件共享硬链接:基于索引结点的共享方式软链接:基于符号链的共享方式共性文件保护口令保护加密保护访问控制文件系统的层次结构补充:文件系统实例

2020-11-16 01:02:59 35

原创 数据结构:严蔚敏、殷人昆快速排序规则不同的疑问

严蔚敏和殷人昆给出了两种不同的快排方法。虽然两种方法均正确,但排序中间步骤得到的序列不同,导致做题时对答案产生疑惑。本文对这两种快排算法进行总结与对比。Partition 过程:将要排序的数据分成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小。快速排序整个排序过程可以递归进行,以此达到整个数据变成有序序列。

2020-11-11 21:23:17 67

原创 操作系统:第三章 内存管理2 - 详解虚拟内存,页面置换算法,页面分配策略

虚拟内存的定义虚拟内存的特征虚拟内存的实现请求分页存储管理页表机制缺页中断(内中断)地址变换机构请求分页中的地址变换过程页面置换算法1、最佳置换算法 OPT2、先进先出置换算法 FIFO3、最近最久未使用算法 LRU4、时钟置换算法 CLOCK / 最近未使用算法 NRU请求分段存储管理请求段页式存储管理页面分配策略固定分配 / 可变分配局部 / 全局置换何时调入页面从何处调入页面驻留集 / 工作集区别

2020-11-11 00:59:14 48

原创 操作系统:第三章 内存管理1 - 详解存储管理方式,段表、页表

基础知识逻辑地址 / 物理地址装入的三种方式1、绝对装入:编译时完成地址变换2、静态重定位:装入时完成地址变换3、动态重定位:运行时才进行地址变换表(普遍使用)从写程序到程序运行链接的三种方式内存管理内存空间的分配与回收覆盖技术(只用于早期的操作系统)交换技术覆盖与交换的区别连续分配管理方式单一连续分配固定分区分配动态分区分配动态分区分配算法非连续分配管理方式基本分页存储管理思想易混页表(page frame)逻辑地址结构如何实现地址转换基本地址变换机构具

2020-11-09 12:02:08 66

原创 数据结构:二叉查找树 BST 平均查找长度 ASL 的计算

平均查找长度ASL(Average Search Length),即平均查找长度,在查找运算中,由于所费时间在关键字的比较上,所以把平均需要和待查找值比较的关键字次数称为平均查找长度。它的定义是这样的:其中n为查找表中元素个数,Pi为查找第i个元素的概率,通常假设每个元素查找概率相同,Pi=1/n,Ci是找到第i个元素的比较次数。顺序查找平均查找长度的计算在顺序查找(Sequence Search)表中,查找方式为从头扫到尾,找到待查找元素即查找成功,若到尾部没有找到,说明查找失败。所以说,Ci

2020-11-09 09:54:54 179

原创 数据结构:链式基数排序,通俗易懂!

思想每一轮将多个数按由低位到高位的顺序,依次放入 多个 链表(桶)中。输出时,将链表(桶)的数据依次合并到 一个 新的链表中。例子下面演示使用 链式基数排序,进行每一趟的“分配”与“收集”过程。第一趟第二趟第三趟...

2020-11-07 10:32:52 38

原创 操作系统:第二章 进程管理3 - 进程同步与互斥

什么是进程同步进程互斥的原则进程互斥的软件实现方法1、单标志法2、双标志先检查法3、双标志后检查法4、Peterson 算法进程互斥的硬件实现方法1、中断屏蔽方法2、TestAndSetLock 指令TSL和中断屏蔽的区别利用TSL完成进程间互斥 - 《现代操作系统》P713、XCHG 指令信号量机制1、整型信号量2、记录型信号量(默认)记录型信号量定义P 操作(wait 操作)V 操作(signal 操作)信号量机制实现进程互斥信号量机制实现进程同步 - 前 V 后

2020-11-06 19:22:51 36

原创 操作系统:第二章 进程管理2 - 处理机调度

第二章 进程管理 - 处理机调度调度的三个层次高级调度(作业调度)中级调度(内存调度)低级调度(进程调度/处理机调度)频率最高进程的七状态模型五状态模型 -> 七状态模型进程调度的时机1、当前运行的进程主动放弃处理机2、当前运行的进程被动放弃处理机补充:不能进行进程调度与切换的情况进程调度的方式非抢占式抢占方式调度算法的评价指标调度算法1、先来先服务 FIFS(FirstCome First Serve)2、短作业优先(SJF, Shortest Job First)3、

2020-11-04 11:54:46 47

原创 操作系统:第二章 进程管理1 - 进程、线程

第二章 进程管理 - 进程、线程进程的概念进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。(线程是调度的基本单位)程序:是静态的,是一个存放在磁盘里的可执行文件,是一系列指令的集合进程:是动态的,是程序的一次执行过程

2020-11-04 11:49:21 40

原创 面试必会系列 - 1.6 Java 垃圾回收机制

本文已收录至 github,完整图文:https://github.com/HanquanHq/MD-Notes面试必会系列专栏:https://blog.csdn.net/sinat_42483341/category_10300357.html垃圾回收机制垃圾:没有引用指向的对象JVM 堆分代模型JVM 内存模型和具体的垃圾回收器有关,面试问的时候,你应该说明是哪一种回收器!新生代(堆空间)分为 1 个 伊甸区,2 个 survivor 区存活对象少,使用 拷贝算法老年代(堆空.

2020-11-03 11:22:08 123

原创 数据结构: 试用判定树的方法给出在中序线索化二叉树上: (1) 如何搜索指定结点的在中序下的后继。 (2) 如何搜索指定结点的在前序下的后继。(3) 如何搜索指定结点的在后序下的后继。

题目试用判定树的方法给出在中序线索化二叉树上:(1) 如何搜索指定结点的在中序下的后继。(2) 如何搜索指定结点的在前序下的后继。(3) 如何搜索指定结点的在后序下的后继。分析这是殷人昆《殷人昆 数据结构:用面向对象方法与C++语言描述 (第二版)》的一道课后练习题。在本书对应的习题册中有解析。解答如下:...

2020-10-30 17:36:16 346 2

原创 高等数学:e的-t平方次方求积分

题目求积分:e的-t平方次方解答答案:在一般的《高等数学》教材中,泊松积分很少会涉及,而在实际问题中,例如在研究热传导或是概率问题的时候,都会遇到泊松积分。但由于其被积函数的原函数不是初等函数,因此不能用牛顿-莱布尼茨公式计算其积分值。而一般证明方法比较繁琐,再次笔者给出集中较为简便的证明方法。1 利用坐标变换证明参考:https://wenku.baidu.com/view/9f4b234e53ea551810a6f524ccbff121dd36c5c4.html...

2020-10-29 21:09:18 413

原创 数据结构:试设计一个算法,改造一个带表头结点的双向链表,所有结点的原有次序保持在各个结点的右链域rLink中,并利用左链域ILink把所有结点按照其值从小到大的顺序连接起来

题目试设计一个算法,改造一个带表头结点的双向链表,所有结点的原有次序保持在各个结点的右链域rLink中,并利用左链域ILink把所有结点按照其值从小到大的顺序连接起来分析Template <Type> void DblList<Type>::sort() { DblNode <Type> *pre, *ppre; // pre用于记录p的前驱 DblNode <Type> *s = first->rLink; // s指向待插

2020-10-29 13:03:06 173

原创 操作系统:第一章 计算机系统概述

王道操作系统 第一章 - 计算机系统概述操作系统概念操作系统是计算机系统中最基本的系统软件,目标是向上层提供方便易用的服务。操作系统是系统资源的管理者提供的功能:处理机管理、存储器管理、文件管理、设备管理目标:安全、高效命令接口联机命令接口:交互式命令接口,例如 cmd脱机命令借口:例如批处理 bat 文件程序接口:可以在程序中进行 系统调用(即广义指令)来使用程序接口。普通用户不能直接使用程序接口,只能通过程序代码间接调用操作系统四个特征1、并发并发 是指多个事件在 同一时间间

2020-10-27 20:41:04 59

原创 数据结构:排序趟数 / 比较次数与序列的原始状态有关的排序方法有哪些?

先说结论比较次数 与序列初态 无关 的算法是:二路归并排序、简单选择排序、基数排序比较次数 与序列初态 有关 的算法是:快速排序、直接插入排序、冒泡排序、堆排序、希尔排序排序趟数 与序列初态 无关 的算法是:直接插入排序、折半插入排序、希尔排序、简单选择排序、归并排序、基数排序排序趟数与序列初态 有关 的算法是:冒泡排序、快速排序关于排序趟数插入排序、选择排序 趟数都是固定的 n-1。对于插入排序来说或,即使序列有序,也要依次从第二个元素开始,向前找它的插入位置。冒泡排序 趟数与数据有关,优

2020-10-26 21:54:44 722 2

原创 数据结构:堆和败者树的区别是什么?

一道经典的面试题如何从N个数中选出最大(小)的n个数?这个问题解法可以移步我的另一篇博客:《海量数据处理:如何从10亿个数中,找出最大的10000个数?(top K问题)》https://hanquan.blog.csdn.net/article/details/108277388本文对一些解法进行讨论。Naive 方法:首先,我们假设,n和N都是内存可容纳的,也就是说N个数可以一次load到内存里存放在数组里(如果非要存在链表估计又是另一个challenging的问题了)。从最简单的情况开始,

2020-10-26 18:54:38 60

原创 数据结构:下列选项中,不可能是快速排序第2趟排序结果的是(2019年全国试题10)

题目排序过程中,对尚未确定最终位置的所有元素进行一遍处理称为一“趟”。下列排序中,不可能是快速排序第二趟结果的是()【2019年全国试题10(2分)】A. 5, 2, 16, 12, 28, 60, 32, 72B. 2, 16, 5, 28, 12, 60, 32, 72C. 2, 12, 16, 5, 28, 32, 72, 60D. 5, 2, 12, 28, 16, 32, 72, 60题解答案:D,分析如下。每经过一趟快排,轴点元素都必然就位。也就是说,一趟下来至少有1个元素在其最

2020-10-26 00:00:15 339

原创 数据结构:超好用的数据结构与算法可视化工具(USFCA旧金山大学)

工具地址这是旧金山大学的一个网站,该网站以可视化的交互模式介绍数据结构和算法,非常有利于理解!https://www.cs.usfca.edu/~galles/visualization/Algorithms.html使用方法以上链接进入可视化工具导航页面。该页面提供的大部分平时所用到的数据结构,包括 红黑树,二叉查找树,B树,B+树 的演示,以及排序算法例如 冒泡排序、选择排序、希尔排序、快速排序等等 的可视化演示。例如,冒泡排序:B+ 树的动态插入过程:...

2020-10-25 12:12:00 99

原创 数据结构:在下述几种树中,()可以表示静态查找表?

题目在下述几种树中,()可以表示静态查找表?A. 次优查找树B. 二叉排序树C. B-树D. 平衡二叉树解答答案:A静态查找表(Static Search Table):只作查找操作的查找表。A:查询某个“特定”数据元素是否在查找表中;B:检索某个“特定”数据元素和各种属性。动态查找表(Dynamic Search Table):在查找过程同时插入查找表中不存在的数据元素,或者从查找表中删除已经存在的某个数据元素。A:查找是插入数据元素;B:查找时删除数据元素。次优查找树:在有

2020-10-24 19:44:20 42

原创 数据结构:(翻转二叉树) 若二叉树采用二叉链表作存储结构,要交换其所有分支结点的左右子树的位置,采用()遍历方法最合适

题目若二叉树采用二叉链表作存储结构,要交换其所有分支结点的左右子树的位置,采用()遍历方法最合适?(北京航空航天大学,1999)A. 前序B. 中序C. 后序D. 层次答案用二叉链表存储结构也就是左孩子右兄弟的存储结构。答案:A,C评注:实际上B,D也是可以的,只不过不是“最合适”。下面给出代码(均通过leetcode测试用例验证)题解后序遍历做好当前结点子树内部的交换,然后交换当前结点的左右子树。递归交换左子树递归交换右子树使用临时变量交换左子树与右子树class

2020-10-11 11:41:38 483

原创 数据结构:若借助栈由输入序列1,2…n得到的输出序列为p1p2…pn(它是输入序列的一个排列),证明在输出序列中不可能出现这样的情形:存在着i<j<k,使pj<pk<pi

题目若借助栈由输入序列1,2…n得到的输出序列为p1p2…pn(它是输入序列的一个排列),证明在输出序列中不可能出现这样的情形:存在着i<j<k使pj<pk<pi题解因为输入序列是从小到大排列的,所以若pj<pk<pi,则可以理解为通过输入序列pj,pk,pi可以得到输出序列pi,pj,pk,显然通过序列123是无法得到312的。所以不可能存在着i<j<k使pj<pk<pi...

2020-10-03 18:32:10 603 2

原创 数据结构:详解KMP算法,手工求解next、nextval数组,求模式串的比较次数例题

KMP 算法手工求解 next 数组,nextval数组例题:求模式串的比较次数2019 年 408 统考真题设主串 T=“abaabaabcabaabc”,模式串 S=“abaabc”,采用 KMP 算法进行模式匹配,到匹配成功时为止,在 匹配过程中进行的单个字符间的比较次数是?解答...

2020-10-03 18:27:49 338

原创 数据结构:利用栈,将递归转换为非递归的方法

利用栈将递归转换为非递归对于一般的递归过程,仿照递归算法执行过程中递归工作栈的状态变化,可直接写出相应的非递归算法。步骤第一次调用的参数push进堆栈,原有递归代码外层加一个while循环,判断条件就是递归结束的条件。递归调用的地方改成push(); continue;直到遇到递归终止条件,退出递归运算所在循环,再用一个新的循环做出栈操作并计算,将递归代码中的return改成pop并执行响应的计算,直到栈空为止。就可以了。完整描述:(1) 设置一个工作栈存放递归工作记录(包括实参、 返回地址

2020-10-03 11:42:28 216

原创 数据结构:用栈实现中缀表达式的求值(文字描述+详细步骤示例)

用栈实现中缀表达式的求值步骤:从左到右扫描,如果扫描到的运算符优先级大于栈顶运算符优先级,则入栈,否则,出栈并运算。如果遇到右括号,一直出栈,直到遇到左括号为止。并且每一次出栈的运算符都要做一次运算。扫描完整个表达式后,S2栈中如果还有运算符剩余,则全部出栈,逐个计算即可。例题画出对算数表达式 A - B * C / D - E ↑ F 求值时操作数栈和运算符栈的变化过程。(东南大学,2000)...

2020-10-02 11:57:30 185

原创 高等数学:求“分段函数在分段点”的导数,可以直接用导数公式吗?

经过证明,虽然原理用到的是导数定义,但是在实际运用中,只要函数在分段点上是连续的,就可以直接对分段点两边的函数分别求导,并且零分段点上的导数相等即可,这样更加节省时间。证明过程如下:

2020-10-01 17:51:45 331

原创 数据结构:同一组不重复输入序列执行不同的出入栈组合操作,所得结果也可能相同?——对此问题的探讨

题源:《数据结构1800题》第四版 P451. 判断题:同一组不重复输入序列执行不同的出入栈组合操作,所得结果也可能相同。(北京邮电大学,2005)答案:√分析:这道题之前已经有人讨论过,可以参考:《V2EX:一个算法题请教…》,看来确实有一些争议,下面以我的理解分析一下。首先,本题 并未说明说初态和终态是否为空,而在 终态栈非空 的情况下,也就是说,并不需要所有元素都出栈,这样的话,留给我们的发挥空间就比较大了。例如,输入序列为:1 2 3 4操作①:push pop,输出序列:1操作②:p

2020-10-01 11:49:49 393 2

原创 数据结构:用栈实现表达式的转换(文字描述+详细步骤示例)——中缀转后缀

中缀转后缀从左到右扫描这个中缀表达式,如果遇到操作数,就直接写出来;如果遇到运算符,就将其入栈。入栈之前,首先将当前运算符与栈顶运算符比较优先级,如果当前运算符优先级小于等于栈顶运算符的优先级,则将栈顶运算符出栈,并写入结果表达式中,(这是一个循环的过程),然后继续和新的栈顶运算符比较,这样一直进行下去,直到比较结果为大于,则将扫描到的运算符入栈。栈空时,直接将运算符入栈。对于表达式中含有括号的情况,当遇到左括号,直接入栈。当栈顶为左括号时,所有扫描到的运算符都入栈。当扫描到右括号时,则进行一系列出栈

2020-09-30 11:55:16 93

原创 高等数学:分母阶数未知,如何对分子进行泰勒展开?——对泰勒公式展开阶数问题的分析

这道题有很多种解法,用洛必达或泰勒展开均可。如果用洛必达,有暴力直接洛必达和化简后再用洛必达两种方式。如果用泰勒展开,需要关注展开阶数的问题。而在分母阶数未知的情况下,并不能够预知需要展开到几阶。因此,实际上泰勒展开法是不可行的。本文我们重点讨论一下泰勒展开法存在的问题以及原因。

2020-09-27 16:36:24 114

原创 高等数学:数列前后项【递推式的单调性】与【整个数列单调性】的关系

数列前【后项递推式的单调性】与【数列单调性】的关系总的来说,递推函数虽然描述的只是相邻两项的大小关系,但也与整个数列的单调性有一定的联系。系如果数列的递推公式大于零,则数列单调,如果数列的递推公式小于零,则数列无单调性。证明过程如下:...

2020-09-24 16:59:23 429

原创 递归算法题解析:设m,n均为自然数,m可表示为一些不超过n的自然数之和,f(m,n)为这种表示方式的数目

题源:中科院软件所 1997 二,1(9分)设m,n均为自然数,m可表示为一些不超过n的自然数之和,f(m,n)为这种表示方式的数目。例:f(5,3)=5,有五种表示方式:3+23+1+12+2+12+1+1+11+1+1+1+1请补全递归代码。答案#include<stdio.h>int f(int m, int n);int main(){ int m,n,ans; scanf("%d%d",&m,&n); ans =

2020-09-21 16:20:49 319

原创 关于我国科技创新研究,以及创新成果的转化的思考

关于我国科技创新研究,以及创新成果的转化的思考根据我国发展战略纲要,我国科技事业发展的目标是,“到2020年时使我国进入创新型国家行列,到2030年时使我国进入创新型国家前列”。既然要建设“创新型国家”,要跻身“前列”,那么,用什么来衡量呢?你说你是创新型国家,你就是了吗?它是有很多评价指标和考核标准的,比如,国家的专利数量啊,科研人员的数量啊,科研成果数量啊,发表论文数量啊,科技向生产领域的转化率啊,等等,用这些来作为考核指标。我们国家这两年是很难不着急的,因为今年我们就要“进入创新型国家行列”,而

2020-09-12 18:33:33 76

原创 线性代数:二次型为什么可以用矩阵表示?——分组因式分解推导

二次型及其矩阵表示步骤:平方项系数按顺序卸载主对角线上其他二次项的系数除以 2,分别卸载对应下标元素的对称位置(例如,下图中,x1x2的系数2,被分为1和1,分别写在a12和a21的位置)二次型为什么可以用矩阵表示?——分组因式分解推导...

2020-09-06 11:44:04 93

原创 线性代数:特征值有重根时,相同特征值对应的不同特征向量顺序能交换吗?

求可逆矩阵 P,使 P^(-1)AP=∧ 的一般解题步骤我们知道,特征值和特征向量是要一 一对应的。但是,当特征值有重根时,相同特征值对应的不同特征向量顺序可以交换吗?经过验证,相同特征值 对应的 不同特征向量 顺序 可以交换 。过程如下:...

2020-09-06 01:14:11 448

原创 面试必会系列 - 1.5 Java 锁机制

本文已收录至 github,完整图文:https://github.com/HanquanHq/MD-NotesJava 锁机制概览syncronized 锁升级过程ReentrantLock 可重入锁volatile 关键字JUC 包下新的同步机制syncronized给一个变量/一段代码加锁,线程拿到锁之后,才能修改一个变量/执行一段代码wait()notify()synchronized 关键字可以作用于 方法 或者 代码块,最主要有以下几种使用方式:注意:不.

2020-09-04 12:25:48 305

原创 面试必会系列 - 1.4 类加载机制

本文已收录至 github,完整图文:https://github.com/HanquanHq/MD-Notes类加载机制类加载机制,类加载的过程?class loading 加载:JVM 把描述类的数据从 Class 文件加载到内存中class linking 连接verification:校验装进来的 class 文件是否符合标准,比如 CA FE BA BEpreparation:将 class 文件的静态变量赋默认值(不是初始值)resolution:把 class 文件常量.

2020-09-04 12:21:35 100

Java小球躲避小游戏

Java开发的小球躲避小游戏。通过上下左右按键控制小球移动,小球移动的方向包括:横向、纵向、斜向,小球具有初始生命值。小球通过移动来躲避炮弹,当小球碰到炮弹时,产生爆炸的动画效果。注释很全面,速度、初始子弹数量都可以通过全局变量修改。适合入门学习使用。

2019-06-24

寒泉Hq的留言板

发表于 2020-01-02 最后回复 2020-04-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除