void Game::play() { m_tank.display(m_screen); displayStatus(); // score, rows left, level displayPrompt("Press the Enter key to begin playing Imitris!"); waitForEnter(); // [in UserInterface.h] for(;;) { if ( ! playOneLevel()) break; displayPrompt("Good job! Press the Enter key to start next level!"); waitForEnter(); } displayPrompt("Game Over! Press the Enter key to exit!"); waitForEnter(); }
///Controla o modo story void storyMode() { FILE *arq; int lifes; int score; int level; LEVEL_SCENE temple = {GREY,{176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176, 176,176,176,176,176,176,176,178,178,178,178,178,178,176,176,176,176,176,176,176, 176,176,176,176,176,176,176,178,178,176,176,178,178,176,176,176,176,176,176,176, 176,176,176,176,176,176,176,178,178,176,176,178,178,176,176,176,176,176,176,176, 176,176,176,176,176,176,178,178,178,178,178,178,178,178,176,176,176,176,176,176, 176,176,176,176,176,178,178,178,178,178,178,178,178,178,178,176,176,176,176,176, 176,176,176,176,178,178,178,178,178,178,178,178,178,178,178,178,176,176,176,176, 176,176,176,178,178,178,178,178,178,178,178,178,178,178,178,178,178,176,176,176, 176,176,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,176,176, 176,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,176 } }; LEVEL_SCENE desert = {YELLOW,{176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176, 176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176, 176,176,176,176,176,176,176,176,176,176,176,178,178,176,176,176,176,176,176,176, 176,176,176,176,176,176,176,176,176,176,178,178,178,178,176,176,176,176,176,176, 176,176,176,176,176,176,176,176,176,178,178,178,178,178,178,176,176,176,176,176, 176,176,178,178,178,176,176,176,178,178,178,178,178,178,178,178,176,176,176,176, 176,178,178,178,178,178,176,177,177,178,178,178,178,178,178,178,178,176,176,176, 178,178,178,178,178,178,178,178,177,177,177,178,178,178,178,178,178,178,176,176, 178,178,178,178,178,178,178,178,178,177,177,177,178,178,178,178,178,178,178,176, 178,178,178,178,178,178,178,178,178,178,178,177,178,178,178,178,178,178,178,178 } }; LEVEL_SCENE forest = {GREEN,{176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,177, 176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,177, 176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,177,177, 176,176,176,176,176,176,176,176,178,178,176,176,176,176,176,176,178,177,177,177, 176,176,178,177,177,176,176,178,178,178,178,176,176,176,176,178,178,177,177,177, 176,176,178,177,177,177,176,178,178,178,178,176,176,176,176,178,178,178,177,177, 178,178,178,177,177,177,176,178,178,178,178,176,176,176,178,178,178,178,178,178, 178,178,177,177,177,177,176,178,178,178,178,178,176,178,178,178,178,177,178,178, 177,178,177,177,177,177,177,177,178,178,177,177,177,177,177,177,177,177,177,178, 177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177 } }; LEVEL_SCENE sea = {LIGHT_BLUE, {176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176, 176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176, 176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176, 176,176,176,176,178,178,178,176,176,176,176,176,178,178,178,178,176,176,176,176, 176,176,176,178,178,176,178,176,176,176,176,178,178,178,176,178,176,176,176,176, 176,176,178,178,178,176,176,176,176,176,178,178,178,178,176,176,176,176,176,178, 176,178,178,178,178,176,176,176,176,178,178,178,178,178,176,176,176,176,178,178, 178,178,178,178,178,178,176,176,178,178,178,178,178,178,178,176,176,178,178,178, 178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178, 178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178 } }; system("mode con:cols=140 lines=40"); level = 1; score = 0; lifes = 5; do { switch(level) { case 1: printLOBBYdeCONVERSA(GREY); print_lvlART(temple, 35, 0); printHistoryLines(1); playOneLevel(1, 5, 400, temple, &lifes, &score); break; case 2: playOneLevel(2, 10, 300, temple, &lifes, &score); break; case 3: printLOBBYdeCONVERSA(GREY); gotoMapXY(25, 4); textcolor(13); printf("%c", 190); printHistoryLines(2); playOneLevel(3, 20, 250, temple, &lifes, &score); break; case 4: print_lvlART(temple, 35, 0); printLOBBYdeCONVERSA(GREY); gotoMapXY(25, 4); textcolor(PINK); printf("%c", 190); //printa personagem da história printHistoryLines(3); fadeOUT(10, 30, GREY, 1); printLOBBYdeCONVERSA(YELLOW); printHistoryLines(4); playOneLevel(4, 25, 200, desert, &lifes, &score); break; case 5: playOneLevel(5, 30, 200, desert, &lifes, &score); break; case 6: playOneLevel(6, 30, 150, desert, &lifes, &score); break; case 7: printHistoryLines(5); printLOBBYdeCONVERSA(GREEN); printHistoryLines(6); playOneLevel(7, 35, 150, forest, &lifes, &score); break; case 8: playOneLevel(8, 40, 150, forest, &lifes, &score); break; case 9: playOneLevel(9, 40, 100, forest, &lifes, &score); break; case 10: printHistoryLines(7); printLOBBYdeCONVERSA(LIGHT_BLUE); printHistoryLines(8); playOneLevel(10, 50, 100, sea, &lifes, &score); break; case 11: playOneLevel(11, 50, 100, sea, &lifes, &score); break; case 12: playOneLevel(12, 55, 90, sea, &lifes, &score); printHistoryLines(9); break; case 13: printHistoryLines(10); playOneLevel(13, 60, 80, temple, &lifes, &score); break; } if(lifes > 0) { level++; //passa de fase lifes++; //ganha uma vida } else if(lifes == 0) { printGameOver(); } } while(lifes>0 && level <= 13); if(lifes > 0) { puts("\nYOU JUST WON THIS GAME, WOW!(You problably lost an expressive time of your life, or no)"); puts("Now, check out these cheat codes:"); puts("katiau\nbanban\nfofao"); getch(); //pausa system("cls"); } arq = fopen("highscore.bin", "rb+"); //Abre arquivo de highscore, informando caso de erro if(arq == NULL) printf("error"); uptadeHighScore(score, arq); //Insere score no rank }