`

用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数字,直接可以运行的小程序。

    c语言掷骰子求各点出现的次数

    本题通过模拟掷骰子的过程,不仅可以让学习者熟悉C语言的基本语法,还能深入了解随机数生成以及数组的应用等关键概念。通过这样的实践练习,可以帮助初学者更好地掌握编程技巧,并提高解决问题的能力。 ### 二、...

    C语言实战游戏 掷骰子

    在C语言的世界里,开发一款实战游戏,如“掷骰子”,可以让我们深入理解基本的编程概念、随机数生成以及用户交互。这篇文章将详细介绍如何利用C语言实现掷骰子游戏,涉及的知识点包括: 1. **基本语法**:C语言的...

    掷骰子游戏-c语言程序课程设计.docx

    游戏程序需要能够接受用户的输入,并根据用户的输入来生成随机数,模拟掷骰子的过程。 2.1.2 输入数据类型、格式和内容限制 在本课程设计中,学生需要考虑程序的输入数据类型、格式和内容限制。例如,程序需要能够...

    掷骰子游戏

    为了模拟掷骰子,通常我们会将这个范围缩小到1到6,这可以通过`%`运算符实现。例如,`rand() % 6 + 1`将返回1到6之间的随机数,模拟骰子的点数。 游戏的基本结构可以分为以下几个部分: 1. **初始化**:游戏开始前...

    VB掷骰子游戏.rar

    在这个“VB掷骰子游戏”项目中,我们看到的是如何利用VB来实现一个基本的随机数生成器,模拟真实的掷骰子过程。在这个过程中,VB的随机数生成功能扮演了核心角色。 在VB中,我们可以使用`Rnd`函数来生成0到1之间的...

    VB随机数示例-掷骰子游戏.7z

    为了保证每次掷骰子的结果不同,我们需要在开始游戏前用当前时间初始化`Rnd`函数,如: ```vb Randomize Timer ``` 现在,我们有了随机数生成的基础,可以开始构建掷骰子的游戏逻辑。在VB中,可以创建一个窗体,...

    ios源码一个掷骰子游戏.rar

    4. **Game Logic**:游戏的核心部分通常涉及算法来模拟掷骰子的结果。这可能使用了`arc4random_uniform()`函数来生成0到6之间的随机整数,代表骰子的点数。为了增加游戏趣味性,可能还包含了多次掷骰子的循环,以及...

    C 代码 模拟 N 次掷 2 个骰子,制作结果的直方图.rar

    在模拟掷骰子的过程中,我们通常会用到随机数生成。在C语言中,这可以通过`&lt;stdlib.h&gt;`库中的`rand()`函数实现。`rand()`返回一个介于0和`RAND_MAX`之间的伪随机数。为了得到1到6之间的随机数,我们可以使用模运算 `...

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

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

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

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

    Java实验报告-扔骰子.docx

    本实验报告的主要设计目标是创建一个用于模拟掷骰子游戏的应用程序。该游戏的设计思路是:游戏者滚动 3 个骰子,每个骰子有 6 个面,分别代表 1,2,3,4,5,6 六个点。当骰子停下后,计算这 3 个骰子上表面的点数...

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

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

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

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

    投掷骰子(色子)游戏

    该程序的目标是模拟一个简单的骰子游戏,用户可以输入自己想要投掷骰子的次数,并通过随机数生成器模拟每次投掷的结果。最后,程序会统计每位玩家的总分并按照分数进行排序,以便展示最终的成绩排名。 ### 二、主要...

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

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

    Dice-Rolls-using-Ncurses:使用 Ncurses 进行掷骰子模拟

    《使用Ncurses进行掷骰子模拟:深入理解C语言中的Dice-Rolls》 Ncurses库是一个在终端上创建用户界面的强大工具,尤其适用于文本模式的应用程序。在这个项目"Dice-Rolls-using-Ncurses"中,我们探索了如何利用...

    c语言实战105例源码

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

    Diceshaker:一个掷骰子游戏iphone源代码

    该应用的核心功能——模拟掷骰子,是通过Objective-C或Swift语言实现的。Objective-C是苹果早期的开发语言,而Swift是相对较新的语言,两者都被广泛用于iOS开发。在这个项目中,我们可能会看到如何使用这些语言来...

Global site tag (gtag.js) - Google Analytics