自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (9)
  • 问答 (6)
  • 收藏
  • 关注

原创 C++(qt)游戏实战项目:坦克大战(三)

前面实现了地图的显示但是地图很单一,这回实现地图的编辑、保存和载入。 我们给地图类Gamemap添加下面几个成员函数 gamemap.h int switchstyle(int i,int j);//改变cells[i][j]地图块的样式 void setstyle(int i,int j,int style);//设置cells[i][j]地图块的样式 void dele

2017-05-29 20:02:35 5084 8

原创 随记,虚函数与引用

#include <QCoreApplication>#include<stdio.h>class A{protected: int x;public: A(int xx):x(xx) {} virtual void say(){printf("a say %d\n",x);}};class B:public A{protected: int y;pu

2017-05-25 08:23:08 479

原创 C++类的前向声明

今天遇到个情况大致可以如下//file a.h#include"xxxx.h"//xxxx.h里最终间接的把b.h也包含了class A{public:A(){}};//file b.h#include "a.h"class B{public:B(){}private:A a;}结果导致编译错误 我们分析a.h对应的a.cpp单元最终可以得到如下代码//file: a.cp

2017-05-24 15:53:13 583

原创 C++(qt)游戏实战项目:坦克大战(二)

地图的表示前面讲到了地图块类,我们想一想地图是地图块or地图包含地图块,是前者用继承,明显这里是包含的关系。地图对象里管理着所有的地图块对象,我们用二维数组cells[INUM][JNUM]存储各个地图块对象的指针(想一想为什么不直接存储地图块对象?),前面说过整个游戏地图被分成很多的地图块,cells[i][j]表示i行j列的地图块。//file gamemap.h #ifndef GAMEMAP

2017-05-24 06:45:08 6555 3

原创 C++(qt)游戏实战项目:坦克大战(一)

地图左到右从上到下依次编号0,1,2,3…28//file:main.h#ifndef MAIN#define MAIN#define JNUM 17//地图块列数#define INUM 13//地图块行数#define PICWIDTH 64//地图块图片宽度#define PICHEIGHT 64//地图块图片高度#define CELLWIDTH 64//地图块宽度#defi

2017-05-23 15:58:33 12598 9

原创 C++(qt)游戏实战项目:坦克大战(前言)

