- 博客(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.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
2020-06-20
更改win10默认编码为utf8,无%SystemRoot%_system32_cmd.exe注册表项也可以以.reg
2019-06-29
C++(qt)游戏实战项目:坦克大战(源代码)
2017-07-19
严蔚敏海龟作图初步程序适合参考
2015-12-28
多线程如何让用户调用马上抢到互斥锁?
2020-06-30
关于用timeSetEvent c++多线程时的空悬指针来探讨解决办法
2020-03-27
怎么根据一张表自动生成另一张表
2016-01-13
我写的这个截全屏函数有什么问题
2015-10-15
截屏,不知道哪里出了问题,打开图片不显示
2015-08-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人