目录

猜硬币游戏设计

目录

猜硬币游戏设计

                                               猜硬币游戏设计
//最简单游戏的设计
//通过模块化的第一步进行(自顶向下分解)
/*第一步顶层分解
*从主程序开始考虑。程序要做什么?程序要做两件事:显示指南;模拟玩游戏的过程。
*逐步细化的原则指出:一旦有了某个程序的概要描述,你应该在此结束,并把它写下来。
*因此,可以写出主程序的伪代码表示如下
	main()
 { 
     显示游戏指南;
	 玩游戏;
 }
 主程序的两个步骤是相互独立的,没有什么联系,因此可设计成两个函数:
 void prn_instruction()
 void display()
有了第一步就可以写出主程序函数了
第二步是功能函数的实现
这个程序只有三个函数
两个是程序函数(一个是程序提示函数,另一个是玩游戏函数)
一个是用户函数(用来接收玩家输人的信息)
这个游戏功能比较简单,所以写下来的程序也比较简单,容易实现
*/
代码清单如下:

#include<iostream>
#include<cstdlib> //随机函数库
#include<ctime> //需要用到系统时间?
using namespace std;

void prn_instrustion() //显示游戏指南
{
cout<< "这是一个猜硬币正反面的游戏。\n";
cout<< "我会扔一个硬币,你来猜 \n";
cout<< "如果猜对了,你赢,否则我赢 \n";
}

//玩家输入选择
int get_call_from_user()
{
int guess; //0=head, 1=tail
do
{
cout<<"\n 输入你的选择(0 表示正面,1 表示反面):;
cin>>guess;
} while(guess!=0 && guess!=1);
return guess;
}
void play()
{
int coin;
char flag='Y';

    srand(time(NULL));		//生成随机种子
    while(flag=='Y'||flag=='y')
    {
    	coin=rand()*2/(RAND_MAX+1);
    	if(get_call_from_user()==coin)
    		 cout<<"你赢了";
    	else cout<<"我赢了";
    	cout<<"\n继续玩吗e(Y或y)?";
    		cin>>flag;
    }

}

//猜硬币正反面主程序
int main()
{
prn_instrustion();
play();

    return 0;

}

调试结果:

http://hi.csdn.net/attachment/201201/8/0_1325995377TWn9.gif