
printf("player rolled %d + %d = %d\n", die1, die2, sum) return sum
}int main(){int sum, myPoint
GameStatus status
unsigned seed //int rollDice()
scanf_s("%d", &seed)//输入随机数种子
srand(seed)/悔行/将种子传递给rand()
sum = rollDice()//第一轮投色子、计算和数
switch (sum){case 7:case 11:
status = WIN break//和为7或11则为胜
case 2:case 3:case 12:
status = LOSE break default://其他情况尚无结果,状态为腔前悔PLAYING
status = PLAYING
myPoint = sum
printf("point is %d\n", myPoint) break
}while (status == PLAYING){sum = rollDice() if (sum == myPoint){
status = WIN
}else if (sum == 7){
status = LOSE
}
}//当状态不为PLAYING时循环结束,输出游戏结果
if (status == WIN){
printf("win!\n")
}else{
printf("lose!\n")
}
system("pause") return 0
}
具体 *** 作步骤:1)在VC++中建立一个工程;
2)在程序开始的注释行禅纤旁中写上你自己的信息;
3)生成1-6之间的一个随机数,为了使随机数更随机,可以使用随机数初始化函数srand()
模拟掷骰子的程序段参考如下:
printf("\n请掷骰子(按Enter键)")
getchar()
srand((unsigned)time(NULL))
num1=rand()%6+1
printf("\n您掷的骰子点数是%d\n",num1)
为了使上面一段程序能够正常编译连接,在程序开始应该包含下面的头文件:
#include"stdlib.h"
#include"time.h"
4)在程序编译正确后,要求在程序运行时提示您按ENTER键(模拟掷骰子).
在你按ENTER键后,生竖枯成第一个随机数,并进行显示;
之后提示你第二次掷骰子(按ENTER键),在你按ENTER键后,生成第二个随机数,并进行显示。
可以利用getchar()函数等待按下ENTER。注意在需要时使用函数fflush(stdin)清除键盘缓冲贺橡区。
5)使用ifelse转移控制语句判断两次生成的随机数的大小,分别根据不同情况输出下面的语句之一:
"\nPlayer1的点数大,Player1胜出!\n"
"\nPlayer2的点数大,Player2胜出!\n"
"\nPlayer1和Player2点数一样大,平局!\n"
public class Test{public static void main(String args []){
int i1=0,i2=0,i3=0,i4=0,i5=0,i6=0
for(int q=0q<5000q++){
int w=1+(int)(Math.random()*6)
if(w==1){
i1++
}else if(w==2){
i2++
}else if(w==3){
i3++
}else if(w==4){
i4++
}else if(w==5){
i5++
}else{
i6++
}
}
System.out.println("出现一点档胡拦的次数是:"+i1)
System.out.println("出现二点的次数是:"+i2)
System.out.println("出现三点的次数是:"+i3)
System.out.println("出现四点的次数是:"+i4)
System.out.println("出现五做或点的次数是:"+i5)
System.out.println("出现行胡六点的次数是:"+i6)
}
}结果
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)