坦克游戏,儿时的经典,同样是练手的经典小项目之一! 准备好开发环境 必须 备注1 备注2 window或linux系统 推荐window QT5.5以上 百度一下就知道 整体框架伪代码描述游戏开始游戏初始化while(true){从消息队列收集信号signal swtich(signal){ case: 绘图信号 绘

2017-05-23 08:11:07 38750 36

原创 QT 建立透明背景图像QPixmap

QPixmap pixmap(160,200);pixmap.fill(Qt::transparent);//用透明色填充QPainter paint(&pixmap);//paint.draw....;pixmap.save("bullet.png");列将下面背景透明图片1转变成图片2图1![图片1](http://img.blog.csdn.net/201705201434085

2017-05-20 14:14:55 14382

转载 散列表冲突解决方法11.1.3

常用的解决思路: 1、换个位置:开放定址法 数组结构 #define MAXTABLESIZE 100000 /* 允许开辟的最大散列表长度 */ typedef int ElementType; /* 关键词类型用整型 */ typedef int Index; /* 散列地址类型 */ typedef Index Position;

2017-05-17 07:54:50 436

原创 散列函数的构造方法11.1.2

一个好的散列函数一般要考虑以下两个因素:1、计算简便,以便提高转换速度 2、关键词对应的地址空间分布均匀,以尽量减少冲突散列函数的常用方法关键词为数字1、直接定址法取关键词的某个线性线性函数作为散列地址,即h(key)=axkey+b,比如统计1949年成立以来的司令身份,h(key)=key-1949.2、除留余数法:h(key)=key mod p 一般p=tablesize=素数 以使对

2017-05-17 06:58:41 527

原创 散列表简介11.1.1

编译处理时候涉及到变量及属性的管理,动态查找管理插入:新变量查找:变量的引用如果利用查找树(搜索树)进行变量管理:两个变量名(字符串)比较效率不高目前已经知道的

2017-05-14 21:20:30 209

转载 多关键字排序-oj考试排名10.1.3

考试排名 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3445 Accepted Submission(s): 1249Problem Description C++编程考试使用的实时提交系统,具有即时获得成绩排名的特点。它的功能

2017-05-12 07:43:22 887

原创 桶排序升级之基数排序c语言实现10.1.2

上一篇介绍了不稳定的快速排序,这回介绍基数排序基数排序是基于分配策略的排序,不是一种比较排序,不受到 O(n log n) 下限的影响,是一种稳定的排序算法,并且它可以应用于多关键字排序。次位优先基数排序先按照优先级别最低的位对序列进行排序,下一步按照稍高优先级的位对序列进行排序,直到最高位时候整个序列就是有序序列主位优先基数排序先按照优先级最高的位对序列进行排序,

2017-05-06 10:03:27 736

原创 快速排序-c语言实现10.1.1

快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。 总的说来,要直接默写出快速排序还是有一定难度的,因为本人就自己的理解对快速排序作了下白话解释,希望对大家理解有帮助,达到快

2017-05-06 07:01:38 4585

转载 归并排序之循环归并排序9.4.3

借记卡

2017-05-03 15:28:03 379

原创 归并排序之有序子列的归并9.4.1

已知数组a有两个有序的子列挨在一起,l为左边子列的起始下标,r为右边子列的起始下标,rend为右边子列的终点下标,以下算法将整个a变为有序子列void Merge(ElementType a[],ElementType tmpa[],int l,int r,int rend){int len=rend-l+1;//整个数组长度int lend=r-1;//左边的终点下标int tmp=l

2017-05-03 15:13:51 293

原创 归并排序之递归排序9.4.2

#include#include#include#includetypedef int ElementType;void Merge(ElementType a[],ElementType tmpa[],int l,int r,int rend){//有序子列的归并int len=rend-l+1;int lend=r-1;int tmp=l;while(l<=lend&&r<=

2017-05-03 15:09:25 301

原创 选择排序和堆排序9.3.1

选择排序伪代码堆排序:以上图片均来自网络截图以下代码来自百度知道#include#include#include void Swap( ElementType *a, ElementType *b ) { ElementType t = *a; *a = *b; *b = t; } void Per

2017-05-02 09:31:40 268

原创 插入排序和希尔排序9.2.1

插入排序的基本思想是:每步将一个待排序的纪录,按其关键码值的大小插入前面已经排序的文件中适当位置上,直到全部插入完为止。 void InsertionSort( ElementType A[], int N ) { /* 插入排序 */ int P, i; ElementType Tmp; for (

2017-05-02 08:02:53 276

原创 简单排序冒泡排序和插入排序9.1.1

N个元素的冒泡排序:冒泡排序每一趟比较无序序列相邻的两个元素,如果前一个元素小于后者就交换,一趟下来最大的元素排在最后---这样无须序列元素少一个,有序序列元素多一个,当进行N-1趟这样的操作后整个序列就变为有序序列。#include#include#includetypedef int EleType;void swap(EleType *a,EleType *b){//交换两元素位

2017-05-01 18:53:39 231

转载 拓扑排序,数据结构学习笔记8.1.4

/* 邻接表存储 - 拓扑排序算法 */ bool TopSort( LGraph Graph, Vertex TopOrder[] ) { /* 对Graph进行拓扑排序, TopOrder[]顺序存储排序后的顶点下标 */ int Indegree[MaxVertexNum], cnt; Vertex V; PtrT

2017-05-01 13:40:58 390

window错误码查询工具.rar

开发中常常用错误码表述函数执行错误时原因,我们常常需要知道错误码是什么意思。我们设计函数时候也需要知道函数该用何种错误码来描述执行错误的状态。这个工具可以方便我们查询。支持查询1、0x001正向查询。还支持反向查询,比如:当我们函数检测到文件已经被篡改过了,此时可以用“文件的哈希值不在指定的目录文件中。此文件可能已损坏或被篡改“,此时只需要这样查询 文件[空格]篡改。window错误码查询工具.exesha1:f8445c81c4098b05e098a0db3918f63b511c00c8

2020-06-20

更改win10默认编码为utf8,无%SystemRoot%_system32_cmd.exe注册表项也可以以.reg

  在程序开发中我们一般统一的编码是 UTF-8,这一点很重要,但是总还是会遇到许多乱码问题,乱码的原因是多方面的,这里暂不过多总结。这里只说明在window下使用控制台执行 一些自己编写的程序,或者是进行交互式编程的时候会经常遇到乱码问题,这是因为Window cmd的默认编码是GBK。与程序采用的 UTF-8 不一致造成的中文及特殊字符乱码。下载此文件点击就可以方便永久更改cmd默认编码为utf8

2019-06-29

C++(qt)游戏实战项目:坦克大战(源代码)

此坦克游戏采用c++开发,有详细的源码解析 已实现功能 地图编辑m,地图加载l,地图保存s 玩家坦克移动asdw 发射子弹j 发挥你的才智实现以下功能吧: 关卡设计 坦克打怪升级 坦克魔法攻击 等等

2017-07-19

严蔚敏海龟作图初步程序适合参考

命令格式 命令范例 范例含义 前进 前进 100 海龟前进100个点 后退 后退 100 海龟后退100个点 左转 左转 90 左转90度 右转 右转 90 右转90度 ......这是一个基本框架,还有其他功能没实现,那是留个读者实现的。。。有了其骨,其髓由你填充!非MFC程序,注释详细,易懂!

2015-12-28

用C++发邮件

用C++发邮件,用起来超简单,稍微改下代码可以实现群发功能

2015-10-21

经典小游戏合辑

经典的C++游戏源代码,来是我收集于共享网络

2015-08-13

超级玛丽制作揭秘

这个资源是我在共享网站上下载的,适合有一定C++基础的人!

2015-08-13

windows程序设计第五版

非常适合有一定C或C++基础后,来作为WINDOW程序设计的入门

2015-08-13

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

TA关注的人

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