0

ダーツゲームを作成すると、2つのエラーが発生します

too few argurments in function call

game, identifier not found

私は、2人のプレーヤーが301からダーツを「ジョーとシド」でプレイできるようにする割り当てのゲームを作成しようとしています。配列には、雄牛と21の数字だけのダブルはありません。質問を解決するために、助けていただければ幸いです。以下のコードには4つの主要な機能があり、それぞれがスコアを下げます。最初は50代(ブル)、次に20代、次にシングルです。両方のプレーヤーはブルで終了する必要があり、スコアが50に達したときにブルではないスコアは破棄されます。 。

これが私のコードです。助けていただければ幸いです。

#include <iostream>
using namespace std;

int dartScores[] = {20, 1, 18, 4, 13, 6, 10, 15, 2, 17, 3, 19, 7, 16, 8, 11, 14, 9, 12, 5, 20};

void makeThrow( int &score );

int main () 
{
    int joeScore = 301;
    int sidScore = 301;

    for (int i = 0; i< 1000;i++){
    while( joeScore > 0 || sidScore > 0 )
    {
        //do a throw
        game( joeScore);
        game( sidScore);

    }
    // remember to reset the score value

    }


}
void makeThrow_50( int &score, int acc )
{
    if ( rand()%100 < acc )
    {
        score -= 50;
    }
    else
    {
        //select a random
        int missedScore = dartScores[ rand()%20 ];

        // Only reduce score when thrown score is less than remaining score
        if (missedScore > score)
        {
            // Valid dart, take from score
            score -= missedScore;
        }
        else
        {
            // Invalid throw - BUST
            //cout << " BUST ";
        }

        //if (score <0) score=0;
    }
}

void makeThrow_20( int &score, int acc )
{
    if ( rand()%100 < acc )
    {
        score -= 20;
    }
    else
    {
        //select a random
        int missedScore = dartScores[ rand()%20 ];

        // Only reduce score when thrown score is less than remaining score
        if (missedScore > score)
        {
            // Valid dart, take from score
            score -= missedScore;
        }
        else
        {
            // Invalid throw - BUST
            //cout << " BUST ";
        }

        //if (score <0) score=0;
    }
}

void makeThrow_Single( int &score, int acc )
{
    if ( rand()%100 < acc )
    {
        score -= 1;
    }
    else
    {
        //select a random
        int missedScore = dartScores[ rand()%20 ];

        // Only reduce score when thrown score is less than remaining score
        if (missedScore > score)
        {
            // Valid dart, take from score
            score -= missedScore;
        }
        else
        {
            // Invalid throw - BUST
            //cout << " BUST ";
        }

        //if (score <0) score=0;
    }
}

void makeThrow_bull( int &score, int acc )
{
    if ( rand()%100 < acc )
    {
        score -= 50;
    }
    else
    {
        //select a random
        int missedScore = dartScores[ rand()%20 ];

        // Only reduce score when thrown score is less than remaining score
        if (missedScore > score)
        {
            // Valid dart, take from score
            score -= missedScore;
        }
        else
        {
            // Invalid throw - BUST
            //cout << " BUST ";
        }

        //if (score <0) score=0;
    }
}



int game(int& score, int acc) {
    if (score >= 100)
        makeThrow_50(score, acc);
    else if (score >= 70)
        makeThrow_20(score, 80);
    else if (score >= 51)
        makeThrow_Single(score, 80);
    else 
        makeThrow_bull(score, 80);

}
4

2 に答える 2

1
  1. gameあなたは前に宣言する必要がありますmain
  2. game関数は2つの引数を取り、1つだけを渡します(でmain
  3. あなたはのために必要#include <cstdlib>ですrand()
  4. また、の冒頭にアドバイス#include <time.h>して入れたいと思います。srand (time(NULL))main
于 2013-03-22T09:10:43.200 に答える
1
  1. のプロトタイプを宣言するか、game呼び出す前に定義します。
  2. 関数gameは2つの引数を取ります。
于 2013-03-22T09:14:10.517 に答える