Футбольный турнир с матрицей - PullRequest
0 голосов
/ 21 апреля 2020

Я пытаюсь сделать футбольный турнир на C ++, в котором пользователь вводит названия команд (8 команд), а затем каждая команда должна сыграть с другой 1 раз. Во-первых, я не знаю, как читать названия команд, я имею в виду, что я пытался использовать .getline или просто cin массива символов, но затем мне нужно поместить команды в матрицу, и после финальной игры моя программа должна напечатать стол. Итак, первый вопрос: как прочитать имена и заставить программу думать, что они являются числами, или она работает только с именами, не нужно использовать int? И затем пользователи вводят результат для каждой игры, но здесь возникает сложная часть. После того, как все результаты введены, матрица вращается циклически c, а затем результат, сохраненный в переменных (вы увидите в коде победа / поражение), перезаписывает себя, поэтому в конце я не могу напечатать правильную таблицу. Итак, это второй вопрос: как я могу хранить их в нужной «команде», пока они вращаются? Извините, если я не совсем хорошо объяснил, как это работает, надеюсь, вы понимаете это. Ура!


 // FOOTBALL TOURNAMENT

    int map[2][4];
    for (int i = 0; i < 2; i++) {
        for (int j = 0; j < 4; j++) {
            cout << "map[" << i << "][" << j << "]= ";
            cin >> map[i][j];
        }
    }
    cout << "The map looks like this:" << endl;
    for (int i = 0; i < 2; i++) {
        for (int j = 0; j < 4; j++) {
            cout << map[i][j] << " ";
        }
        cout << endl;
    }

            map[0][0] = 1;
            int temp = 0, temp2 = 0, temp3 = 0, temp4 = 0, temp5 = 0, temp6 = 0;
            int a, b, c, d, e, f, g, h, round = 0;
            int victory_m00(0), losses_m10(0), victory_m10(0), losses_m00(0), victory_m01(0), losses_m11(0), victory_m11(0), losses_m01(0);
            int victory_m02(0), losses_m12(0), victory_m12(0), losses_m02(0), victory_m03(0), losses_m13(0), victory_m13(0), losses_m03(0);
            do
            {
                // Insert result for every game

                cout << "Enter the result of the first game between " << map[0][0] << " vs. " << map[1][0] << endl;
                cin >> a >> b;
                if (a > b) {
                    victory_m00++;
                    losses_m10++;
                }
                else if (a < b)
                {
                    victory_m10++;
                    losses_m00++;
                }
                cout << "Enter the result of the first game between: " << map[0][1] << " vs. " << map[1][1] << endl;
                cin >> c >> d;
                if (c > d) {
                    victory_m01++;
                    losses_m11++;
                }
                else if (c < d)
                {
                    victory_m11++;
                    losses_m01++;
                }

                cout << "Enter the result of the first game between: " << map[0][2] << " vs. " << map[1][2] << endl;
                cin >> e >> f;
                if (e > f) {
                    victory_m02++;
                    losses_m12++;
                }
                else if (e < f)
                {
                    victory_m12++;
                    losses_m02++;
                }

                cout << "Enter the result of the first game between: " << map[0][3] << " vs. " << map[1][3] << endl;
                cin >> g >> h;
                if (g > h) {
                    victory_m03++;
                    losses_m13++;
                }
                else if (g < h)
                {
                    victory_m13++;
                    losses_m03++;
                }
                round++;


                // Map switching

                temp = map[1][0];
                map[1][0] = map[0][1];
                temp2 = map[1][1];
                map[1][1] = temp;
                temp3 = map[1][2];
                map[1][2] = temp2;
                temp4 = map[1][3];
                map[1][3] = temp3;
                temp5 = map[0][3];
                map[0][3] = temp4;
                temp6 = map[0][2];
                map[0][2] = temp5;
                map[0][1] = temp6;

                // Table calculating and printing  ~ also this has to be outside the loop (but at first i wanted to print the table after every 'round'

                cout << "This is how the table looks like after the " << round << " round: \n";
                cout << map[0][0] << " has: " << victory_m00 << " victory(-ies) and " << losses_m00 << " loss-es!\n";
                cout << map[0][1] << " has: " << victory_m01 << " victory(-ies) and " << losses_m01 << " loss-es!\n";
                cout << map[0][2] << " has: " << victory_m02 << " victory(-ies) and " << losses_m02 << " loss-es!\n";
                cout << map[0][3] << " has: " << victory_m03 << " victory(-ies) and " << losses_m03 << " loss-es!\n";
                cout << map[1][0] << " has: " << victory_m10 << " victory(-ies) and " << losses_m10 << " loss-es!\n";
                cout << map[1][1] << " has: " << victory_m11 << " victory(-ies) and " << losses_m11 << " loss-es!\n";
                cout << map[1][2] << " has: " << victory_m12 << " victory(-ies) and " << losses_m12 << " loss-es!\n";
                cout << map[1][3] << " has: " << victory_m13 << " victory(-ies) and " << losses_m13 << " loss-es!\n";
                cout << endl;
                cout << endl;


            } while (map[0][1] != 2);

            ```

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...