Click here to Skip to main content
15,902,112 members
Please Sign up or sign in to vote.
1.00/5 (2 votes)
See more:
Type precedence –
Stamina with PlusMode > Balance > Attack > Defense
System precedence –
QuadDrive > HyperSphere > SpeedStorm > Burst > SwitchStrike > Dual-Layer > SlingShock
The game should be played as follows:
1. Player one and two enter their name
2. System shuffle and randomly assigned numbers 1-10 to the cards
3. Player one pick a card
4. System shuffle remaining cards and randomly assigned numbers 1-9 to the cards
5. Player two pick a card
6. Both Player show cards – players with higher type and system precedence wins the round a mark of 10 is given to the winner
7. This continue till five rounds and the game ended with a display of scores for both players.
8. They can play again if they wish so, otherwise they can choose to exit the game.

What I have tried:

C++
#include <iostream>
#include <string>
#include <ctime>
#include <cstdlib>
using namespace std;
int main()
{
    srand(time(0));  // Using seed so that every time unique number generated.    

    //define variable to stroe data
    string player_name_1, player_name_2;
    int number;
    int player_1_score = 0, player_2_score = 0;
    string player_1_beblade, player_2_beblade;
    string choice = "y";
    while (choice.compare("y") == 0){//repeat until user does not choose to exit
        //reset the player 1 and 2 score
        player_1_score = 0;
        player_2_score = 0;
        //set all beblayde is not yet used
        bool beyblade_1 = false, beyblade_2 = false, beyblade_3 = false, beyblade_4 = false, beyblade_5 = false, beyblade_6 = false, beyblade_7 = false, beyblade_8 = false, beyblade_9 = false, beyblade_10 = false;
        //take user input
        cout << "Enter first player name : ";
        getline(cin, player_name_1);
        cout << "Enter second player name : ";
        getline(cin, player_name_2);

        for (int round = 1; round <= 5; round++)
        {
            cout << endl << "Round " << round << endl;

            //select player 1 beblade
            while (true) {//repeat until unique random number is not generated
                number = 1 + (rand() % 10);
                //check thsi number is already generated or not
                if (number == 1 && beyblade_1 == false)
                {
                    beyblade_1 = true;//set beblayed is used
                    player_1_beblade = "Abyss Devolos";
                    break;
                }
                else if (number == 2 && beyblade_2 == false)
                {
                    beyblade_2 = true;//set beblayed is used
                    player_1_beblade = "Ace Dragon";
                    break;
                }
                else if (number == 3 && beyblade_3 == false)
                {
                    beyblade_3 = true;//set beblayed is used
                    player_1_beblade = "Anubion A2";
                    break;
                }
                else if (number == 4 && beyblade_4 == false)
                {
                    beyblade_4 = true;//set beblayed is used
                    player_1_beblade = "Balar B4";
                    break;
                }
                else if (number == 5 && beyblade_5 == false)
                {
                    beyblade_5 = true;//set beblayed is used
                    player_1_beblade = "Crystal Dranzer";
                    break;
                }
                else if (number == 6 && beyblade_6 == false)
                {
                    beyblade_6 = true;//set beblayed is used
                    player_1_beblade = "Cyclone Belfyre";
                    break;
                }
                else if (number == 7 && beyblade_7 == false)
                {
                    beyblade_7 = true;//set beblayed is used
                    player_1_beblade = "Dark-X Nepstrius";
                    break;
                }
                else if (number == 8 && beyblade_8 == false)
                {
                    beyblade_8 = true;//set beblayed is used
                    player_1_beblade = "Diomedes D2";
                    break;
                }
                else if (number == 9 && beyblade_9 == false)
                {
                    beyblade_9 = true;//set beblayed is used
                    player_1_beblade = "Doomscizor";
                    break;
                }
                else if (number == 10 && beyblade_10 == false)
                {
                    beyblade_10 = true;//set beblayed is used
                    player_1_beblade = "Vatryek Wing Accel";
                    break;
                }
            }
            cout << "Player 1 beblade is : " << player_1_beblade << endl;

            //select player 2 beblade
            while (true) {//repeat until unique random number is not generated
                number = 1 + (rand() % 10);
                //check thsi number is already generated or not
                if (number == 1 && beyblade_1 == false)
                {
                    beyblade_1 = true;//set beblayed is used
                    player_2_beblade = "Abyss Devolos";
                    break;
                }
                else if (number == 2 && beyblade_2 == false)
                {
                    beyblade_2 = true;//set beblayed is used
                    player_2_beblade = "Ace Dragon";
                    break;
                }
                else if (number == 3 && beyblade_3 == false)
                {
                    beyblade_3 = true;//set beblayed is used
                    player_2_beblade = "Anubion A2";
                    break;
                }
                else if (number == 4 && beyblade_4 == false)
                {
                    beyblade_4 = true;//set beblayed is used
                    player_2_beblade = "Balar B4";
                    break;
                }
                else if (number == 5 && beyblade_5 == false)
                {
                    beyblade_5 = true;//set beblayed is used
                    player_2_beblade = "Crystal Dranzer";
                    break;
                }
                else if (number == 6 && beyblade_6 == false)
                {
                    beyblade_6 = true;//set beblayed is used
                    player_2_beblade = "Cyclone Belfyre";
                    break;
                }
                else if (number == 7 && beyblade_7 == false)
                {
                    beyblade_7 = true;//set beblayed is used
                    player_2_beblade = "Dark-X Nepstrius";
                    break;
                }
                else if (number == 8 && beyblade_8 == false)
                {
                    beyblade_8 = true;//set beblayed is used
                    player_2_beblade = "Diomedes D2";
                    break;
                }
                else if (number == 9 && beyblade_9 == false)
                {
                    beyblade_9 = true;//set beblayed is used
                    player_2_beblade = "Doomscizor";
                    break;
                }
                else if (number == 10 && beyblade_10 == false)
                {
                    beyblade_10 = true;//set beblayed is used
                    player_2_beblade = "Vatryek Wing Accel";
                    break;
                }
            }
            cout << "Player 2 beblade is : " << player_2_beblade << endl;

            //check who wons the game
            //if both player have same system type beblade
            if ((player_1_beblade.compare("Crystal Dranzer") == 0 && player_2_beblade.compare("Vatryek Wing Accel") == 0) || (player_1_beblade.compare("Vatryek Wing Accel") == 0 && player_2_beblade.compare("Crystal Dranzer") == 0))
            {
                if (player_1_beblade.compare("Crystal Dranzer") == 0)
                {
                    cout << "Player 1 Won";
                    player_1_score += 10;
                }
                else
                {
                    cout << "Player 2 Won";
                    player_2_score += 10;
                }
            }
            else if ((player_1_beblade.compare("Balar B4") == 0 && player_2_beblade.compare("Dark-X Nepstrius") == 0) || (player_1_beblade.compare("Dark-X Nepstrius") == 0 && player_2_beblade.compare("Balar B4") == 0))
            {
                if (player_1_beblade.compare("Balar B4") == 0)
                {
                    cout << "Player 1 Won";
                    player_1_score += 10;
                }
                else
                {
                    cout << "Player 2 Won";
                    player_2_score += 10;
                }
            }
            else if ((player_1_beblade.compare("Anubion A2") == 0 && player_2_beblade.compare("Diomedes D2") == 0) || (player_1_beblade.compare("Diomedes D2") == 0 && player_2_beblade.compare("Anubion A2") == 0))
            {
                if (player_1_beblade.compare("Anubion A2") == 0)
                {
                    cout << "Player 1 Won";
                    player_1_score += 10;
                }
                else
                {
                    cout << "Player 2 Won";
                    player_2_score += 10;
                }
            }
            //if both player have different system type beblade
            else if (player_1_beblade.compare("Cyclone Belfyre") == 0 && (player_2_beblade.compare("Abyss Devolos") == 0 || player_2_beblade.compare("Ace Dragon") == 0 || player_2_beblade.compare("Anubion A2") == 0 || player_2_beblade.compare("Balar B4") == 0 || player_2_beblade.compare("Crystal Dranzer") == 0 || player_2_beblade.compare("Dark-X Nepstrius") == 0 || player_2_beblade.compare("Diomedes D2") == 0 || player_2_beblade.compare("Doomscizor") == 0 || player_2_beblade.compare("Vatryek Wing Accel") == 0))
            {
                cout << "Player 1 Won";
                player_1_score += 10;
            }
            else if (player_2_beblade.compare("Cyclone Belfyre") == 0 && (player_1_beblade.compare("Abyss Devolos") == 0 || player_1_beblade.compare("Ace Dragon") == 0 || player_1_beblade.compare("Anubion A2") == 0 || player_1_beblade.compare("Balar B4") == 0 || player_1_beblade.compare("Crystal Dranzer") == 0 || player_1_beblade.compare("Dark-X Nepstrius") == 0 || player_1_beblade.compare("Diomedes D2") == 0 || player_1_beblade.compare("Doomscizor") == 0 || player_1_beblade.compare("Vatryek Wing Accel") == 0))
            {
                cout << "Player 2 Won";
                player_2_score += 10;
            }
            else if (player_1_beblade.compare("Ace Dragon") == 0 && (player_2_beblade.compare("Abyss Devolos") == 0 || player_2_beblade.compare("Anubion A2") == 0 || player_2_beblade.compare("Balar B4") == 0 || player_2_beblade.compare("Crystal Dranzer") == 0 || player_2_beblade.compare("Dark-X Nepstrius") == 0 || player_2_beblade.compare("Diomedes D2") == 0 || player_2_beblade.compare("Doomscizor") == 0 || player_2_beblade.compare("Vatryek Wing Accel") == 0))
            {
                cout << "Player 1 Won";
                player_1_score += 10;
            }
            else if (player_2_beblade.compare("Ace Dragon") == 0 && (player_1_beblade.compare("Abyss Devolos") == 0 || player_1_beblade.compare("Anubion A2") == 0 || player_1_beblade.compare("Balar B4") == 0 || player_1_beblade.compare("Crystal Dranzer") == 0 || player_1_beblade.compare("Dark-X Nepstrius") == 0 || player_1_beblade.compare("Diomedes D2") == 0 || player_1_beblade.compare("Doomscizor") == 0 || player_1_beblade.compare("Vatryek Wing Accel") == 0))
            {
                cout << "Player 2 Won";
                player_2_score += 10;
            }
            else if (player_1_beblade.compare("Abyss Devolos") == 0 && (player_2_beblade.compare("Anubion A2") == 0 || player_2_beblade.compare("Balar B4") == 0 || player_2_beblade.compare("Crystal Dranzer") == 0 || player_2_beblade.compare("Dark-X Nepstrius") == 0 || player_2_beblade.compare("Diomedes D2") == 0 || player_2_beblade.compare("Doomscizor") == 0 || player_2_beblade.compare("Vatryek Wing Accel") == 0))
            {
                cout << "Player 1 Won";
                player_1_score += 10;
            }
            else if (player_2_beblade.compare("Abyss Devolos") == 0 && (player_1_beblade.compare("Anubion A2") == 0 || player_1_beblade.compare("Balar B4") == 0 || player_1_beblade.compare("Crystal Dranzer") == 0 || player_1_beblade.compare("Dark-X Nepstrius") == 0 || player_1_beblade.compare("Diomedes D2") == 0 || player_1_beblade.compare("Doomscizor") == 0 || player_1_beblade.compare("Vatryek Wing Accel") == 0))
            {
                cout << "Player 2 Won";
                player_2_score += 10;
            }
            else if (player_1_beblade.compare("Crystal Dranzer") == 0 && (player_2_beblade.compare("Anubion A2") == 0 || player_2_beblade.compare("Balar B4") == 0 || player_2_beblade.compare("Dark-X Nepstrius") == 0 || player_2_beblade.compare("Diomedes D2") == 0 || player_2_beblade.compare("Doomscizor") == 0))
            {
                cout << "Player 1 Won";
                player_1_score += 10;
            }
            else if (player_1_beblade.compare("Vatryek Wing Accel") == 0 && (player_2_beblade.compare("Anubion A2") == 0 || player_2_beblade.compare("Balar B4") == 0 || player_2_beblade.compare("Dark-X Nepstrius") == 0 || player_2_beblade.compare("Diomedes D2") == 0 || player_2_beblade.compare("Doomscizor") == 0))
            {
                cout << "Player 1 Won";
                player_1_score += 10;
            }
            else if (player_2_beblade.compare("Crystal Dranzer") == 0 && (player_1_beblade.compare("Anubion A2") == 0 || player_1_beblade.compare("Balar B4") == 0 || player_1_beblade.compare("Dark-X Nepstrius") == 0 || player_1_beblade.compare("Diomedes D2") == 0 || player_1_beblade.compare("Doomscizor") == 0))
            {
                cout << "Player 2 Won";
                player_2_score += 10;
            }
            else if (player_2_beblade.compare("Vatryek Wing Accel") == 0 && (player_1_beblade.compare("Anubion A2") == 0 || player_1_beblade.compare("Balar B4") == 0 || player_1_beblade.compare("Dark-X Nepstrius") == 0 || player_1_beblade.compare("Diomedes D2") == 0 || player_1_beblade.compare("Doomscizor") == 0))
            {
                cout << "Player 2 Won";
                player_2_score += 10;
            }
            else if (player_1_beblade.compare("Doomscizor") == 0 && (player_2_beblade.compare("Anubion A2") == 0 || player_2_beblade.compare("Balar B4") == 0 || player_2_beblade.compare("Dark-X Nepstrius") == 0 || player_2_beblade.compare("Diomedes D2") == 0))
            {
                cout << "Player 1 Won";
                player_1_score += 10;
            }
            else if (player_2_beblade.compare("Doomscizor") == 0 && (player_1_beblade.compare("Anubion A2") == 0 || player_1_beblade.compare("Balar B4") == 0 || player_1_beblade.compare("Dark-X Nepstrius") == 0 || player_1_beblade.compare("Diomedes D2") == 0))
            {
                cout << "Player 2 Won";
                player_2_score += 10;
            }
            else if (player_1_beblade.compare("Diomedes D2") == 0 && (player_2_beblade.compare("Balar B4") == 0 || player_2_beblade.compare("Dark-X Nepstrius") == 0))
            {
                cout << "Player 1 Won";
                player_1_score += 10;
            }
            else if (player_1_beblade.compare("Anubion A2") == 0 && (player_2_beblade.compare("Balar B4") == 0 || player_2_beblade.compare("Dark-X Nepstrius") == 0))
            {
                cout << "Player 1 Won";
                player_1_score += 10;
            }
            else if (player_2_beblade.compare("Diomedes D2") == 0 && (player_1_beblade.compare("Balar B4") == 0 || player_1_beblade.compare("Dark-X Nepstrius") == 0))
            {
                cout << "Player 2 Won";
                player_2_score += 10;
            }
            else if (player_2_beblade.compare("Anubion A2") == 0 && (player_1_beblade.compare("Balar B4") == 0 || player_1_beblade.compare("Dark-X Nepstrius") == 0))
            {
                cout << "Player 2 Won";
                player_2_score += 10;
            }
            cout << endl;
        }
        //print both player score
        cout << "\nPlayer 1 Score : " << player_1_score << endl;
        cout << "Player 2 Score : " << player_2_score << endl;

        //ask whether they want to play again or not
        cout << "\nPlay again (y/n): ";
        getline(cin, choice);

    }

}
Posted
Updated 14-May-22 22:28pm
v2
Comments
Richard MacCutchan 15-May-22 3:56am    
Just dumping all that code and expecting someone to analyse and fix it for you is somewhat rude. If you have a problem with your code then please explain in proper detail what the problem is.
Patrice T 15-May-22 4:02am    
And you think you can tell us what problem you have with this code ?

