Проблема игральных костей с отображением итогов хода после того, как пользователь и компьютер ушли - PullRequest
0 голосов
/ 16 февраля 2019

Таким образом, у меня есть проблема с моим кодом, из-за которой я не могу получить ни одну из своих функций (int human_turn или int computer_turn), чтобы вернуть правильное значение итогов их хода.Я пытаюсь сделать так, чтобы две функции int возвращали свои итоговые итоги хода после того, как они сделали свой ход, затем имеют отдельную функцию, которая будет отслеживать эти значения и действовать как табло, а также показывать, выполнены ли условия победы.,В настоящее время в конце цикла while для каждого хода, у меня есть turnTotal_1 = roll_1 + turnTotal_1;который обновляет итоговое значение, а затем цикл проверяет, является ли while все еще истинным.Я тогда поставил возврат turnTotal_1;оператор после цикла, чтобы он возвращал это значение и всегда возвращал 1. Независимо от того, каково значение итогового оборота, оператор возврата всегда будет возвращать 1. Любая помощь или совет будут оценены.

#include <iostream>
#include <cmath>
#include <cstdlib>
#include <unistd.h>
#include <stdio.h>
using namespace std; 

/**
 * rollDie 
 * returns a random integer between 1 and 6, works as rolling a dice.
 * return value, int number (1-6)
 */

int rollDie()
{
    return random() % 6 + 1; 
}


int human_turn(int turnTotal_1)
{
    cout << "It is now human's turn" << endl;
    cout << "Do you want to roll a dice(Y/N)?:" << endl;
    char user_choice;
    cin >> user_choice;
    while ((user_choice == 'y') || (user_choice == 'Y'))
    {
        int roll_1 = rollDie();
        if ((roll_1 == 2) || (roll_1 == 5))
        {
            cout << "You rolled a " << roll_1 << endl;
            roll_1 = 0;
        }
        else if ((roll_1 == 1) || (roll_1== 3) ||(roll_1 == 6))
        {
            cout << "You rolled a " << roll_1 << endl;
        }
        else if (roll_1 == 4)
        {
            cout << "You rolled a " << roll_1 << endl;
            roll_1 = 15;
        }
        turnTotal_1 = roll_1 + turnTotal_1;
        cout << "Your turn total is " << turnTotal_1 << endl;
        cout << "Do you want to roll a dice(Y/N)?:" << endl;
        cin >> user_choice;
    }
    if ((user_choice == 'n') || (user_choice == 'N')) 
    {
        return turnTotal_1;
    }
}
int computer_turn()
{
    int turnTotal_2 = 0;
    cout << "It is now computer's turn" << endl;
    int roll_1 = rollDie();
    while (turnTotal_2 <= 10)
    {
        int roll_1 = rollDie();
        if ((roll_1 == 2) || (roll_1 == 5))
        {
            cout << "Computer rolled a " << roll_1 << endl;
            roll_1 = 0;
        }
        else if ((roll_1 == 1) || (roll_1== 3) ||(roll_1 == 6))
        {
            cout << "Computer rolled a " << roll_1 << endl;
        }
        else if (roll_1 == 4)
        {
            cout << "Computer rolled a " << roll_1 << endl;
            roll_1 = 15;
        }
        turnTotal_2 = roll_1 + turnTotal_2;
        cout << "Computer turn total is " << turnTotal_2 << endl;
    }
}
void scoreboard()
{
cout << human_turn << endl;
cout << computer_turn << endl;
}

void game()
{
    cout << "Welcome to Jeopardy Dice!" << endl;
    human_turn(0);
    cout << human_turn << endl;;
    computer_turn();
    scoreboard();
}


int main()
{
    // start the game! 
    game();
    return 0;
}

Вот пример того, как он работает.

Welcome to Jeopardy Dice!
It is now human's turn
Do you want to roll a dice(Y/N)?:
n
1
It is now computer's turn
Computer rolled a 5
Computer turn total is 0
Computer rolled a 4
Computer turn total is 15
...