`

用C写的模拟掷骰子程序

 
阅读更多

整理自:《C Primer Plus》第五版

 

此程序包含三个文件:

  diceroll.cpp :包含两个函数 rollem(int)和roll_n_dice(int,int)

  diceroll.h :头文件

  manydice.cpp :主函数所在文件

 

diceroll.cpp文件:

 

//掷骰子的模拟程序
#include "diceroll.h"
#include<stdio.h>
#include<stdlib.h>  //为rand()函数提供类库

int roll_count = 0; //外部链接

//掷骰子
static int rollem(int sides)  //这个文件的私有函数
{
	int roll;

	roll = rand() % sides + 1;
	++roll_count;
	return roll;
}

int roll_n_dice(int dice,int sides)
{
	int d;
	int total = 0;
	int temp;
	if(sides < 2)   //边数少于2条
	{
		printf("Need at least 2 sides.\n");
		return -2;
	}
   if(dice < 1)  //骰子数少于一个
	{
		printf("Need at least 1 dice.\n");
		return -1;
	}
   printf("\n产生的骰子数:\n");
  for(d = 0; d < dice;d++)
  {
	  temp = rollem(sides);
	  total +=temp;
	  printf("  %d",temp);
  }
  putchar('\n');
  return total;

	
}

 

diceroll.h文件:

 

//diceroll.h
extern int roll_count;   //掷骰子数
int roll_n_dice(int dice,int sides);
 

manydice.c文件

 

 

//manydice.cpp -- 多次掷骰子的模拟程序
//与diceroll.cpp一起编译

#include<stdio.h>
#include<stdlib.h>   //为srand()函数提供原型
#include<time.h>    //为time()函数提供原型
#include "diceroll.h"  //为roll_n_dice()和roll_count 提供原型

int main(void)
{
	int dice,roll;
	int sides;     //骰子的边数

	srand((unsigned int)time(0));  //随机化种子
	printf("Enter the number of sides per dice,0 to stop.\n");
	while((scanf("%d",&sides) == 1) && sides > 0)   
	{
		printf("how many dice?\n");
		scanf("%d",&dice);    //骰子数
		roll = roll_n_dice(dice,sides);   //得到的总数
		printf("you have rolled a %d using %d %d-sided dice.\n",roll,dice,sides);
		printf("How many sides? enter 0 to stop.\n");
	}
   printf("the rollem() function was called %d times.\n",roll_count);
   printf("GOOD FUTUNE TO YOU !\n");
}
0
1
分享到:
评论

相关推荐

    模拟掷骰子的一个小程序.exe

    掷骰子小程序,利用C语言随机数生成函数,产生的随机数,模拟掷骰子随机出现的1-6数字,直接可以运行的小程序。

    骰子游戏模拟(同时置两个骰子)

    算法说明 1、初始投掷:如果总是点数:2、3、12,则庄家赢 如果总点数是:7、12,...2、初始投掷的总点数作为目标值,玩家继续掷两个骰子, 直到总点数匹配目标,或者总点数是7. 如果总点数是7,则庄家赢;否则玩家赢.

    Linux多线程编程技术在掷骰子游戏模拟程序中的应用

    通过伪随机数模拟掷骰子的点数,设计并实现了一个基于多线程方式模拟4人掷骰子游戏程序,并对1 000次游戏中每个游戏者获胜的次数进行统计。可以看出,在多次游戏中,每个游戏者获胜的概率符合概率分布规律。程序运行...

    C/C++实现投骰子游戏

    我们将要模拟一个非常流行的游戏——掷骰子。 骰子的形式多种多样, 最普遍的是使用两个6面骰子。在一些冒险游戏中,会使用5种骰子:4面、6 面、8面、12面和20面。聪明的古希腊人证明了只有5种正多面体,它们的所 有...

    C语言程序—扑克牌翻牌游戏

    假设有2个骰子,一个表示花色,一个表示牌点,模拟随机掷骰子,把骰子对应的牌翻过去,然后再掷骰子,再翻牌,.....如此100次。最后,输出还是正面向上的那些纸牌。 功能要求: 1) 能表示纸牌的花色和点数; 2) 能...

    dice_zone:Mike的作品(DiceZone一个让所有人都可以玩的骰子游戏,让我们滚动一下)

    DiceZone是一个掷骰子模拟器应用程序,它确实使您进入了区域。 获得从命令行内掷骰子的能力。 用法 roll命令会将骰子掷到虚表上。 reset命令用于将所有骰子设置为其初始值,以便在您玩的游戏中重新使用。 您知道...

    c语言实战105例源码

    92 掷骰子游戏  93 弹力球  94 俄罗斯方块  95 24点扑克牌游戏  96 贪吃蛇  97 潜水艇大战  98 机器人大战  99 图形模式下的搬运工  100 十全十美游戏  101 强大的通信录  102 ...

    C语言实战105例源码

    实例92 掷骰子游戏 250 实例93 弹力球 252 实例94 俄罗斯方块 253 实例95 24点扑克牌游戏 257 实例96 贪吃蛇 260 实例97 潜水艇大战 262 实例98 机器人大战 265 实例99 图形模式下的搬运工 ...

    《C语言实战105例》

    实例92 掷骰子游戏 250 实例93 弹力球 252 实例94 俄罗斯方块 253 实例95 24点扑克牌游戏 257 实例96 贪吃蛇 260 实例97 潜水艇大战 262 实例98 机器人大战 265 实例99 图形模式下的搬运工 266 实例...

    C语言实战105例 含105个源代码

    实例92 掷骰子游戏 250 实例93 弹力球 252 实例94 俄罗斯方块 253 实例95 24点扑克牌游戏 257 实例96 贪吃蛇 260 实例97 潜水艇大战 262 实例98 机器人大战 265 实例99 图形模式下的搬运工 266 实例...

    C语言实战105例源码.rar

    实例92 掷骰子游戏 250 实例93 弹力球 252 实例94 俄罗斯方块 253 实例95 24点扑克牌游戏 257 实例96 贪吃蛇 260 实例97 潜水艇大战 262 实例98 机器人大战 265 实例99 图形模式下的搬运工 266 实例...

    MATLAB数据字典生成代码-Fundamentals_2020:任务2020

    MATLAB数据字典生成代码数据分析基础 ...2020年11月2日:编写一个名为dicerolls的Python函数,该函数模拟掷骰子。 您的函数应采用两个参数:骰子k的数量和掷骰子n的次数。 该函数应模拟n次随机滚动k个

    java源码包2

    java模拟掷骰子2个 1个目标文件,输出演示。 java凭图游戏 一个目标文件,简单。 java求一个整数的因子 如题。 Java生成密钥的实例 1个目标文件 摘要:Java源码,算法相关,密钥  Java生成密钥、保存密钥的...

    java源码包---java 源码 大量 实例

    java模拟掷骰子2个 1个目标文件,输出演示。 java凭图游戏 一个目标文件,简单。 java求一个整数的因子 如题。 Java生成密钥的实例 1个目标文件 摘要:Java源码,算法相关,密钥  Java生成密钥、保存密钥的实例源码...

    java源码包3

    java模拟掷骰子2个 1个目标文件,输出演示。 java凭图游戏 一个目标文件,简单。 java求一个整数的因子 如题。 Java生成密钥的实例 1个目标文件 摘要:Java源码,算法相关,密钥  Java生成密钥、保存密钥的...

    java源码包4

    java模拟掷骰子2个 1个目标文件,输出演示。 java凭图游戏 一个目标文件,简单。 java求一个整数的因子 如题。 Java生成密钥的实例 1个目标文件 摘要:Java源码,算法相关,密钥  Java生成密钥、保存密钥的...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    java模拟掷骰子2个 1个目标文件,输出演示。 java凭图游戏 一个目标文件,简单。 java求一个整数的因子 如题。 Java生成密钥的实例 1个目标文件 摘要:Java源码,算法相关,密钥 Java生成密钥、保存密钥的实例源码,...

Global site tag (gtag.js) - Google Analytics