- 博客(16)
- 资源 (2)
- 收藏
- 关注
原创 先序中序建立二叉树的递归算法
其先序序列的第一个元素为根节点,接下来即为其左子树先序遍历序列,紧跟着是右子树先序遍历序列,固根节点已可从先序序列中分离。在中序序列中找到 确定的根节点,根据中序遍历特性,在巾序序列中,根节点前面的序列即为左子树的中序遍历序列,根节点后面的即为右子树的中序遍历序列。由左右子树的中序序列长度,在该二又树的先序序列中即可找到左右子树的先序序列的分界点,从而得到二叉树的左右子树的先序序列。递归实现: 递归函数输入:二叉树的先序序列和中序序列;返回-、建好的二叉树的根节点。算法思想:1)若二叉树空,返回空;2)若不
2011-05-26 20:49:00
2411
转载 游戏程序员养成计划
<br /><br />与玩游戏相比,写游戏要复杂上千万倍,除了需要掌握通用的编程技巧以外,还要有相当的图形学,物理,数学基础,特别是在国内,由于相关资料的缺乏,更是让初学者无从下手。下面总结了一些入门方法和比较容易入手的资料。<br /> 首先你要精通一门高级语言,比如C++或者C#,其次,要有良好的英文阅读能力。对游戏开发者来说英文阅读能力是最重要也是最基本的工具之一,因为你遇到的大部分资源都将是英文的,不要总等着别人为你翻译。慢慢尝试着阅读英文资料,你会发现其实也并没有那么难:)<br
2011-05-18 20:05:00
441
原创 《DirectX 游戏开发终极指南》游戏项目编译成功的方法
网上看到很多对游戏编程有兴趣的朋友都在说《DirectX 游戏开发终极指南》这本书的游戏项目无法编译通过,自己研究了一下,上网也看了好多提问,终于摸索出成功编译的方法,希望跟这些朋友一起分享一下,大家一起学习一起进步。下面开始正题:首先,必须在vs2003以上的环境建立工程,因为最新的dxsdk对vc6已经不支持了,而且《DirectX 游戏开发终极指南》游戏项目中要用到的directinput在vc6下也有错误。要编译通过随书附带的游戏项目示例程序,要用早期版本DX9。0c 因为最新版本的DX9已经没有d
2011-05-18 13:17:00
985
转载 Vs2005生成静态库,及如何使用这个静态库
学习笔记详解:1. 打开vs2005新建一个项目TT,分别定义头文件TT.h 和实现文件TT.cpp,如下图。 2. 程序写好后,你发现没有,这个项目是没有主函数的,编译一下出现了错误,因为没有程序入口,下面做一个设置,打开项目属性:右键->属性3. 选择配置属性->常规; 配置类型选择”静态库(.lib)”, 确定后再编译 4. 编译完成后,在当前项目文件的根目录下Debug文件中已经生成了一个TT.lib文件如何使用这个静态库呢?要使用这个库里的方法,需要两个文件:头文件TT.h和静态库
2011-05-18 13:16:00
874
转载 VS 2005环境下生成静态lib库及调用方法
VS 2005环境下生成静态lib库及调用方法生成lib方法:步骤1:新建一个空项目,建一个头文件如Test.h#pragma once #ifdef __cplusplus extern "C" { #endif int GetMin(int a, int b); #ifdef __cplusplus } #endif //其实只要 int GetMin(int a, int b);这么一句语言也会通过,其他的语句仅仅表明一个头文件在很
2011-05-18 13:13:00
549
原创 (转一个帖子)10年造就一个程序员
<br />最近园子到处充斥着类似《告别程序员生涯,一点感慨,与诸君共勉》http://topic.youkuaiyun.com/u/20110331/00/37ad95f8-f559-497f-b527-191eb701ef77.html?99610<br />《开发工程师人生之路(强烈推荐,分析的透彻!)》http://topic.youkuaiyun.com/u/20110323/16/16ebe2ac-bca5-49da-a050-45cf522a0828.html这样的文章。<br /><br />这些文章往往格调阴暗,
2011-05-18 13:13:00
379
原创 马踏棋盘(递归算法)
#include int board [8][8]={0};int Htry1[8]={-2,-1,1,2,2,1,-1,-2};int Htry2[8]={1,2,2,1,-1,-2,-2,-1};bool chech[8][8]={0};//标记位置是否已经被占用int n=1;//就算已走的步数void findway(int i,int j){for(int z=0;z=0&&i+Htry1[z]=0&&j+Htry2[z]
2011-05-18 13:09:00
565
原创 马踏棋盘(非递归)
#include struct point{int x,y;//马的位置int dir;//这一次马行走的方向};struct stack{point p[64];//存储马的位置,方便回溯};int board [8][8];int Htry1[8]={-2,-1,1,2,2,1,-1,-2};int Htry2[8]={1,2,2,1,-1,-2,-2,-1};bool chech[8][8]={0};//标记位置是否已经被占用int main()
2011-05-18 13:08:00
2315
转载 模板类声明和定义
<br /><br />如何组织编写模板程序<br />前言<br />常遇到询问使用模板到底是否容易的问题,我的回答是:“模板的使用是容易的,但组织编写却不容易”。看看我们几乎每天都能遇到的模板类吧,如STL, ATL, WTL, 以及Boost的模板类,都能体会到这样的滋味:接口简单,操作复杂。<br />我在5年前开始使用模板,那时我看到了MFC的容器类。直到去年我还没有必要自己编写模板类。可是在我需要自己编写模板类时,我首先遇到的事实却是“传统”编程方法(在*.h文件声明,在*.cpp文件中定义)不
2011-05-18 13:06:00
660
转载 alpha混合原理
alpha混合原理在前面介绍的示例程序中,绘制图形的颜色总是替换当前颜色缓冲区中存在的颜色,这样后面的物体总是覆盖在原有的物体上。但是当想要绘制类似于玻璃、水等具有透明效果的物体时,这种方法显然满足不了要求。通过定义一个表示物体半透明度的alpha值和一个半透明计算公式,可以将要绘制的物体颜色与颜色缓冲区中存在的颜色相混合,从而绘制出具有半透明效果的物体。Direct3D计算alpha颜色混合的方法如下:color = (RGBsrc * Ksrc) OP (RGBdst * Kdst)其中color表示a
2011-05-18 13:04:00
1097
1
转载 简单说说IDirect3DDevice9::SetTextureStageState
还是先发DX的文档的记录:IDirect3DDevice9::SetTextureStageStateSets the state value for the currently assigned texture.HRESULT SetTextureStageState( DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD Value );ParametersStage[in] Stage identifier of the texture for which
2011-05-18 13:03:00
646
转载 DirectX9.0教程之ID3DXSprite篇
前言:本教程面向对DriectX 9.0有一定了解的读者,主要讲解DirectX 9.0的各个部分的功能及用法。希望对广大的游戏初学者有一定帮助,也好让本人对中国游戏事业的发展做出一些微不足道的贡献。作者:Fabric(由于本人是广东人,写文章难免参杂粤语写法,请见谅) 简介:ID3DXSprite是DriectX 9.0里面的一个简单模块,在DriectX 9.0帮助文档里面对其功能的描术为:“向用户提供一套简单的在屏幕上实现精灵渲染的接口。”何为精灵渲染,说白了就是渲染2D画面,ID3DXSprite
2011-05-18 13:01:00
924
转载 DirectX图象中设备支持的原基类型-D3D入门
微软D3D设备能创建和操纵下面初基类型:l 点列表l 线列表l 线带l 三角形列表l 三角形带l 三角形扇区你能用IDirect3DDevice9接口中的任何粉刷方法在C++程序中粉刷原基。1.1.1.1. 点列表一个点列表是一个顶点的集合,这些顶点被作为单独的点来粉刷。你的程序可以在3-D场景中用它们作为在多边形表面上开始字段、点线。下图描述了一个粉刷后的点列表。你的程序能在一个点列表上应用素材和纹理,素
2011-05-18 12:59:00
359
原创 D3D中D3DFVF_XYZ和D3DFVF_XYZRHW的区别
学习D3D9的时候遇到灵活顶点格式(FVF)中D3DFVF_XYZRHW和D3DFVF_XYZ之间差异而引起的问题。参看了同是C++博客的一篇博文,其分析如下: The RHW value, which stands for Reciprocal of Homogeneous W[1], tells Direct3D that the vertices that are being used are already in screen coordinates. This value is n
2011-05-18 12:58:00
402
转载 一个用D3D绘制2D图形的例子
一个用D3D绘制2D图形的例子思路如下:(1)函数Do_Init初始化D3D,D3D设备,顶点缓冲,纹理;主要调用这几个函数: Direct3DCreate9,GetAdapterDisplayMode,CreateDevice,CreateVertexBuffer, Lock,Unlock,D3DXCreateTextureFromFile。(2)函数Do_Frame绘制一帧,主要调用这几个函数: Clear,BeginScene,EndScene,SetStreamSourc
2011-05-18 12:50:00
763
原创 哈哈,新发现!C语言中是可以有动态数组的!!
可以通过调用malloc来实现! #include #include main(){ int *p,count; scanf("%d",&count); p=(int*)malloc(count*sizeof(int)); for(int i=0;i<count;i++) p[i]=i; for(int j=0;j<count;j++) print
2010-04-17 22:39:00
526
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人