当前位置:C++技术网 > 资讯 > 剖析business游戏(3)

剖析business游戏(3)

更新时间:2015-06-26 15:33:25浏览次数:1+次

剖析business游戏

(三)—— 对象逻辑

正如第一章说所的,现在看我们的对象有三个对象,它们的属性应该有

地点:ID、x、y(显示的坐标)、name、pic(显示的图片)、

外地商品需求系数(简化起见对外地统一需求,但是事实上你可以用链表做对不同地方需求表)、

本地商品需求系数(防止本地买卖可以赚钱)、

拥有商品ID——数组

商品:商品ID(无论是否有用,凡事对象都有个ID不是么?),price(原本价格,标准价格)、当前已变化价格—根据、买入价格(为方便卖出时对比价格)、出产地ID

人物: 商品数组、所在地方ID、picture图片、贷款、贷款增长系数(增长率)、精神、天数。。。(想增加玩法就去增加不同的数据)

 

我们先分析一下地点的结构应该怎么储存。

首先我们知道,地点是可以随意增加的,也就是我们可以在游戏初始化的时候读取数据,如果有3个就显示3个,如果有5个我们就显示5个。那么这样的动态输出应该是怎么样的呢?我们知道动态结构体可以是 链表、树、图。那么我们这里就采用了链表的方式:

就像这样,我们采取了双向链表的稍微进化版。可以让人物循环选择。当然也可以约定有多少个地方,然后采用数组的方式来读取(对于练手项目,可以这样子做,因为我们很少会升级这个游戏)。

这样我们就解决了地点读取的问题,那么地点的价格问题呢?我们希望每次进入地点,商品的价格都会有变化,但是变动不能太大超出原来的价格,而且我们希望,本地商品一旦卖出,不可能在本地卖出更高的价格。这个时候我们就要做几个算法(当然随便加减乘除的公式也是叫算法的)。例如:

针对本地商品:新价格 买入价格*0.8  

针对外地商品:买入价格 原本价格*外地商品需求系数

等等(这些自己做,使游戏具有可玩性即可)

那么我们就解决了本地商品的问题,我们利用双向循环链表,也解决了人物是如何到达地点的问题。

关于商品,我们就做个循环判断就可以获得当前的地点的商品,当然买入商品的时候就要注意的,在点击购买的时候。我们必须要判断是否拥有足够的钱,商品数量是否超出携带数量。如果超出了就作出提示。我的做法是每点一下A/D增加/减少 准备要买商品,我们就做一次判断,如果不符合条件,就不执行该动作。

 

无论在购买,或者卖出的时候都做有效性的检验。这样我们可以提高用户体验,而且可以保证合法性。当该动作合法的时候,我们就复制当前的商品数据到人物的“购物车”里面,也就是商品的数组。因为我们不希望,当移动到另外一个地点时,因为城市的系数而改变买入的数据,这些买入数据应该是固定的直到卖出清空为止。当然当我们进入一个新的城市以后,卖出价格是应该改变的,所以商品有三个属性:原价,买入价,当前卖出价。

这样我们分清楚这三个“对象”他们之前的工作配合了,当然代码是不会给出的,关系图,流程图也不会给出。如果你们想做,那么请自己动手画图。

游戏的逻辑在这里基本上已经说明白了,这个游戏看起来很简单,当然实现起来也是很简单的。作为练手也是足够了,因为它已经涵盖了游戏循环,窗口的弹出实现,数据结构的建立,链表的实现,合法性判断之类的。

对于玩家来说,可玩性才是重要的。所以用户体验千万要做好,即使那些东西技术含量不高。

对于程序员来说,游戏可玩性和程序的可维护性同样重要。程序的可读性,可维护性,可使你游戏在升级的时候要写的代码更少,更容易添加新功能。所以在写程序之前,请先理清程序的关系,结构,流程。

个人警句:我是设计者,而不仅仅是编码者。
by:郭顺铭 ooklasd