私は現在、ダイスゲームに取り組んでいます。ここで、ユーザーは最初にサイコロのペアを振ったので、サイコロ1=2とサイコロ2=3としましょう。つまり、合計は5になります。今、彼は勝つために再び5(合計)を獲得する必要があります。次の動きで5を獲得しなかった場合、彼は再びロールし、ゲームは続行されます。しかし、いずれかの時点で、彼が合計2をロールした場合、彼は負けます。
それで、最初のロールの値を保存して次の動きと比較する方法を教えてください。何か試しましたが、うまくいかないようです。
#include<iostream>
#include<ctime> // for the time() function
#include<cstdlib> // for the srand() and rand() functions
using namespace std;
// Declare variables
//int compInput;
int userInput;
int die1 = 0;
int die2 = 0;
int dieTotal = 0;
int Dice ()
{
// roll the first die
die1 = (rand() % 6 ) + 1;
// roll the second die
die2 = (rand() % 6 ) + 1;
}
// iniating a second two pair dice function.
int compDice()
{
Dice();
dieTotal = die1 + die2;
return (dieTotal);
}
// User Rolling the dice and calucalting the total here
int userGame()
{
cout << "\nUser turn --- Press 2 to roll" << endl;
cin >> userInput;
if ( userInput == 2 )
{
Dice ();
cout << "\nThe user rolled Dice 1 = " << die1 << " and Dice 2 = " << die2 << endl;
cout << "Total = " << die1 + die2 << endl;
}
else {
cout << "Wrong input.";
//userGame();
}
return (die1 + die2 );
}
int checkForWin ()
{
while (true)
{
int result1 = compDice();
int result = userGame();
// int finalResult = dieTotal;
if (result == result1 )
{
cout << "\nUser won. Computer looses....m " << endl;
break;
}
else if (result == 2)
{
cout << "\nUser looses. Computer won." <<endl;
break;
}
else
{
}
}
}
// Calling for the checkForWin() function in main and the srand.
int main ()
{
cout << "This is the Dice game. " << endl;
// set the seed
srand(time(0));
checkForWin(); // Initiating the game.
return 0;
}