Created
April 24, 2018 10:12
-
-
Save Thanatossan/a7706540bf1b694541ec3a78a6998aef to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #include<iostream> | |
| #include<vector> | |
| #include<cstdlib> | |
| #include<iomanip> | |
| #include<ctime> | |
| #include<algorithm> | |
| #include"Structure.h" | |
| using namespace std; | |
| //setting n players role format. | |
| void Avalon::roleSet(int n){ | |
| allCharacter.push_back("Mordred"); | |
| allCharacter.push_back("Assassin"); | |
| allCharacter.push_back("Merlin"); | |
| allCharacter.push_back("Soldier No.1"); | |
| switch(n){ | |
| case 8: | |
| allCharacter.push_back("Percival"); | |
| case 7: | |
| allCharacter.push_back("Soldier No.3"); | |
| case 6: | |
| allCharacter.push_back("Oberon"); | |
| case 5: | |
| allCharacter.push_back("Soldier No.2"); | |
| break; | |
| } | |
| } | |
| //shuffle all roles before showing. | |
| //show your character and ability. | |
| void Avalon::showRole(){ | |
| cout << "\n You are playing as " << allCharacter[0] << "\n"; | |
| character = allCharacter[0]; | |
| if(character == "Mordred"){ | |
| side=-1; | |
| cout << "\n\n*******************************************************************\n\n"; | |
| cout << " An evil who are unknown to Merlin."; | |
| cout << "\n\n*******************************************************************\n\n"; | |
| }else if(character == "Assassin"){ | |
| side=-1; | |
| cout << "\n\n*******************************************************************\n\n"; | |
| cout << " Find the Merlin. Take an advantage to win the game at the end."; | |
| cout << "\n\n*******************************************************************\n\n"; | |
| }else if(character == "Oberon"){ | |
| side=-1; | |
| cout << "\n\n*******************************************************************\n\n"; | |
| cout << " You are an evil. Your team knows who you are, but you don't."; | |
| cout << "\n\n*******************************************************************\n\n"; | |
| }else if(character == "Merlin"){ | |
| side=1; | |
| cout << "\n\n*******************************************************************\n\n"; | |
| cout << " Knows the evil. But keep it secret."; | |
| cout << "\n\n*******************************************************************\n\n"; | |
| }else if(character == "Percival"){ | |
| side=1; | |
| cout << "\n\n*******************************************************************\n\n"; | |
| cout << " Help Merlin to remain unnoticed."; | |
| cout << "\n\n*******************************************************************\n\n"; | |
| }else{ | |
| side=1; | |
| cout << "\n\n*******************************************************************\n\n"; | |
| cout << " You don't have any special abilities, successfully\n"; | |
| cout << " keep evils out of the mission at least 3 missions to win."; | |
| cout << "\n\n*******************************************************************\n\n"; | |
| } | |
| } | |
| int main(){ | |
| //game open | |
| srand(time(0)); | |
| cout << "###################################################################\n\n"; | |
| cout << " **** ** ** **** ** ****** ** ** \n"; | |
| cout << " ** ** ** ** ** ** ** ** ** *** ** \n"; | |
| cout << " ** ** ** ** ** ** ** ** ** **** ** \n"; | |
| cout << " ******** ** ** ******** ** ** ** ** ** ** \n"; | |
| cout << " ** ** **** ** ** ** ** ** ** **** \n"; | |
| cout << " ** ** ** ** ** ****** ****** ** *** \n\n"; | |
| cout << "###################################################################\n\n"; | |
| cout << " [1] GAME START [2] EXIT \n\n\n"; | |
| //choose start or exit | |
| string action; | |
| do{ | |
| cout << " Please choose the action \"1\" or \"2\" : "; | |
| getline(cin,action); | |
| if(action == "1" || action == "2") break; | |
| }while(true); | |
| //result of action | |
| if(action == "1"){ | |
| //start | |
| cout << "\n GAME STARTED !!\n"; | |
| cout << "\n\n\n Press \"Enter\" to continue...\n "; | |
| cin.get(); | |
| //number of player produce picking map | |
| int players = 0; | |
| cout << "\n\n###################################################################\n\n"; | |
| do{ | |
| cout << " Please input number of players 5-8 : "; | |
| cin >> players; | |
| cin.ignore();////////////////////bug///////////////////////////////////////////////////////////////////////////////////// | |
| }while(players<5 || players>8); | |
| cout << "\n Starting map #" << players-4 << endl; | |
| //random character | |
| cout << "\n\n Pick one of the character cards...\n\n"; | |
| switch (players){ | |
| case 5 : | |
| cout << " %%%%% %%%%% %%%%% %%%%% %%%%% \n"; | |
| cout << " % % % % % % % % % % \n"; | |
| cout << " % 1 % % 2 % % 3 % % 4 % % 5 % \n"; | |
| cout << " % % % % % % % % % % \n"; | |
| cout << " %%%%% %%%%% %%%%% %%%%% %%%%% \n\n"; | |
| break; | |
| case 6 : | |
| cout << " %%%%% %%%%% %%%%% %%%%% %%%%% %%%%% \n"; | |
| cout << " % % % % % % % % % % % % \n"; | |
| cout << " % 1 % % 2 % % 3 % % 4 % % 5 % % 6 % \n"; | |
| cout << " % % % % % % % % % % % % \n"; | |
| cout << " %%%%% %%%%% %%%%% %%%%% %%%%% %%%%% \n\n"; | |
| break; | |
| case 7 : | |
| cout << " %%%%% %%%%% %%%%% %%%%% %%%%% %%%%% %%%%% \n"; | |
| cout << " % % % % % % % % % % % % % % \n"; | |
| cout << " % 1 % % 2 % % 3 % % 4 % % 5 % % 6 % % 7 % \n"; | |
| cout << " % % % % % % % % % % % % % % \n"; | |
| cout << " %%%%% %%%%% %%%%% %%%%% %%%%% %%%%% %%%%% \n\n"; | |
| break; | |
| case 8 : | |
| cout << " %%%%% %%%%% %%%%% %%%%% %%%%% %%%%% %%%%% %%%%% \n"; | |
| cout << " % % % % % % % % % % % % % % % % \n"; | |
| cout << " % 1 % % 2 % % 3 % % 4 % % 5 % % 6 % % 7 % % 8 % \n"; | |
| cout << " % % % % % % % % % % % % % % % % \n"; | |
| cout << " %%%%% %%%%% %%%%% %%%%% %%%%% %%%%% %%%%% %%%%% \n\n"; | |
| break; | |
| } | |
| int card; | |
| do{ | |
| cout << " Please input card number 1-" << players << " : "; | |
| cin >> card; | |
| cin.ignore(); | |
| }while(card < 1 || card > players); | |
| Avalon player("korn","character",0,0,1,0); | |
| player.roleSet(players); | |
| random_shuffle( player.allCharacter.begin(), player.allCharacter.end()); | |
| player.showRole(); | |
| bot bot1(1,"bot1","character",0,0,0,0); | |
| bot bot2(2,"bot2","character",0,0,0,0); | |
| bot bot3(3,"bot3","character",0,0,0,0); | |
| bot bot4(4,"bot4","character",0,0,0,0); | |
| bot bot5(5,"bot1","character",0,0,0,0); | |
| bot bot6(6,"bot2","character",0,0,0,0); | |
| bot bot7(7,"bot3","character",0,0,0,0); | |
| switch(players){ | |
| case 5: | |
| bot1.character = player.allCharacter[1]; | |
| bot2.character = player.allCharacter[2]; | |
| bot3.character = player.allCharacter[3]; | |
| bot4.character = player.allCharacter[4]; | |
| break; | |
| case 6: | |
| bot1.character = player.allCharacter[1]; | |
| bot2.character = player.allCharacter[2]; | |
| bot3.character = player.allCharacter[3]; | |
| bot4.character = player.allCharacter[4]; | |
| bot5.character = player.allCharacter[5]; | |
| break; | |
| case 7: | |
| bot1.character = player.allCharacter[1]; | |
| bot2.character = player.allCharacter[2]; | |
| bot3.character = player.allCharacter[3]; | |
| bot4.character = player.allCharacter[4]; | |
| bot5.character = player.allCharacter[5]; | |
| bot6.character = player.allCharacter[6]; | |
| break; | |
| case 8: | |
| bot1.character = player.allCharacter[1]; | |
| bot2.character = player.allCharacter[2]; | |
| bot3.character = player.allCharacter[3]; | |
| bot4.character = player.allCharacter[4]; | |
| bot5.character = player.allCharacter[5]; | |
| bot6.character = player.allCharacter[6]; | |
| bot7.character = player.allCharacter[7]; | |
| break; | |
| } | |
| cout << "\n\n Press \"Enter\" to continue...\n "; | |
| cin.get(); | |
| //game play | |
| switch (players){ | |
| case 5 : | |
| cout << "\n\n###################################################################\n\n"; | |
| break; | |
| case 6 : | |
| cout << "\n\n###############################################################################\n\n"; | |
| break; | |
| case 7 : | |
| cout << "\n\n###########################################################################################\n\n"; | |
| break; | |
| case 8 : | |
| cout << "\n\n#######################################################################################################\n\n"; | |
| break; | |
| } | |
| cout << " In this map, there're 5 quests...\n\n\n"; | |
| string Success="Fail!! "; | |
| switch (players){ | |
| case 5 : | |
| cout << " @@@@@ @@@@@ @@@@@ @@@@@ @@@@@ \n"; | |
| cout << " @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ \n"; | |
| cout << " @" <<Success<< "@ @ 2 @ @ 3 @ @ 4 @ @ 5 @ \n"; | |
| cout << " @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ \n"; | |
| cout << " @@@@@ @@@@@ @@@@@ @@@@@ @@@@@ \n\n\n"; | |
| break; | |
| case 6 : | |
| cout << " @@@@@ @@@@@ @@@@@ @@@@@ @@@@@ \n"; | |
| cout << " @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ \n"; | |
| cout << " @ 1 @ @ 2 @ @ 3 @ @ 4 @ @ 5 @ \n"; | |
| cout << " @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ \n"; | |
| cout << " @@@@@ @@@@@ @@@@@ @@@@@ @@@@@ \n\n\n"; | |
| break; | |
| case 7 : | |
| cout << " @@@@@ @@@@@ @@@@@ @@@@@ @@@@@ \n"; | |
| cout << " @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ \n"; | |
| cout << " @ 1 @ @ 2 @ @ 3 @ @ 4 @ @ 5 @ \n"; | |
| cout << " @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ \n"; | |
| cout << " @@@@@ @@@@@ @@@@@ @@@@@ @@@@@ \n\n\n"; | |
| break; | |
| case 8 : | |
| cout << " @@@@@ @@@@@ @@@@@ @@@@@ @@@@@ \n"; | |
| cout << " @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ \n"; | |
| cout << " @ 1 @ @ 2 @ @ 3 @ @ 4 @ @ 5 @ \n"; | |
| cout << " @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ \n"; | |
| cout << " @@@@@ @@@@@ @@@@@ @@@@@ @@@@@ \n\n\n"; | |
| break; | |
| } | |
| /*switch (players){ | |
| case 5 : | |
| cout << " [1] Agree [2] Disagree \n\n\n"; | |
| break; | |
| case 6 : | |
| cout << " [1] Agree [2] Disagree \n\n\n"; | |
| break; | |
| case 7 : | |
| cout << " [1] Agree [2] Disagree \n\n\n"; | |
| break; | |
| case 8 : | |
| cout << " [1] Agree [2] Disagree \n\n\n"; | |
| break; | |
| }*/ | |
| /*switch (players){ | |
| case 5 : | |
| cout << " [1] Success [2] Fail \n\n\n"; | |
| break; | |
| case 6 : | |
| cout << " [1] Success [2] Fail \n\n\n"; | |
| break; | |
| case 7 : | |
| cout << " [1] Success [2] Fail \n\n\n"; | |
| break; | |
| case 8 : | |
| cout << " [1] Success [2] Fail \n\n\n"; | |
| break; | |
| }*/ | |
| /*switch (players){ | |
| case 5 : | |
| cout << " Result:\n"; | |
| break; | |
| case 6 : | |
| cout << " Result:\n"; | |
| break; | |
| case 7 : | |
| cout << " Result:\n"; | |
| break; | |
| case 8 : | |
| cout << " Result:\n"; | |
| break; | |
| }*/ | |
| switch (players){ | |
| case 5 : | |
| cout << " 2 Succes 0 Fail\n\n\n"; | |
| break; | |
| case 6 : | |
| cout << " 2 Succes 0 Fail\n\n\n"; | |
| break; | |
| case 7 : | |
| cout << " 2 Succes 0 Fail\n\n\n"; | |
| break; | |
| case 8 : | |
| cout << " 2 Succes 0 Fail\n\n\n"; | |
| break; | |
| } | |
| cout << " A A A \n"; | |
| cout << " %%%%% \n"; | |
| switch (players){ | |
| case 5 : | |
| cout << " ::::::: >:::::::< >:::::::< ::::::: ::::::: \n"; | |
| cout << " : YOU : >: B-1 :< >: B-2 :< : B-3 : : B-4 : \n"; | |
| cout << " ::::::: >:::::::< >:::::::< ::::::: ::::::: \n\n\n"; | |
| break; | |
| case 6 : | |
| cout << " ::::::: ::::::: ::::::: ::::::: ::::::: ::::::: \n"; | |
| cout << " : YOU : : B-1 : : B-2 : : B-3 : : B-4 : : B-5 : \n"; | |
| cout << " ::::::: ::::::: ::::::: ::::::: ::::::: ::::::: \n\n\n"; | |
| break; | |
| case 7 : | |
| cout << " ::::::: ::::::: ::::::: ::::::: ::::::: ::::::: ::::::: \n"; | |
| cout << " : YOU : : B-1 : : B-2 : : B-3 : : B-4 : : B-5 : : B-6 : \n"; | |
| cout << " ::::::: ::::::: ::::::: ::::::: ::::::: ::::::: ::::::: \n\n\n"; | |
| break; | |
| case 8 : | |
| cout << " ::::::: ::::::: ::::::: ::::::: ::::::: ::::::: ::::::: ::::::: \n"; | |
| cout << " : YOU : : B-1 : : B-2 : : B-3 : : B-4 : : B-5 : : B-6 : : B-7 : \n"; | |
| cout << " ::::::: ::::::: ::::::: ::::::: ::::::: ::::::: ::::::: ::::::: \n\n\n"; | |
| break; | |
| } | |
| do{ | |
| switch (players){ | |
| case 5 : | |
| cout << " Please choose the action \"1\" or \"2\" : "; | |
| break; | |
| case 6 : | |
| cout << " Please choose the action \"1\" or \"2\" : "; | |
| break; | |
| case 7 : | |
| cout << " Please choose the action \"1\" or \"2\" : "; | |
| break; | |
| case 8 : | |
| cout << " Please choose the action \"1\" or \"2\" : "; | |
| break; | |
| } | |
| getline(cin,action); | |
| if(action == "1" || action == "2") break; | |
| }while(true); | |
| switch (players){ | |
| case 5 : | |
| cout << "\n\n\n################################################################### \n"; | |
| cout << "##••-- --••## \n"; | |
| cout << "##••-- YOU WIN --••## \n"; | |
| cout << "##••-- --••## \n"; | |
| cout << "###################################################################\n\n"; | |
| break; | |
| case 6 : | |
| cout << "\n\n\n############################################################################### \n"; | |
| cout << "##••-- --••## \n"; | |
| cout << "##••-- YOU WIN --••## \n"; | |
| cout << "##••-- --••## \n"; | |
| cout << "###############################################################################\n\n"; | |
| break; | |
| case 7 : | |
| cout << "\n\n\n########################################################################################### \n"; | |
| cout << "##••-- --••## \n"; | |
| cout << "##••-- YOU WIN --••## \n"; | |
| cout << "##••-- --••## \n"; | |
| cout << "###########################################################################################\n\n"; | |
| break; | |
| case 8 : | |
| cout << "\n\n\n####################################################################################################### \n"; | |
| cout << "##••-- --••## \n"; | |
| cout << "##••-- YOU WIN --••## \n"; | |
| cout << "##••-- --••## \n"; | |
| cout << "#######################################################################################################\n\n"; | |
| break; | |
| } | |
| /*switch (players){ | |
| case 5 : | |
| cout << "\n\n\n################################################################### \n"; | |
| cout << "##••-- --••## \n"; | |
| cout << "##••-- YOU LOSE! --••## \n"; | |
| cout << "##••-- --••## \n"; | |
| cout << "###################################################################\n\n"; | |
| break; | |
| case 6 : | |
| cout << "\n\n\n############################################################################### \n"; | |
| cout << "##••-- --••## \n"; | |
| cout << "##••-- YOU LOSE! --••## \n"; | |
| cout << "##••-- --••## \n"; | |
| cout << "###############################################################################\n\n"; | |
| break; | |
| case 7 : | |
| cout << "\n\n\n########################################################################################### \n"; | |
| cout << "##••-- --••## \n"; | |
| cout << "##••-- YOU LOSE! --••## \n"; | |
| cout << "##••-- --••## \n"; | |
| cout << "###########################################################################################\n\n"; | |
| break; | |
| case 8 : | |
| cout << "\n\n\n####################################################################################################### \n"; | |
| cout << "##••-- --••## \n"; | |
| cout << "##••-- YOU LOSE! --••## \n"; | |
| cout << "##••-- --••## \n"; | |
| cout << "#######################################################################################################\n\n"; | |
| break; | |
| }*/ | |
| } | |
| //exit | |
| else if(action == "2") cout << "\n • Bye Bye • \n"; | |
| return 0; | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment