繁体   English   中英

C++ 2 人骰子游戏

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM