[英]C++ 2 Player Dice Game
玩家 A 掷 m 个骰子,而玩家 B 掷 m + 1 个骰子。 如果玩家 A 掷出 an 并且玩家 B 掷出 b n,那么如果 a > b 玩家 A 获胜。 否则,玩家 A 滚动到 m 个骰子中的 k 个(未显示 n 的骰子)再次掷骰子。 如果其中 a' 是 n,那么如果 a + a' > b 则玩家 A 获胜。 如果 a + a' <= b,则玩家 B 获胜。
所以我想知道我所做的是否正确。 连同以下内容:
我想为 m、k 和 q 的每个值运行程序 10000 次并计算玩家 B 获胜的次数。 与此同时,我希望能够通过 m、k 和 q 的不同值分别将值循环到 10、10、15。
#include <iostream>
#include <stdio.h> // NULL
#include <stdlib.h> // srand, rand
#include <time.h> // time
#include <fstream>
using namespace std;
void cheddar();
int main(){
cheddar();
}
void cheddar(){
int m = 3;
int n = 6;
int k = 1;
int q = 6;
int dicerolledA = m;
int dicerolledB = m+1;
int dicererolled = k;
int diceA[20];
int diceB[20];
int countnA = 0;
int countnB = 0;
int awins = 0;
int bwins = 0;
int totalcount = 1;
srand(time(0));
//while (totalcount <= 10000){
for(int i=dicerolledA-1;i>=0;i--){
diceA[i]=rand()%q+1;
//cout << diceA[i] << ' ';
if (diceA[i] == n){
countnA++;
}
}
//cout << endl;
for(int i=dicerolledB-1;i>=0;i--){
diceB[i]=rand()%q+1;
//cout << diceB[i] << ' ';
if (diceB[i] == 6){
countnB++;
}
}
//cout << endl;
if(countnB >= countnA){
for(int i=dicererolled-1;i>=0;i--){
diceA[i] = rand()%q+1;
//cout << diceA[i];
if(diceA[i] == n){
countnA++;
}
}
//cout << endl;
if(countnB >= countnA){
bwins++;
}
else{
awins++;
}
}
else if (countnA > countnB){
awins++;
}
totalcount++;
dicerolledA = m;
dicerolledB = m+1;
dicererolled = k;
countnA = 0;
countnB = 0;
//}
cout << bwins << ' ';
awins = 0;
bwins = 0;
totalcount = 1;
}
首先使用必要的参数创建一个名为 cheddar() 的函数。
void cheddar(int m, int k, int q);
int main()
{
int mValue, kValue, qValue;
//...
cheddar(mValue, kValue, qValue);
}
void cheddar(int m, int k, int q)
{
// function
}
一旦您对调用函数感到满意,然后继续编写一个循环,使用各种值调用该函数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.