标题:[原创]21小程序的评价以及其中更理想随即函数的请教
只看楼主
heliujin
Rank: 2
等 级:论坛游民
帖 子:249
专家分:14
注 册:2006-3-14
结帖率:100%
 问题点数:0 回复次数:10 
[原创]21小程序的评价以及其中更理想随即函数的请教

程序如下:
#include<iostream.h>

#include<stdio.h>

#include<assert.h>

#include<conio.h>

#include<stdlib.h>

class wanjia
{
public:
wanjia()//默认构造函数
{
a=new int[21];
for(int j=0;j<21;j++)
{
a[j]=0;
}
s=0;
w=0;
}

~wanjia()//析构函数
{
delete []a;
}

void fuzhi()
{
if(w==0)
{
a[w]=rand()%21+1;
}
else
{
a[w]=a[w-1]+rand()%21;
}
}

int wansum()
{
return a[w];
}

void jishu()//记录下注了多少把
{
w=w+1;
}

void show()//显示已经下的点
{
for(int i=0;i<=w;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
}

void showsum()//显示总共的点数
{
cout<<a[w]<<endl;
}

bool operator >(const wanjia &other)
{
if(s>other.s)
{
return true;
}
else
return false;
}

bool operator <(const wanjia &other)
{
if(s<other.s)
{
return true;
}
else
return false;
}

bool operator ==(const wanjia &other)
{
if(s==other.s)
{
return true;
}
else
return false;
}

private:
int *a;
int w;
int s;
};

void main(void)
{
while(1)
{

cout<<"是否开始21点游戏?"<<endl;

cout<<"y or n:"<<endl;

if(getche()=='y'||getche()=='Y')
{
cout<<"游戏开始"<<endl;
}
else
{
system("pause");
}

wanjia wanjia1;
wanjia computer;
while(1)
{
wanjia1.fuzhi();
computer.fuzhi();
cout<<"庄稼:";
computer.show();
cout<<"玩家:";
wanjia1.show();
cout<<"庄家的总点数为:";
computer.showsum();
cout<<"玩家的总点数为:";
wanjia1.showsum();
if((computer.wansum()!=21&&wanjia1.wansum()==21)||(computer.wansum()>21)&&(wanjia1.wansum()<=21))
{
cout<<"玩家赢!"<<endl;
cout<<"是否再玩一次?"<<endl;
if(getche()=='y'||getche()=='Y')
{
break;
}
else
{
exit(1);
}
}
else if((computer.wansum()==21&&wanjia1.wansum()!=21)||(computer.wansum()<=21&&wanjia1.wansum()>21))
{
cout<<"庄家赢!"<<endl;
cout<<"是否再玩一次?"<<endl;
if(getche()=='y'||getche()=='Y')
{
break;
}
else
{
exit(1);
}
}
else if(computer.wansum()<21&&wanjia1.wansum()<21)
{
cout<<"是否接着尝试?"<<endl;
if(getche()=='y'||getche()=='Y')
{
wanjia1.jishu();
computer.jishu();
continue;
}
else
{
break;
}
}
else
{
cout<<"游戏结束!"<<endl;
cout<<"是否再玩一次?"<<endl;
if(getche()=='y'||getche()=='Y')
{
break;
}
else
{
exit(1);
}

}
}
cout<<endl;
cout<<"是否确认再玩一次游戏?"<<endl;
if(getche()=='y'||getche()=='Y')
{
continue;
}
else
{
break;
}
}
}

改程序的随即函数每次运行的时候总是那几个数 请各位高手指教一下怎么用随即函数 好象用到<time.h>但是我不知道为什么
请指点指点小弟吧 另外给这个小程序一点评价 第一次做 希望能得到各位高手的指点和赐教了 谢谢大家了


搜索更多相关主题的帖子: 函数 include 评价 理想 
2006-08-04 08:50
heliujin
Rank: 2
等 级:论坛游民
帖 子:249
专家分:14
注 册:2006-3-14
得分:0 
怎么没人回呢?我知道我的程序是个小垃圾 但是请你们照顾我这个新手吧  随便问问这个随即函数应该怎么写 因为我没次运行都是那些数 谢谢大家指教了
2006-08-04 18:57
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
得分:0 
你应该安装一个MSDN,你就知道如何用随机数,另外你可以尽量把每个函数写得更段些(可以一个分成几个,思路也就更清楚些,可读性也更强),main函数中最好写的简明,一般不要在main函数中有过多的细节,细节应该都留给方法去完成。

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-08-04 21:21
heliujin
Rank: 2
等 级:论坛游民
帖 子:249
专家分:14
注 册:2006-3-14
得分:0 
我是个初学者 不怕你笑话 我前几天才知道有MSDN这个东西的 但是在下VC的时候为了图省事 我就没下 但我还不想重下VC 所以想求个下载MSDN的地址 那如果我打开了MSDN 那我搜索什么函数啊 里面好象全是英文的 我以后会把函数写得清晰和简短些的 真的 谢谢前辈们的指教了
2006-08-04 21:53
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
得分:0 
呵呵,用金山词霸啊,MSDN本身就不是VC安装程序里包含的,是另外的。也就是说,你必须找到MSDN的安装。(买个盘或者网上下也可以)。
里面搜索想要的东西的时候,就翻译成英语,跟着感觉拼函数名,呵呵。

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-08-04 22:10
corrupt
Rank: 2
等 级:新手上路
威 望:3
帖 子:535
专家分:0
注 册:2004-9-29
得分:0 
随即数种子 问题,可以 每次运行时 以 当前时间 做为种子
具体函数 我记不清楚了

2006-08-05 17:06
heliujin
Rank: 2
等 级:论坛游民
帖 子:249
专家分:14
注 册:2006-3-14
得分:0 

谢谢大家了 那我先把MSDN整出来再说吧

2006-08-06 19:34
云中雾
Rank: 1
等 级:新手上路
威 望:1
帖 子:168
专家分:3
注 册:2005-12-30
得分:0 
rand()函数在每次程序运行时都产生相同的数,而srand()就不 同,每次产生的数都不是一样的,把当前的时间作为参数.

白色的忧郁让我白色的思念从洁白到苍白,从苍白到空白,比空白更空白,变成深白的坦白!
2006-08-08 09:12
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
得分:0 

以前的帖有
LZ找找吧


嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-08-08 15:21
KDH8433
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-8-7
得分:0 

我的私人库里一个新定义的可以连续产生随机数函数
int rad(int upp,int low=0){
int r;
if(!(upp+low+1)) return 0;
srand( (unsigned)time( NULL ) );//初始化
r=rand()%(upp+low+1);//产生随机数
return r;
}


另,记得包含 <cstdlib> <cstdio> <ctime>文件


while(1) 无聊;
2006-08-09 22:46



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-82014-1-1.html




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

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