自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (4)
  • 收藏
  • 关注

原创 设计模式:组合模式

组合模式:将对象组合成树形结构以表示“部分-整体“的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性 一个例子:公司和公司部门的关系 //Company基类#ifndef COMPANY_H#define COMPANY_H#include using std::string;class Company{public: Compan

2009-09-19 15:35:00 1035

原创 Window窗口类型

在编写程序时有很多的窗口风格不知道是什么意思,我罗列一些:WS_BODER 窗口具有细线边框 WS_CAPTION 窗口具有标题栏(包含 WS_BODER) WS_CHILD 创建一个子窗口(此风格不能与 WS_POPUP 一起使用 ) WS_CHILDWINDOW 与 WS_CHILD 相同 WS_CLIPHILDREN 当在父窗口中画图时,绕开子窗口占有的区域。 WS_CLIPSBLING

2009-09-17 23:30:00 1259

原创 设计模式:命令模式

命令模式:将一个请求封装一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持课撤销的操作一个例子:烧烤厨师,各户的要求,服务员 代码如下://烧烤厨师#ifndef BARBECUER_H#define BARBECUER_H#include using std::cout;using std::endl;class Ba

2009-09-17 16:24:00 858

转载 设计模式:适配器模式

适配器模式:将一个类的接口转换成客户希望的另一个接口,Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作适配器模式有两种:1.对象的适配器模式2.类的适配器模式 适配器类图: 一个例子://IPromotion基类#ifndef IPROMOTION_H#define IPROMOTION_Hclass IPromotio

2009-09-14 13:46:00 802

转载 设计模式:状态模式

状态模式:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化。UML类图: 一个例子://Auto类//Auto.h#pragma onceclass State;class Auto

2009-09-13 19:30:00 678

原创 设计模式:抽象工厂模式

 抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。类图如下:一个例子:在在两种不同的数据库里处理User,Department表的数据//User类#ifndef USER_H#define USER_H#include using std::string;class User{public: User(){}

2009-09-10 15:42:00 646

转载 C++位操作介绍

 C++位操作包括两种:传统的C语言方式的位操作和C++中利用bitset容器的位操作     一、传统的C方式位操作:1.基本操作:   使用一个unsigned int变量来作为位容器。2.操作符:|   按位或操作符:result=exp1|exp2;当exp1和exp2中对应位中至少有一个为1时,result中对应位为1,否则为0。&  按位与操作符::resu

2009-09-09 11:45:00 588

转载 OpenGL入门学习(七)

今天要讲的是OpenGL光照的基本知识。虽然内容显得有点多,但条理还算比较清晰,理解起来应该没有困难。即使对于一些内容没有记住,问题也不大——光照部分是一个比较独立的内容,它的学习与其它方面的学习可以分开,不像视图变换那样,影响到许多方面。课程的最后给出了一个有关光照效果的动画演示程序,我想大家会喜欢的。从生理学的角度上讲,眼睛之所以看见各种物体,是因为光线直接或间接的从它们那里到达了眼睛。人类对

2009-09-07 19:18:00 888

原创 设计模式:观察者模式

观察着人模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。UML类图如下: 一个例子:上课时,有些人在打牌,但是又怕老师看见,所以他们就叫一个人看着老师,只有老师一过来就告诉他们。具体代码如下: //Subject基类#ifndef OBSERVER_H#define

2009-09-07 13:39:00 780

原创 设计模式:建造者模式

建造者模式:将一个复杂对象的构建于它的表示分离,使得同样的构建过程可以创建不同的表示。适用性:    1.当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。    2.当构造过程必须允许被构造的对象有不同的表示时。UML类图: 一个示例:建造一个房子//House类#ifndef HOUSE_H#define HOUSE_H#include

2009-09-06 20:52:00 1016 3

转载 OpenGL入门学习(六)

今天要讲的是动画制作——可能是各位都很喜欢的。除了讲授知识外,我们还会让昨天那个“太阳、地球和月亮”天体图画动起来。缓和一下枯燥的气氛。本次课程,我们将进入激动人心的计算机动画世界。想必大家都知道电影和动画的工作原理吧?是的,快速的把看似连续的画面一幅幅的呈现在人们面前。一旦每秒钟呈现的画面超过24幅,人们就会错以为它是连续的。我们通常观看的电视,每秒播放25或30幅画面。但对于计算机来说,它可以

