找回密码
 入驻
搜索
查看: 396974|回复: 2

[09-24] C++模拟色盅游戏

[复制链接]
发表于 2006-9-24 22:37:58 | 显示全部楼层 |阅读模式
今晚,¥兄请吃饭,朋友们教会了我玩色盅,觉得挺有意思的,并且用随机函数实现起来非常方便
#include <iostream.h>
#include <stdlib.h>
#define size 6
class sezhong  //色盅类
{
private:
int a[size];  
int b[size];
int n,m;
int value;
int count;
public:
sezhong()
{count=0;value=0;}
void seta(sezhong &s)  //初始化a玩家
{
  int j;
  for(int i=0;i<size-1;i++)
  {
   j=rand()%size;
   s.a[i]=j+1;
  }
}
void setb(sezhong &s)  //初始化b玩家
{
  int j;
  for(int i=0;i<size-1;i++)
  {
   j=rand()%size;
   s.b[i]=j+1;
  }
}
void open(int n,int m,char ch);  //开箱
void call();  //
bool jya();   //检验a
bool jyb();   //检验b
};
sezhong sz;
void sezhong::pen(int n,int m,char ch)
{
if(n<=sz.count && m<=sz.value)
  cout<<"错误!"<<endl;
else
{
  if(ch=='a')
  { if(sz.jya()==true)
   {cout<<"a玩家胜!";}
   else
   {cout<<"b玩家胜!";
   return;}
  }
  if(ch=='b')
  {
   if(sz.jyb()==true)
   {
    cout<<"b玩家胜!";}
   else
   {cout<<"a玩家胜!";
   return;}
  }
}
}
bool sezhong::jya()
{
for(int i=0;i<size-1;i++)
{
  if(sz.a[i]==sz.m || sz.a[i]==1)
   sz.count++;
}
if(sz.count >= n)
  return true;
else
  return false;
}
bool sezhong::jyb()
{
for(int i=0;i<size-1;i++)
{
  if(sz.b[i]==sz.m || sz.b[i]==1)
   sz.count++;
}
if(sz.count >= n)
  return true;
else
  return false;
}
void sezhong::call()
{
cin>>sz.n>>sz.m;
}
void main()
{
cout<<"a玩家请输入要报的数量和大小:";
sz.call();
int i;
cout<<"b玩家请作选择:[1 开,2 继续报]";
cin>>i;
if(i==1)
{
  sz.open(sz.n,sz.m,'b');}
if(i==2)
{
  sz.call();
  cout<<"a玩家请作选择:[1 开,2 继续报]";
  cin>>i;
  if(i==1)
  {sz.open(sz.n,sz.m,'a');}
  if(i==2)
  {
   sz.call();
  }
}
}
这个程序不是很好,得想个办法实现无限次报数,本来想用GOTO:(

[[i] 本帖最后由 zkkpkk 于 2006-9-25 08:46 编辑 [/i]]
发表于 2006-9-24 23:11:06 | 显示全部楼层
:handshake 有空偶也试试``
回复

使用道具 举报

 楼主| 发表于 2006-9-25 20:13:52 | 显示全部楼层
我和他们玩这个总是输,要不是老师找我我恐怕又要酒精过敏了:L
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 入驻

本版积分规则

QQ|Archiver|手机版|小黑屋|思明论坛

GMT+8, 2024-11-24 07:07 , Processed in 0.032234 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表