0

だから私はこのコードを持っています:

// ConsoleApplication2.cpp : Defines the entry point for the console application.
//

#include <iostream>
#include <ctime>
#include <stdio.h>

using namespace std;


int main()
{
    int bankDeposit();
    void game();
    void checkVictorySum(int gameFieldCheck[3][3]);

    int totalDeposit = 0;

    int gameField;

    cout << "Welcome to the slot machine, bet a sum and win money depending on the number of equal rows." << endl;
    totalDeposit = bankDeposit();
    game();
    return 0;
}

int bankDeposit()
{
    int deposit = 0;
    int betAbleMoney = 0;

    bool correctDeposit = false;
    bool endOfFunction = false;
    bool incorrectAnswer = true;

    char wantToDepositMore = 'Y';

    while (!endOfFunction)
    {

        while (wantToDepositMore == 'Y')
        {
            while (!correctDeposit)
            {
                cout << "How much money do you want to deposit? " << endl;
                cin >> deposit;

                if (cin.fail())
                {
                    cin.clear();
                    cin.ignore();
                    cout << "That's an incorrect input" << endl;
                }

                else
                {
                    correctDeposit = true;
                }
            }
            betAbleMoney += deposit;
            cout << "You have deposited a total of " << betAbleMoney << " Euro" << endl;
            incorrectAnswer = true;

            while (incorrectAnswer)
            {
                cout << "Do you want to deposit more money? (Y/N)" << endl;
                cin >> wantToDepositMore;

                if (cin.fail())
                {
                    cin.clear();
                    cin.ignore();
                    cout << "That's an incorrect input" << endl;
                    incorrectAnswer = true;
                }

                else
                {
                    incorrectAnswer = false;
                }

                if (wantToDepositMore != 'N' && wantToDepositMore != 'Y')
                {
                    incorrectAnswer = true;
                    cout << "That's an incorrect input " << endl;
                }

                else
                {
                    if (wantToDepositMore == 'N')
                    {
                        endOfFunction = true;
                    }

                    else
                    {
                        correctDeposit = false;
                        deposit = 0;
                    }
                }               
            }                       
        }       
    }
    return betAbleMoney;
}

void game()
{
    void checkVictorySum(int gameFieldCheck);
    srand(time(0));
    int gameField [3][3];
    char mainGameField [3][3];

    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 3; j++)
        {
            gameField[i][j] = rand() % 3 + 1;
        }
    }
    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 3; j++)
        {
            if (gameField[i][j] == 1)
            {
                mainGameField [i][j] = 'x';
            }

            if (gameField[i][j] == 2)
            {
                mainGameField [i][j] = 'o';
            }

            if (gameField[i][j] == 3)
            {
                mainGameField [i][j] = '*';
            }
            cout << mainGameField[i][j];
        }
        cout << endl;
    }
    checkVictorySum(gameField[3][3]);
}

void checkVictorySum(int gameField[3][3])
{
    int rows = 0;
    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 3; j++)
        {
            cout << gameField[i][j];
            cout << endl;
        }

    }
}

checkVictorySum がゲームから 2 次元配列を使用できるようにしたいと考えています。同じ関数のすべてをチェックするだけではない理由は、この課題では 3 つの関数が必要だからです。

どんな助けでも大歓迎です。//ビョルン

4

3 に答える 3

0

これが機能するため、問題は2次元配列を渡すこととは何の関係もありません:

void func(int arr[3][3])
{
    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 3; j++)
        {
            arr[i][j] = 0;
        }
    }
}

int main()
{
    int arr[3][3] = {0};

    func(arr);
}

次元値が失われることを意味する関数の引数として使用される場合、配列はポインターに崩壊することに注意してください。したがって、配列のサイズを知る必要があるか、配列とともに次元を関数に渡す必要があります

于 2013-10-17T09:17:16.173 に答える
0

関数プロトタイプを の本体から移動する必要がありますmain()

int bankDeposit();
void game();
void checkVictorySum(int gameFieldCheck[3][3]);

int main()
{
    ...
}
于 2013-10-17T09:23:22.817 に答える