-2
플레이어 A 롤 m 주사위, 플레이어 B는 m +1 주사위를 굴립니다. 플레이어 A가 을 굴리고 n이 이고 플레이어 B가 을 굴림이면 > b 인 경우 플레이어 A가 승리합니다. 그렇지 않으면 플레이어 A는 m 주사위 점 k 까지 굴림 (다시 표시되지 않는 숫자는 n) 롤백합니다. 만약> B '이들의 이 N의 다음 플레이어 A는 경우 + 에 WINS이다'. a + a '< = b이면 플레이어 B가 승리합니다.C++ 2 플레이어 주사위 게임
그래서 내가 쓴 것이 맞는지 궁금합니다. 다음과 함께 :
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;
}
그래서 당신은 프로그램을 작성하고 그것이 무엇을 할 것인지 궁금합니다. 그냥 실행하지 않는 이유는 무엇입니까? 아니면 당신이 그것을 실행하는 경우, 당신이 고칠 필요가 (헐떡 거림) 버그가있을 수 있습니다 두려워합니까? – PaulMcKenzie
아니, 다양한 m, k 및 q 변수에 대한 프로그램을 루프하는 방법을 궁금합니다. 프로그램이 올바르게 실행됩니다. – hockeynl
'나는 쓴 글이 맞는지 궁금합니다. '이것이 무슨 뜻입니까? – PaulMcKenzie