猜硬币游戏设计

                                               猜硬币游戏设计
//最简单游戏的设计
//通过模块化的第一步进行(自顶向下分解)
/*第一步顶层分解
*从主程序开始考虑。程序要做什么?程序要做两件事:显示指南;模拟玩游戏的过程。
*逐步细化的原则指出:一旦有了某个程序的概要描述,你应该在此结束,并把它写下来。
*因此,可以写出主程序的伪代码表示如下
	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;
}

调试结果:


posted on 2012-01-08 11:58  1.曲待续  阅读(277)  评论(0编辑  收藏  举报

导航