|
发表于 2011-6-20 17:05:11
|
显示全部楼层
注释自己加吧- #include<cstdlib>
- #include<ctime>
- #include<iostream>
- #include<string>
- using namespace std;
- class RandomNum{
- public:
- RandomNum(int low=2,int high=12):lower(low),higher(high){
- srand(time(NULL));
- };
- int getNum()const{
- return rand()%(higher-lower+1)+lower;
- }
- private:
- int lower,higher;
- };
- class Game{
- typedef enum{WIN,LOSE,TIE} GameStatus;
- int first_number,cur_number;
- RandomNum MyRandom;
- public:
- void play(){
- GameStatus result = first();
- switch(result){
- case WIN: Win();break;
- case LOSE: Lose();break;
- case TIE: second();
- }
- }
- private:
- GameStatus first(){
- GetNumber();
- if(cur_number==7 || cur_number==11) return WIN;
- else if(cur_number==2 || cur_number==3 || cur_number==12)
- return LOSE;
- else{
- first_number = cur_number;
- return TIE;
- }
- }
- void echo()const{
- cout<<"你得到的点数是: "<<cur_number<<endl;
- }
- void again(){
- echo();
- cout<<"请继续摇骰子"<<endl;
- }
- void Win()const{
- echo();
- cout<<"你赢了!"<<endl;
- }
- void Lose()const{
- echo();
- cout<<"你输了!"<<endl;
- }
- void second(){
- do{
- again();
- GetNumber();
- }while(cur_number!=7&&cur_number!=first_number);
- if(cur_number==7) Lose();
- else Win();
- }
- void GetNumber(){
- cout<<"请按回车键摇骰子:";
- cin.get();
- cur_number = MyRandom.getNum();
- }
- };
- int main(){
- Game g;
- g.play();
- }
复制代码 |
|