- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我的骰子游戏有问题。我有一个任务:
游戏规则如下:1. 玩家掷骰子,将面值相加。2. 如果第一次掷出 7 或 11,玩家获胜。3. 如果第一次掷出 2、3 或 12,则玩家输。4. 如果第一次掷出的是任何其他数字,则该总和成为玩家的点数。5. 要获胜,玩家必须继续掷骰子直到他/她“成功”。6. 玩家在该点前掷出 7 失败。
1) 在您的程序中将 WON 和 LOST 定义为宏。使用值 0 表示赢,1 表示输2) 实现一个函数,函数原型(prototype)为int rollDice( void );
rollDice( ) 应该使用 rand( ) 随机生成 1 - 6 之间的数字
返回 rand( ) 生成的数字
3) 实现一个函数,函数原型(prototype)为int playGame( void );
当玩家准备好游戏时,他会使用 ENTER 键来掷骰子
如果用户在他/她的第一次掷骰中获胜,祝贺玩家并返回 WON
如果用户在他/她的第一次掷骰中输了,祝贺玩家并以 LOSE 返回
让用户继续玩直到他赢/输,给予适当的按摩并以最后的掷骰值结束游戏。
4) 你的 main( ) 应该调用你的函数 playGame( )
询问用户是否想继续玩另一场游戏,记录输赢次数
当用户决定结束游戏时,显示他的输赢次数。
根据用户的输赢次数向用户发送适当的消息
返回值 EXIT_SUCCESS
这是我现在拥有的,但它告诉我有错误。谁能帮我完成这个任务?
#include <stdio.h>
#include <ctype.h>
#include <time.h>
#include <stdlib.h>
#define WON 0
#define LOSE 1
int rollDice(void);
int playGame(void);
int rollDice(void) {
return ((rand() % 6) + 1);
}
int playGame(void){
int dice_1 = 0;
int dice_2 = 0;
int sum = 0;
time_t t;
srand(time(&t));
printf("ROLL THE DICE WITH [ENTER]\n");
dice_1 = rollDice();
dice_2 = rollDice();
sum = dice_1 + dice_2;
if (sum == 7 || sum == 11){
printf("Congratulations you roll %d and WON at your first try!", sum);
}
else {
printf("Your roll was %d ,you lose try agian.\n", sum);
}
return 0;
}
int main (void){
playGame();
}
错误是(在 gcc linux 中):
x.c:9:1: 错误:程序中有杂散的‘\302’
int rollDice(void);
^
x.c:9:1: 错误:程序中有杂散的‘\240’
x.c:10:1: 错误:程序中有杂散的‘\302’
int playGame(void);
^
x.c:10:1: 错误:程序中有杂散的‘\240’
x.c:12:1: 错误:程序中出现‘\302’
int rollDice(void) {
^
x.c:12:1: 错误:程序中有杂散的‘\240’
x.c:16:1: 错误:程序中有杂散的‘\302’
int playGame(无效){
^
x.c:16:1: 错误:程序中有杂散的‘\240’
最佳答案
这里有一些问题。
playGame()
的返回值。您应该存储结果并对其采取行动。我在下面为您提供了完整的代码 list 。
代码 list
/*******************************************************************************
* Preprocessor directives
******************************************************************************/
#include <stdio.h>
#include <ctype.h>
#include <time.h>
#include <stdlib.h>
#include <stdbool.h>
#define WON 0
#define LOSE 1
/*******************************************************************************
* Function prototypes
******************************************************************************/
int rollDice(void);
int playGame(void);
/*******************************************************************************
* Function definitions
******************************************************************************/
/*----------------------------------------------------------------------------*/
int rollDice(void) {
return ((rand() % 6) + 1);
}
/*----------------------------------------------------------------------------*/
int playGame(void){
int dice_1 = 0;
int dice_2 = 0;
int sum = 0;
int result;
int point = 0;
time_t t;
bool playForPoint = false;
srand(time(&t)); // Initialize random seed
printf("ROLL THE DICE WITH [ENTER]\n");
fgetc(stdin);
dice_1 = rollDice();
dice_2 = rollDice();
sum = dice_1 + dice_2;
printf("D1:%2d - D2:%2d - Sum:%2d\n", dice_1, dice_2, sum);
switch ( sum )
{
case 7:
case 11:
result = WON;
break;
case 2:
case 3:
case 12:
result = LOSE;
break;
default:
playForPoint = true;
point = sum;
printf("Playing for point:%d. Please hit enter.\n", point);
fgetc(stdin);
break;
}
while ( playForPoint )
{
dice_1 = rollDice();
dice_2 = rollDice();
sum = dice_1 + dice_2;
printf("D1:%2d - D2:%2d - Sum:%2d\n", dice_1, dice_2, sum);
if ( sum == 7 ) {
playForPoint = false;
result = LOSE;
} else if ( sum == point ) {
playForPoint = false;
result = WON;
} else {
printf("Please roll the dice again with [ENTER].\n");
fgetc(stdin);
}
}
return result;
}
/*----------------------------------------------------------------------------*/
int main (void){
int result = playGame();
switch ( result )
{
case WON:
printf("You won the game.\n");
break;
case LOSE:
printf("You lost the game.\n");
break;
default:
printf("Something went wrong in the program.\n");
break;
}
return 0;
}
示例输出
ROLL THE DICE WITH [ENTER]
D1: 3 - D2: 5 - Sum: 8
Playing for point:8. Please hit enter.
D1: 3 - D2: 1 - Sum: 4
Please roll the dice again with [ENTER].
D1: 3 - D2: 2 - Sum: 5
Please roll the dice again with [ENTER].
D1: 1 - D2: 5 - Sum: 6
Please roll the dice again with [ENTER].
D1: 3 - D2: 2 - Sum: 5
Please roll the dice again with [ENTER].
D1: 2 - D2: 6 - Sum: 8
You won the game.
关于C程序骰子游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32789517/
我刚刚向自己介绍了 WebGL 和 Threejs,作为开始,我正在尝试创建一个 3D 骰子。我已经到了创建立方体的地步,但我真的不知道如何在立方体的面上放置数字,我能找到的只是如何更改颜色。我已经查
这就是我现在得到的...... var max = 7; var min = 1; $('#dice').click(function() { random = Math.floor(Math.r
我是 Unity 的新手,一直在尝试掷骰子。我遇到了一组教程,它们允许我创建一个 3d 模具(模具使用 Rigidbody 和 Mesh Collider)并编写脚本使其在空格键上滚动,如下所示: 骰
我是 JavaScript 新手,我需要一些想法/帮助来了解如何使我的脚本正常工作。所以我们的想法是,你掷两个骰子,通过按下“掷骰子”按钮然后按下重置按钮来重置整个 HTML 中的所有内容。 所以事情
我正在尝试构建一个掷骰子游戏,如果计算机自动掷出一对骰子,并且如果 cpu 掷出 7 或 11,则用户获胜。然而,如果用户掷出 2、3 或 12,他们将自动失败。如果用户滚动任何其他数字(4、5、6、
背景 如此处所述http://www.ericharshbarger.org/dice/#gofirst_4d12 , “先走”骰子是一组四个骰子,每个都有唯一的编号,因此: 任何两个或更多骰子都不会
我是一名优秀的程序员,十分优秀!