Compiling does not mean your code is right! :laugh:
Think of the development process as writing an email: compiling successfully means that you wrote the email in the right language - English, rather than German for example - not that the email contained the message you wanted to send.

So now you enter the second stage of development (in reality it's the fourth or fifth, but you'll come to the earlier stages later): Testing and Debugging.

Start by looking at what it does do, and how that differs from what you wanted. This is important, because it give you information as to why it's doing it. For example, if a program is intended to let the user enter a number and it doubles it and prints the answer, then if the input / output was like this:
Input   Expected output    Actual output
  1            2                 1
  2            4                 4
  3            6                 9
  4            8                16
Then it's fairly obvious that the problem is with the bit which doubles it - it's not adding itself to itself, or multiplying it by 2, it's multiplying it by itself and returning the square of the input.
So with that, you can look at the code and it's obvious that it's somewhere here:
C++
int Double(int value)
   {
   return value * value;
   }

Once you have an idea what might be going wrong, start using the debugger to find out why. Put a breakpoint on the first line of the method, and run your app. When it reaches the breakpoint, the debugger will stop, and hand control over to you. You can now run your code line-by-line (called "single stepping") and look at (or even change) variable contents as necessary (heck, you can even change the code and try again if you need to).
Think about what each line in the code should do before you execute it, and compare that to what it actually did when you use the "Step over" button to execute each line in turn. Did it do what you expect? If so, move on to the next line.
If not, why not? How does it differ?
Hopefully, that should help you locate which part of that code has a problem, and what the problem is.
This is a skill, and it's one which is well worth developing as it helps you in the real world as well as in development. And like all skills, it only improves by use!
 
Share this answer
 
Consider redesigning the code as object oriented code with classes and functions. Use some enum for the player avatar which has some text output like in this example. You can check the enum value of a player against all enum value to check for some state. At last the player should also have the score and other needed fields.

tip: if your avatar have some order, than order the enum in that way and you can compare them by the player like:
C++
if( player1.typ() > player2.type() ) {
print("player 1 has won");
}
PS: Repairing means that it was work in the past. So you should have a backup somewhere ;-)
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900