Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <conio.h>
- #include <windows.h>
- #include <string>
- #include <cstdlib>
- #include <ctime>
- #include <time.h>
- using namespace std;
- class hangMan{
- public:
- int playerNumb;
- int pickCat;
- void PickCategory();
- void PickPlayer();
- int emulateImage(int numb);
- int mainMenu();
- int Play();
- int GuessWord(char guess,string realwords, string &guesswords);
- string ChooseCat();
- };
- void hangMan::PickPlayer(){
- cout << "Please select number of player : " << endl;
- cout << "(1). One Player" << endl;
- cout << "(2). Two Player" <<endl;
- cin >> playerNumb;
- }
- void hangMan::PickCategory(){
- cout << "Select Category : " << endl;
- cout << "(1). Country : " << endl;
- cout << "(2). State in Malaysia : " << endl;
- cout << "(3). District in Johor : " << endl;
- cin >> pickCat;
- }
- string hangMan::ChooseCat(){
- //srand(time(NULL));
- int n = rand()%((10+1)-1) + 1;
- //int n = rand() % (10-1 + 1) + 1;
- int cat = pickCat;
- string country[] = {
- "Malaysia",
- "Indonesia",
- "Singapore",
- "Brunei",
- "Thailand",
- "Israel",
- "Africa",
- "Nigeria",
- "Korea",
- "Sunda"
- };
- string state[] = {
- "Johor",
- "Kedah",
- "Sabah",
- "Sarawak",
- "Kelantan",
- "Terengganu",
- "Perak",
- "Melaka",
- "Penang",
- "Kedah"
- };
- string district[] = {
- "Kluang",
- "Batu Pahat",
- "Kota Tinggi",
- "Skudai",
- "Kulai",
- "Pontian",
- "Johor Bahru",
- "Segamat",
- "Mersing",
- "Muar"
- };
- if(cat == 1) {return country[n];}
- else if(cat == 2) {return state[n];}
- else if(cat == 3) {return district[n];}
- }
- int hangMan::GuessWord(char guess,string realwords,string &guesswords){
- int i = 0;
- int matches = 0;
- int count = realwords.length();
- for(i = 0; i < count; i++){
- if(guess == guesswords[i]) {return 0;}
- if(guess == realwords[i]){
- guesswords[i] = guess;
- matches++;
- }
- }
- return matches;
- }
- int hangMan::emulateImage(int numb){
- //Atas
- cout << "+---------------------------------+" << endl;
- cout << "| HANG MAN |" << endl;
- cout << "+---------------------------------+" << endl;
- cout << "| | |" << endl;
- if(numb == 4) {
- cout << "| O |" << endl;
- }
- if(numb == 3){
- cout << "| | |" << endl;
- cout << "| O |" << endl;
- }
- if(numb == 2) {
- cout << "| | |" << endl;
- cout << "| | |" << endl;
- cout << "| O |" << endl;
- }
- if(numb == 1){
- cout << "| | |" << endl;
- cout << "| | |" << endl;
- cout << "| | |" << endl;
- cout << "| O |" << endl;
- }
- if(numb == 0){
- cout << "| | |" << endl;
- cout << "| | |" << endl;
- cout << "| | |" << endl;
- cout << "| X |" << endl;
- }
- cout << "| /|\\ |" << endl;
- cout << "| | |" << endl;
- cout << "| / \\ |" << endl;
- cout << "| +----------+ |" << endl;
- cout << "| | | |" << endl;
- cout << "+---------------------------------+" << endl;
- cout << "| Guess the word |" << endl;
- cout << "+---------------------------------+" << endl;
- }
- int hangMan::mainMenu(){
- cout << "+---------------------------------+" << endl;
- cout << "| HANG MAN |" << endl;
- cout << "+---------------------------------+" << endl << endl<< endl;
- }
- int hangMan::Play(){
- int tengokPlayer = playerNumb,convArr;
- char letter;
- string wordslala = ChooseCat();
- int win = 0;
- int counter,salah = 0;
- int multiplePlayer[2][2],mCounter = 1,nowPlaying;
- //
- //8 kali loop , 2 player
- if(tengokPlayer == 1 ) { counter = 4; } else if(tengokPlayer == 2) { counter = 8; }
- if(counter == 4){
- string unknown(wordslala.length(),'*');
- int bilHuruf = wordslala.length();
- int bil = 0;
- while(salah < counter){
- cout << "Your Words to guess : " << unknown << endl;
- cout << "Input Letter : ";
- cin >> letter;
- cout << endl;
- system("CLS");
- if (GuessWord(letter, wordslala, unknown)==0) {
- salah++;
- emulateImage(counter-salah);
- cout << endl << "Whoops! That letter isn't in there!" << endl;
- cout << "You have " << counter - salah << " try !" << endl;
- }
- else { emulateImage(counter-salah); cout << "You've found a letter" << endl; bil++;}
- if(bilHuruf == bil){
- win = 1;break;
- }
- }
- cout << "The words is " << wordslala << endl;
- if(win == 1) {cout << "You Win !" << endl;}
- }else if(counter == 8){
- int mark1 = 0,mark2 = 0;
- int win;
- //Player 1 Declare
- multiplePlayer[0][0] = 1;
- multiplePlayer[0][1] = 4;
- //Player 2 Declare
- multiplePlayer[1][0] = 2;
- multiplePlayer[1][1] = 4;
- nowPlaying = multiplePlayer[0][0];
- string unknown(wordslala.length(),'*');
- string secretWords1 = unknown;
- string secretWords2 = unknown;
- int bilHurufMulti = wordslala.length();
- int betulSatu = 0;
- int betulDua = 0;
- while(true){
- mCounter++;
- //Check boleh masuk game ke tidak player 1 dan 2
- //index 0 , tentukan player
- //index 1 , berapa kali try
- if(nowPlaying == 1){
- //Check Boleh Main Tak
- if(multiplePlayer[0][1] != 0){
- cout << endl << "Player 1 " << endl;
- cout << "Your Words to Guess : " << secretWords1 << endl;
- cout << "Input letter : ";
- cin >> letter;
- cout << endl;
- system("CLS");
- if (GuessWord(letter, wordslala, secretWords1)==0) {
- multiplePlayer[0][1]--;
- convArr = multiplePlayer[0][1];
- emulateImage(convArr);
- cout << endl << "Whoops! That letter isn't in there!" << endl;
- cout << "You have " << multiplePlayer[0][1]<< " try left" << endl;
- system("pause"); system("cls");
- }
- else {
- ++mark1;
- betulSatu++;
- emulateImage(multiplePlayer[0][1]);
- cout << "Player 1" << betulSatu << bilHurufMulti << endl;
- cout << "You've found a letter ";
- cout << secretWords1 << endl;
- system("pause"); system("cls");}
- nowPlaying = 2;
- }
- nowPlaying = 2;
- // if(multiplePlayer[0][1] == 0) {win = 2; break;}
- }
- if(nowPlaying == 2){
- //Check Boleh Main Tak
- if(multiplePlayer[1][1] != 0){
- cout << endl << "Player 2 " << endl;
- cout << "Your Words to Guess : " << secretWords1 << endl;
- cout << "Input letter : ";
- cin >> letter;
- cout << endl;
- system("CLS");
- if (GuessWord(letter, wordslala, secretWords1)==0) {
- multiplePlayer[1][1]--;
- convArr = multiplePlayer[1][1];
- emulateImage(convArr);
- cout << endl << "Whoops! That letter isn't in there!" << endl;
- cout << "You have " << multiplePlayer[1][1] << " try left" << endl;
- system("pause"); system("cls");
- }
- else {
- ++mark2;
- betulDua++;
- emulateImage(multiplePlayer[1][1]);
- cout << "Player 2" << endl;
- cout << "You've found a letter ";
- cout << secretWords1 << endl;
- system("pause");
- system("cls"); }
- nowPlaying = 1;
- }
- nowPlaying = 1;
- //if(multiplePlayer[1][1] == 0) {win = 1; break;}
- }
- //Kalau dua2 0
- if((multiplePlayer[0][1] == 0) && (multiplePlayer[1][1] == 0)){
- break;
- }
- int totalBetul = betulSatu + betulDua;
- if(bilHurufMulti == betulSatu) { break;}
- if(bilHurufMulti == betulDua) { break; }
- if(totalBetul == bilHurufMulti) { break; }
- }
- //Check Winner
- if(mark1 > mark2){
- cout << "Player 1 Win" << endl;
- cout << "The words is " << wordslala << endl;
- }
- else if(mark2 > mark1){
- cout << "Player 2 Win" << endl;
- cout << "The words is " << wordslala << endl;
- }else if(mark1 == mark2){
- cout << "Draw Game" << endl;
- cout << "The words is " << wordslala << endl;
- }
- }
- }
- int main(){
- hangMan play;
- play.mainMenu();
- play.PickPlayer();
- system("CLS");
- play.mainMenu();
- play.PickCategory();
- play.ChooseCat();
- system("CLS");
- play.Play();
- }
Advertisement
Add Comment
Please, Sign In to add comment