一个简单猜数字游戏的实现(二)

一个简单的猜数字游戏设计与实现(2)


前言:
敏捷编程的设计思想是:先让它跑起来,然后在其内添加功能;
在前一篇文章中简单实现了猜测判断和流程控制,但只能对一种Fabonacci数列进行猜测,掌握规律后未免单调,故希望游戏扩展如下功能:
有六种数列:Fibonacci,Lucas,Pell,Triangular,Square,Pentagonal;
每种数列的数字排列有不同的规律,随机出现其中的一种数列的前两个数字;
用户猜测第三个数字;

1.设计思想:
用六个vector分别存放6种数列的连续三个数字,用一个指针数组存储指向六个vector的指针,随机产生一个数组下标,从而可以随机的指向某一种数列,从而实现随机的对某一种数列进行预测;

数列种类:
const int seq_cnt=6;
数列种类定义成常量,方便以后的扩展;

数据结构:
六种数列:
vector Fibonacci;
vector Lucas;
vector Pell;
vector Triangular;
vector Square;
vector Pentagonal;

指针数组:
vector *seq_addrs[seq_cnt];

工作指针:
vector *pv;

随机索引下标的获取:
int seq_index=0;
srand(time(Null));
seq_index=rand()%seq_cnt;

2.实现
见上传的文件: 猜数字游戏(2).rar

3.总结:
在有关vector编程中,结合使用vector和vector指针数组,通过vector指针对某个特定的vector进行操作,是一个非常常见的编程技巧;

将各零散的不相关的数据整合到一个数组中,可以使用循环等结果对数据的顺序处理,vector类型通常将其指针整合到一个数组中,使用指针数组实现对若干个零散的vector的统一操作;

编程小技巧:
有关指针的初始化和使用:
初始化为0值;
使用时检测以防止对null指针进行提领操作
int *pi=0;
...
if(pi&&...)
  ...


 

转载于:https://www.cnblogs.com/liuhao2638/archive/2012/03/25/2416768.html

你可能感兴趣的:(一个简单猜数字游戏的实现(二))