题目描述:淘宝公司内部有许多新鲜的小玩具,例如淘宝智能机器人。小时候,大家都玩过那个吃豆子的游戏吧,这机器人就是按照这个游戏设计的,它会朝着豆子的方向行走。不过机器人还存在一个bug,他只会朝南和朝东走。现在有一块空地,分成了n*m个格子,每个格子内有一颗豆子。机器人的起点在西北角,终点在东南角。请...
分类:
其他好文 时间:
2014-08-11 11:48:52
阅读次数:
210
很多游戏特别是rts,rpg类游戏,都需要用到寻路。寻路算法有深度优先搜索(DFS),广度优先搜索(BFS),A星算法等,而A星算法是一种具备启发性策略的算法,效率是几种算法中最高的,因此也成为游戏中最常用的寻路算法。直入正题:在游戏设计中,地图可以划分为若干大小相同的方块区域(方格),这些方格就是...
分类:
其他好文 时间:
2014-08-08 20:46:46
阅读次数:
184
客户端的变量模块部分主要是将一些常用可变的值集中管理,如窗口的大小,是否开启音乐,音量的大小等等。这些变量通常会应该到客户端的操作,一般来说变量改变的时候会调用一个回调进行处理。下面我们就看看该模块的常用方法吧。CODE文件system.h/** * PAP Engine ( -- ) * $Id ...
分类:
其他好文 时间:
2014-08-08 12:05:35
阅读次数:
251
这是第三部分:画面的显示
这部分其实就比较简单的,说白了就是api的堆砌。
主要了解下windows的消息机制,以及怎么画图
主要是分别封装了下对棋盘,棋子,以及当前轮到谁,当前比分是多少,就是游戏画面上不同的部分的绘制。
void DrawReversiBoard();
void DrawReversiPieces(EnumReversiPiecesType...
今天是第二部分:玩家和AI
玩家主要是实现悔棋的功能
AI主要是搜索、最大最小算法,枝剪算法
1、每一步落子的步骤,为了可以悔棋
typedef struct ReversiStep
{
ReversiBitBoard m_LastMap;
ReversiStep& operator= (const ReversiStep& temp)
{
...
昨天是七夕,祝大家都过的快乐,希望这句迟到的问候不会造成大家心中的困扰。这一节讲到了前端比较重要的模块,性能以及调试异常模块。一个应用的性能往往是最核心的部分,就像人身体的各个器官一样,一小部分也不能马虎,否则你得到的只是你想象不到的苦果。在这里,我们封装了性能采集,调试输出、变量打印,以及异常收集...
分类:
其他好文 时间:
2014-08-03 17:42:45
阅读次数:
320
无论在何处在什么地方,我们都或多或少的接触到数学知识。特别是在客户端中,从打开界面的那一刻起就有太多与数学扯上的关联,如打开窗口的大小,窗口的位置,窗口里面的元件对象,以及UI的坐标等等。而在进入游戏之后,不仅有这些坐标,还有了世界的坐标,以及场景坐标,还有粒子对象的各种属性值。但为什么要扩展ogr...
分类:
其他好文 时间:
2014-08-01 12:59:41
阅读次数:
374
今天以黑白棋为例,开始给一个win32的小游戏设计,
这里打算分3部分介绍
1、棋盘,棋局的现实
2、玩家、AI的现实(且听下回分解)
3、游戏画面的现实(且听下下回分解)
其中第一部分为黑白棋游戏的主要逻辑:
1、棋盘,以及棋盘上的棋子的存储形式。这里用到了位图。
2、是否可以落子的判断(黑白棋是只有你落子的位置,在横竖斜八个方向中任意一个方向,能吃掉对方的子,你才可以落在...
重写有些核心接口的时候,其实遇到了许多的问题,甚至一度的想过要放弃,但是最终还是坚持了下来。在客户端提供的这些接口中,可以清晰的看到客户端所依赖的各种模块的支持,以及各自之间的一些关联。下面只是介绍了vengine(微引擎)接口的基础模块框架,所谓的接口即对象设计中常见的Interface,为一个框...
分类:
其他好文 时间:
2014-07-28 23:37:14
阅读次数:
262
客户端设计
1、如何绘制?
分上下两层,下层为最终图片,上层尺寸和下层一致,并将上层分割为 m 行 n 列的方格。
2、方格位置如何设定?
m 行 n 列的方格,设定左上角坐标为(0,0),那么最右下角坐标为( (m-1) , (n-1) )。
3、如何定义方格对象,及方格拥有什么方法和属性?
方格Pane有4个属性:
location...
分类:
其他好文 时间:
2014-07-26 15:25:22
阅读次数:
227