| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1087 人关注过本帖
标题:猜拳游戏求教
只看楼主 加入收藏
心动音符
Rank: 1
等 级:禁止访问
威 望:1
帖 子:832
专家分:0
注 册:2005-9-15
收藏
 问题点数:0 回复次数:3 
猜拳游戏求教
#include <iostream>
#include <ctime>
#include <stdlib.h>
using namespace std;
void CQ()
{int i,j;
srand(unsigned(time(0)));
cout<<"输入的数值为1,2,3否则后果自负"<<endl;
cout<<"1-石头 2-剪刀 3-布"<<endl<<"你与对方大喊到:";
cin>>i;
if(i<=3&&i!=0)
{//你出拳
if(i==1)cout<<"石头!"<<endl;
if(i==2)cout<<"剪刀!"<<endl;
if(i==3)cout<<"布!"<<endl;
//它出拳
j=(rand()%3+1);
if(j==1)cout<<"石头!"<<endl;
if(j==2)cout<<"剪刀!"<<endl;
if(j==3)cout<<"布!"<<endl;
//比大小
if(j==i)
{cout<<"你俩不相上下啊!"<<endl;}
if(j==1&&i==2)
{cout<<"你说到:佩服!佩服!还是你高!"<<endl;}
if(i==1&&j==2)
{cout<<"它说到:它NND该死的剪刀!"<<endl;}
if(j==2&&i==3)
{cout<<"你说到佩服!佩服!还是你高!"<<endl;}
if(j==3&&i==2)
{cout<<"它说到:它NND该死的布!"<<endl;}
if(j==1&&i==3)
{cout<<"它说到:它NND该死的石头!"<<endl;}
if(j==3&&i==1)
{cout<<"你说到:佩服!佩服!还是你高!"<<endl;}
}
else
{cout<<"它说道:哎! 就 就 就你不按套路出牌!"<<endl;exit(0);}
}
int main()
{int i,k=0,p=0,q=0;
cout<<"你要来多少局"<<endl;
cin>>i;
while(i!=0)
{CQ();i--;}
return 0;
}
我还想实现 平局 胜利 失败的统计数和当我输入数值不是1,2,3时能够重新输入。
搜索更多相关主题的帖子: 猜拳 游戏 
2006-09-18 17:22
ligt0610
Rank: 1
等 级:新手上路
帖 子:204
专家分:5
注 册:2006-6-29
收藏
得分:0 
挺有意思的闹

通过不断的学习与思考才是提高自己能力的最好途径。。。。。。。
2006-09-18 21:34
comebaby
Rank: 1
等 级:新手上路
帖 子:85
专家分:0
注 册:2006-6-17
收藏
得分:0 

小游戏的总结构自己想好 在写出个大概的总程序 多想多改----完美程序
出错的小地方想得实在不明白或者...... 才可以问别人么

你已经画出了轮廓,在帮它补妆,就OK了`

 你写出了该游戏的核心部分,加油噢~~

2006-09-19 06:48
woodhead
Rank: 3Rank: 3
等 级:新手上路
威 望:9
帖 子:1124
专家分:0
注 册:2005-7-18
收藏
得分:0 
我写的一个
[CODE]#include <iostream>
#include <ctime>
using namespace std;

class Random
{
private:
Random() { srand(time(0)); }
Random(const Random &ri) { }
void operator=(Random &ri) { }
public:
static Random& get() { static Random r; return r; }
int random() { return rand(); }
};

const string& RPS(int rps)
{
const static string rps_str[3] = {"Rock", "Scissors", "Paper"};
switch(rps)
{
case 1: return rps_str[0];
case 2: return rps_str[1];
case 3: return rps_str[2];
default:
cout<<"RPS error"<<endl;
}
}

class PK
{
public:
void run(int n)
{
cout<<"input 1-Rock 2-Scissors 3-Paper"<<endl;
win = loss = draw = 0;
int total = n;
while(n-- != 0)
{
your_act();
computer_act();
judge();
}
cout<<"\nresult\ntotal : "<<total<<"\nyou win : "<<win
<<"\nyou loss : "<<loss<<"\ndraw : "<<draw<<endl;
}

private:
void your_act()
{
cout<<"\nyour turn\n";
char in;
cin>>in;
while(in<'1' || in>'3')
{
cout<<"illegality!over again\n";
cin>>in;
}
switch(in)
{
case '1': you = 1; cout<<"you "<<RPS(1)<<endl;break;
case '2': you = 2; cout<<"you "<<RPS(2)<<endl;break;
case '3': you = 3; cout<<"you "<<RPS(3)<<endl;break;
}
}

void computer_act()
{
computer = (Random::get().random()%3 + 1);
}

void judge()
{
if(you == computer)
{
draw++;
cout<<"computer "<<RPS(computer)<<"\ndraw"<<endl;
}
else if(you - computer == 1 || you - computer == -2)
{
loss++;
cout<<"computer "<<RPS(computer)<<"\nyou loss"<<endl;
}
else
{
win++;
cout<<"computer "<<RPS(computer)<<"\nyou win"<<endl;
}
}

int you, computer;
int win, loss, draw;

};

int main()
{
int n;
cout<<"how many ?"<<endl;
cin>>n;
PK pk;
pk.run(n);
return 0;
}[/CODE]

2006-09-19 13:04
快速回复:猜拳游戏求教
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019071 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved