[英]Rock Paper Scissors looping method in C++
所以基本上我是在設計Rock-Paper-Scissors游戲。
我有三種選擇(移動)的方法,取決於他們的獲勝率。 讓我們把它叫做: methodA()
methodB()
methodC()
現在,我需要每30回合執行一次檢查,以檢查獲勝率。
我有一段這樣的代碼:
Move nextMove(){ //Move is a enum including Rock,Paper,Scissors
Move makeMove;
vector<float> checkWinRate = {winRateA,winRateB,winRateC};
//saving my win rates into a vector and sort it
std::sort(checkWinRate.begin(),checkWinRate.end());
if (checkWinRate.back() == winRateA)
makeMove = methodA();
else if (checkWinRate.back() == winRateB)
makeMove = methodB();
else
makeMove = methodC();
//choose methods according to win rates
return makeMove;
}
我現在正在做的是每次調用此函數時都要對其進行檢查。 但是,我的最終目標是讓它每30輪檢查一次,並在接下來的30輪中運行相同的方法,然后再次檢查。 聽起來很簡單,但我還是想不起來。
知道我在這里應該做什么嗎? 請幫忙。
您可以創建一個整數,每輪增加一個,當它達到29(30輪)時,請進行檢查,然后再次使其為零。 您的numOfRounds首先將為29,以便能夠在開始時輸入任意數字。
Move nextMove(static int numOfRounds){
//...
if ((checkWinRate.back() == winRateA) && numOfRounds == 29)
makeMove = methodA();
numOfRounds = 0;
//...
else{
/*You need to choose a method here, my question is, will it
break your original logic? I would choose randomly.*/
numOfRounds++;
}
return makeMove;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.