Created
April 24, 2018 10:12
-
-
Save Thanatossan/a7706540bf1b694541ec3a78a6998aef to your computer and use it in GitHub Desktop.
This file contains 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