2009-09-06 16:34:00 741

转载 OpenGL入门学习(五)

今天要讲的是三维变换的内容,课程比较枯燥。主要是因为很多函数在单独使用时都不好描述其效果,我只好在最后举一个比较综合的例子。希望大家能一口气看到底了。只看一次可能不够,如果感觉到迷糊,不妨多看两遍。有疑问可以在下面跟帖提出。我也使用了若干图形,希望可以帮助理解。在前面绘制几何图形的时候,大家是否觉得我们绘图的范围太狭隘了呢?坐标只能从-1到1,还只能是X轴向右,Y轴向上,Z轴垂直屏幕。这些限制给我

2009-09-06 16:15:00 833

转载 OpenGL入门学习(四)

OpenGL支持两种颜色模式:一种是RGBA,一种是颜色索引模式。无论哪种颜色模式,计算机都必须为每一个像素保存一些数据。不同的是,RGBA模式中,数据直接就代表了颜色;而颜色索引模式中,数据代表的是一个索引,要得到真正的颜色,还必须去查索引表。1. RGBA颜色RGBA模式中,每一个像素会保存以下数据:R值(红色分量)、G值(绿色分量)、B值(蓝色分量)和A值(alpha分量)。其中红、绿、蓝三

2009-09-06 16:13:00 753

转载 Open入门学习(三)

