Skip to content

Instantly share code, notes, and snippets.

@Thanatossan
Created April 24, 2018 10:12
Show Gist options
  • Save Thanatossan/a7706540bf1b694541ec3a78a6998aef to your computer and use it in GitHub Desktop.
Save Thanatossan/a7706540bf1b694541ec3a78a6998aef to your computer and use it in GitHub Desktop.
#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