【发布时间】:2019-05-08 11:05:40
【问题描述】:
我有一个Dice poker 任务。我已经设法生成一个数组来保存滚动值的频率,但是我无法编写一个循环来确定手的值是多少。
希望就使用哪种循环组合来确定我拿着什么手得到一些建议。从那里,我应该能够将其转换为一个函数,并编写一个函数来将这只手与其他手进行比较。
#define _CRT_SECURE_NO_WARNINGS
#define handsz 5 //NO ACES IN THE POCKET WITH THIS GUY!
#define diesz 6 //All dice played will have 6 sides
#define ranks 7 //Seven ranks to hold
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int roll_die(void);
int main() {
srand(time(NULL));
int i;
int player_hand[handsz] = { 0 };
int donkeyvalue = 0;
int RandomNo;
for (i = 0; i < handsz; i++) {
RandomNo = roll_die(donkeyvalue);
player_hand[i] = RandomNo;
}
int player_die_count[7] = { 0 };
for (i = 0; i < handsz; i++) {
player_die_count[player_hand[i]] = player_die_count[player_hand[i]] + 1;
}
return 0;
}
int roll_die(void) {
return (1 + rand() % 6);
}
【问题讨论】:
-
如果您解释一下规则,也许会是个好主意......
-
OT:
... roll_die(donkeyvalue);当你有int roll_die(void);时似乎很奇怪 -
将变量声明(将它们放在函数的第一行)与函数体的其余部分分开通常是个好主意
-
我花了很多时间才让随机数函数起作用,但确实如此。我有显示和改变它的函数(上面不包括)。
-
@CacahueteFrito:抱歉暗示您以冒犯的方式更改了问题,您实际上恢复了最初由 jonrsharpe 编辑的原始文本,可能是因为您已经开始编辑不久以前。但是,将代码更改为括号宏、重新排序声明和类似的编辑是不行的,你可以在你的答案中提供这样的改进,但是问题中的代码不应该修改这个,因为它会使讨论、cmets 和其他答案不一致.