在第二课中,我们学习了如何绘制几何图形,但大家如果多写几个程序,就会发现其实还是有些郁闷之处。例如:点太小,难以看清楚;直线也太细,不舒服;或者想画虚线,但不知道方法只能用许多短直线,甚至用点组合而成。这些问题将在本课中被解决。下面就点、直线、多边形分别讨论。1、关于点点的大小默认为1个像素,但也可以改变之。改变的命令为glPointSize,其函数原型如下:void glPointSize(GL

2009-09-06 15:45:00 816

原创 OpenGL入门学习(二)

一、点、直线和多边形我们知道数学(具体的说,是几何学)中有点、直线和多边形的概念,但这些概念在计算机中会有所不同。数学上的点,只有位置,没有大小。但在计算机中,无论计算精度如何提高,始终不能表示一个无穷小的点。另一方面,无论图形输出设备(例如,显示器)如何精确,始终不能输出一个无穷小的点。一般情况下,OpenGL中的点将被画成单个的像素(像素的概念,请自己搜索之~),虽然它可能足够小,但并不会是无

2009-09-06 15:24:00 1014

转载 OpenGL入门学习(一)

说起编程作图,大概还有很多人想起TC的#include 吧?但是各位是否想过,那些画面绚丽的PC游戏是如何编写出来的?就靠TC那可怜的640*480分辨率、16色来做吗?显然是不行的。本帖的目的是让大家放弃TC的老旧图形接口,让大家接触一些新事物。OpenGL作为当前主流的图形API之一,它在一些场合具有比DirectX更优越的特性。1、与C语言紧密结合。OpenGL命令最初就是用C语言函数来进行

2009-09-06 15:21:00 872

转载 设计模式:外观模式

何为外观模式?外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得一子系统更加容易使用。它是一种结构型模式,它主要解决的问题是:组件的客户和组件中各种复杂的子系统有了过多的耦合,随着外部客户程序和各子系统的演化,这种过多的耦合面临很多变化的挑战。UML类图:  一个例子:现在有一辆汽车,我们(客户程序)要启动它,那我们就要发动引擎

2009-09-05 23:35:00 635

原创 设计模式:模板方法模式

每天一个设计模式,今天看到了模板方法模式。以下是模板方法模式的定义。模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类种,模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。UML类图:  一个应用例子://AbstactClass#ifndef _PAPER_H_#define _PAPER_H_#include

2009-09-05 22:32:00 715 1

转载 OpenGL-键盘控制

GLUT允许我们编写程序,在里面加入键盘输入控制,包括了普通键,和其他特殊键(如F1,UP)。在这一章里我们将学习如何去检测哪个键被按下,可以从GLUT里得到些什么信息,和如何处理键盘输入。   处理按键消息,我们必须使用GLUT通知窗口系统,当某个键被按下时,哪个函数将完成所要求的操作。我们同样是调用一个函数注册相关的回调函数。   当你按下一个键后,GLUT提供了两个函数为这个键盘消息注册回调

2009-09-05 18:10:00 1995

原创 设计模式:原型模式

原型模式(Prototype Pattern)也是一种创建型模式,它关注的是大量相似对象的创建问题。我们经常会遇到这样的情况:在系统中要创建大量的对象,这些对象之间具有几乎完全相同的功能,只是在细节上有一点儿差别。  这样的情形经常遇到。三国系列游戏是我最喜欢的游戏系列之一。你有没有注意到那里边上百位英雄的头像基本上很相似?你仔细区分就会发现,虽然每个人都不同,但基本上只具有几种脸型:长方的、圆形

2009-09-03 15:51:00 623

转载 设计模式:工厂方法模式

工厂方法模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。工厂方法模式角色与结构  抽象工厂(Creator)角色:是工厂方法模式的核心,与应用程序无关。任何在模式中创建的对象的工

2009-09-03 14:33:00 603

原创 设计模式:代理模式

 什么是代理模式:为其他对象提供一种代理以控制对这个对象的访问。  通常代理模式应用于以下几个场合:1.        远程(Remote)代理:为一个位于不同的地址空间的对象提供一个局域代表对象。比如:你可以将一个在世界某个角落一台机器通过代理假象成你局域网中的一部分。2.        虚拟(Virtual)代理:根据需要将一个资源消耗很大或者比较复杂的对象延迟的真正需要时才创

2009-09-02 22:43:00 607

转载 设计模式:装饰模式

装饰模式(Decorator),动态的给一个对象添加一些额外的职责,如下图,此图来自:> Component是定义一个对象接口,可以给这些对象动态的添加职责。ConcreteComponent是定义了一个具体的对象,也可以给这个对象添加一些职责。Decorator装饰类,继承了Component,从外类来扩展Component类的功能,但对于Component来说,是无需知道D

2009-09-02 22:01:00 790

原创 设计模式:几个原则

 开放-封闭原则:是说软件实体(类,模块,函数等等)应该可以扩展,但是不可修改。 面对需求,对程序的改动是通过增加新代码进行的,而不是更改现有的代码。 依赖倒转原则:A.高层模块不应该依赖底层模块,两个都应该依赖抽象,B.抽象不应该依赖细节,细节应该依赖抽象。 里氏代换原则:子类型必须能够替换它们的父类型。  其实这几个原则我理解的并的深刻,反正先写上以后再慢慢思考(本文内容源

2009-09-02 21:36:00 624

原创 设计模式:策略模式

 首先什么是策略模式?它定义了算法家族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化,不会影响到使用算法的的客户。各个类的定义如下:抽象算法类:  class Strategy{public: virtual void AlgorithmInterface()=0;} 具体算法类:class ConcreteStrategyA:public St

2009-09-02 18:37:00 628

原创 设计模式:简单工厂模式

简单工厂模式说简单点就是把创建对象的工作封装到一个类的方法中去。下面根据计算类来说明(源自于>)首先是操作的一个基类:   class Operator{public: Operator(void); Operator (double _numberA,double _numberB):numberA(_numberA),numberB(_numberB){}publi

2009-09-01 23:04:00 732

精通iOS开发(第6版) 英文版

学习IOS的不二之选,好好学习,天天向上。

2015-04-10

Effective_STL.pdf

更加灵活的使用STL.

2012-11-06

PC+游戏编程(人机博弈)(pdf+格式

书 名: PC游戏编程(人机博弈) 作 者: 王小春 出版社 : 重庆大学出版社 出版日期: 2002年6月 定 价: 38元 简 介:本书是一本专论机器搏弈的作品。详细披露了编写人机对弈程序的原理,技术和各种相关内容。包含一个完整的中国象棋人要对弈程序和一个完整的五子棋人机对弈程序实例。毫无保留的展示了估值核心,走法产生,以及约十种不同的搜索引擎,彻底解析了高性能博弈程序的秘密所在。实用性是本书的最大特点,本书的目标是让一个粗通程序设计的人在一个月内写出令人惊讶的人机博弈程序。完全没有一般人工智能书籍晦涩难懂的感觉。

2012-11-06

tcp/ip协议详解(卷1)

如果你想学习网络编程,就下载它吧,它是学习网络编程的好书。

2011-03-15

空空如也

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

TA关注的人

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