944,091 Members | Top Members by Rank

Ad:
  • C++ Code Snippet
  • Views: 4445
  • C++ RSS
0

Neat Text-Based RPG C++ Console v.1

by on Oct 28th, 2009
Pretty neat text-based RPG that I made. Currently my first game.
Last edited by restrictment; Oct 28th, 2009 at 11:05 pm.
C++ Code Snippet (Toggle Plain Text)
  1. #include <stdlib.h>
  2. #include <time.h>
  3. #include <iostream>
  4. #include <fstream>
  5. #include <string>
  6. #include <windows.h>
  7. //used to maximize screen
  8. #pragma comment(lib,"kernel32.lib")
  9. #pragma comment(lib,"user32.lib")
  10.  
  11. using namespace std;
  12.  
  13. int main()
  14. {
  15. //tells screen to maximize
  16. HWND hWnd = GetConsoleWindow();
  17. ShowWindow(hWnd,SW_MAXIMIZE);
  18. cout << "********************************************************************************";
  19. cout << "****************************** ***************** *******************************";
  20. cout << "**************************** ******************* ****************************";
  21. cout << "************************* ************************ *************************";
  22. cout << "********************** **************************** **********************";
  23. cout << "******************** ****************************** *******************";
  24. cout << "****************** ******************************** ****************";
  25. cout << "**************** ****** ** * * * ****** **************";
  26. cout << "************** ******* ** * *** * * * * * * ******* ************";
  27. cout << "************* ******* *** * ** * * * * * * ******** ***********";
  28. cout << "************ ******* *** * *** * * * * * * ******** ***********";
  29. cout << "*********** ******* ** * *** * * * * * * ******** **********";
  30. cout << "*********** ****** ** * *** * * * ******* **********";
  31. cout << "*********** * ********************************** * **********";
  32. cout << "*********** ** * ****************************** * ** ***********";
  33. cout << "************ ** * ***************************** ** ** ***********";
  34. cout << "************* * *** ** ******************************* ******* * ************";
  35. cout << "********************************************************************************";
  36. cout << "********************************************************************************";
  37. cout << "************************* *************************** *******************";
  38. cout << "**************************** *********************** **********************";
  39. cout << "******************************* ******************** ************************";
  40. cout << "********************************* ****************** **************************";
  41. cout << "******************** ************* **************** ************* **************";
  42. cout << "********************* ********** ************** ********** ***************";
  43. cout << "********************* ******* ************ ******* ***************";
  44. cout << "******************** ********** ********** ********** **************";
  45. cout << "******************** ****** **** ******** ***** ****** **************";
  46. cout << "********************* **** *************** **** ***************";
  47. cout << "*********************** ************* ******************";
  48. cout << "************************************ ********** ******************************";
  49. cout << "********************************************************************************";
  50. cout << "********************************************************************************";
  51. cout << "********************************************************************************";
  52. cout << "******************************* ********************** *************************";
  53. cout << "********************************* ****************** ****** ********************";
  54. cout << "************************** ******* **************** ******** *******************";
  55. cout << "************************* *** **** ************** ***** *** ******************";
  56. cout << "**************************** ********************* *********************";
  57. cout << "****************************** ******************* ***********************";
  58. cout << "****************** ************ ***************** *************************";
  59. cout << "***************** * ************ ***************** ************ *************";
  60. cout << "************** * *** ************* *************** ************* * * **********";
  61. cout << "*************** ***** ***** ********************************** *** **********";
  62. cout << "*************** ******* *** * ********************* ********** **** ***********";
  63. cout << "************************ * *** ******************* ********* *****************";
  64. cout << "************************* ***** ************ **** * ******* ******************";
  65. cout << "************************* ******* ********** * ** *** ***** *******************";
  66. cout << "************************* ******** ***** ** *** ***** *** ********************";
  67. cout << "*********************************** *** * **** ******** * *********************";
  68. cout << "************************************ * * *************** **********************";
  69. cout << "************************************* *** **************************************";
  70. cout << "************************************* ******************************************";
  71. cout << "********************************************************************************";
  72. cout << "********************************************************************************";
  73. cout << "********************************************************************************";
  74. cout << "********************************************************************************";
  75. cout << "********************************************************************************";
  76. Beep(300,100);
  77. Beep(100,100);
  78. Beep(300,100);
  79. Beep(100,300);
  80. Beep(300,100);
  81. Beep(150,100);
  82. Beep(300,100);
  83. Beep(100,100);
  84. Beep(300,100);
  85. Beep(150,300);
  86. Beep(350,100);
  87. Beep(200,100);
  88. Beep(250,100);
  89. Beep(150,100);
  90. Beep(350,100);
  91. Beep(200,300);
  92. Beep(300,100);
  93. Beep(200,100);
  94. Beep(300,100);
  95. Beep(150,100);
  96. Beep(300,100);
  97. Beep(120,300);
  98. Beep(300,100);
  99. Beep(190,100);
  100. Beep(300,100);
  101. Beep(140,100);
  102. Beep(300,100);
  103. Beep(170,300);
  104. Beep(360,100);
  105. Beep(130,100);
  106. Beep(300,100);
  107. Beep(120,100);
  108. Beep(300,100);
  109. Beep(190,300);
  110. Beep(300,100);
  111. Beep(150,100);
  112. Beep(300,100);
  113. Beep(150,100);
  114. Beep(300,100);
  115. Beep(100,300);
  116. Beep(150,200);
  117. Beep(200,200);
  118. Beep(250,300);
  119.  
  120. system("cls");
  121.  
  122. int person, opponent, atk, asuccess, msuccess, game = 1, counter1=1, level = 1, atr, a, b, c = 0, d, decision, item;
  123. //opponent
  124. int attackop, defenseop, speedop, healthop = 100, opac, expo = 0, moneyo = 0;
  125. //user
  126. int magicus, attackus, defenseus, speedus, healthus = 100, exp = 0, money = 0, levelup = 200;
  127.  
  128. //names
  129. string nameus, nameop;
  130. char exit;
  131. //classes
  132. int healus = 0;
  133. do{
  134. cout << "(1)\n***************\nThe Wizard:\n attack - 30\n defense - 40\n magic - 60\n speed - 60\n***************" << endl << endl;
  135. cout << "(2)\n***************\nThe Knight:\n attack - 50\n defense - 75\n magic - 40\n speed - 30\n***************" << endl << endl;
  136. cout << "(3)\n***************\nThe Berzerker:\n attack - 60\n defense - 50\n magic - 30\n speed - 50\n***************" << endl << endl;
  137. cout << "(4)\n***************\nThe Banshee:\n attack - 40\n defense - 40\n magic - 50\n speed - 65\n***************" << endl << endl;
  138. cout << "(5)\n***************\nThe Goblin:\n attack - 60\n defense - 65\n magic - 30\n speed - 40\n***************" << endl << endl;
  139. cout << "(6)\n***************\nThe Demon:\n attack - 65\n defense - 70\n magic - 25\n speed - 30\n***************" << endl << endl;
  140. cout << "Which Class would you like to be?: ";
  141. cin >> person;
  142. if((person > 6)&&(person != 666))
  143. {
  144. system("cls");
  145. cout << "You must enter an integer between 1 and 6!!!!\n\n";
  146. system("pause");
  147. system("cls");
  148. }
  149. if(person == 666)
  150. {
  151. system("cls");
  152. cout << "Muahahahaha!! You have unleashed Satan!!!";
  153. cout << "\n***************\nSatan:\n attack - 100\n defense - 100\n magic - 100\n speed - 100\n***************" << endl << endl;
  154. Beep(300,200);
  155. Sleep(100);
  156. Beep(200,200);
  157. Sleep(100);
  158. Beep(100,200);
  159. Sleep(100);
  160. Beep(100,100);
  161. Beep(125,50);
  162. Beep(150,50);
  163. Beep(125,50);
  164. Beep(100,200);
  165. system("pause");
  166. system("cls");
  167. }
  168. }while((person > 6)&&(person != 666));
  169. //information for user
  170. switch(person)
  171. {
  172. case 1:
  173. attackus = 30, defenseus = 40, magicus = 60, speedus = 60, nameus = "Wizard";
  174. break;
  175. case 2:
  176. attackus = 50, defenseus = 60, magicus = 40, speedus = 40, nameus = "Knight";
  177. break;
  178. case 3:
  179. attackus = 60, defenseus = 50, magicus = 30, speedus = 50, nameus = "Berzerker";
  180. break;
  181. case 4:
  182. attackus = 40, defenseus = 40, magicus = 50, speedus = 65, nameus = "Banshee";
  183. break;
  184. case 5:
  185. attackus = 60, defenseus = 65, magicus = 30, speedus = 40, nameus = "Goblin";
  186. break;
  187. case 6:
  188. attackus = 65, defenseus = 70, magicus = 30, speedus = 25, nameus = "Demon";
  189. break;
  190. case 666:
  191. attackus = 100, defenseus = 100, magicus = 100, speedus = 100, nameus = "Satan";
  192. break;
  193. default:
  194. cout << "No One";
  195. }
  196. do{
  197. do{
  198. system("cls");
  199. cout << "Hello, " << nameus << ", what would you like to do?\n\n";
  200. cout << "(1)\n**********\nGo to the Arena\n**********\n\n";
  201. cout << "(2)\n**********\nGo to the Armory\n**********\n:";
  202. cin >> decision;
  203. switch(decision)
  204. {
  205. case 1:
  206. int random3, random4, random5;
  207. srand ((unsigned)time(0));
  208. random3 = (rand() % 4) + 1;
  209. random4 = (rand() % 4) + 1;
  210. random5 = (rand() % 4) + 1;
  211. if(healthop == 0)
  212. healthop = 100;
  213. system("cls");
  214. do{
  215. cout << "Welcome to the arena, " << nameus << ", which opponent would you like to face?" << endl;
  216. d = (level * -1);
  217. switch(random3)
  218. {
  219. case 1:
  220. if(level <= 1)
  221. {
  222. cout << "(" << d + 2 << ")\n***************\nThe Tree(lvl 1):\n attack - 0\n defense - 20\n speed - 0\n***************\n";
  223. cout << endl;
  224. }
  225. break;
  226. case 2:
  227. if(level <= 1)
  228. {
  229. cout << "(" << d + 2 << ")\n***************\nThe Rock(lvl 1):\n attack - 0\n defense - 30\n speed - 0\n***************\n";
  230. cout << endl;
  231. }
  232. break;
  233. case 3:
  234. if(level <= 1)
  235. {
  236. cout << "(" << d + 2 << ")\n***************\nThe Computer(lvl 1):\n attack - 0\n defense - 10\n speed - 0\n***************\n";
  237. cout << endl;
  238. }
  239. break;
  240. case 4:
  241. if(level <= 1)
  242. {
  243. cout << "(" << d + 2 << ")\n***************\nThe Book(lvl 1):\n attack - 0\n defense - 5\n speed - 0\n***************\n";
  244. cout << endl;
  245. }
  246. break;
  247. default:
  248. cout << "Can't Happen";
  249. }
  250. switch(random4)
  251. {
  252. case 1:
  253. if(level <= 2)
  254. {
  255. cout << "(" << d + 3 << ")\n***************\nThe Rat(lvl 2):\n attack - 30\n defense - 20\n speed - 30\n***************\n";
  256. cout << endl;
  257. }
  258. break;
  259. case 2:
  260. if(level <= 2)
  261. {
  262. cout << "(" << d + 3 << ")\n***************\nThe Cat(lvl 2):\n attack - 40\n defense - 20\n speed - 30\n***************\n";
  263. cout << endl;
  264. }
  265. break;
  266. case 3:
  267. if(level <= 2)
  268. {
  269. cout << "(" << d + 3 << ")\n***************\nThe Dog(lvl 2):\n attack - 45\n defense - 25\n speed - 30\n***************\n";
  270. cout << endl;
  271. }
  272. break;
  273. case 4:
  274. if(level <= 2)
  275. {
  276. cout << "(" << d + 3 << ")\n***************\nThe Bat(lvl 2):\n attack - 30\n defense - 20\n speed - 35\n***************\n";
  277. cout << endl;
  278. }
  279. break;
  280. default:
  281. cout << "Can't Happen";
  282. }
  283. switch(random5)
  284. {
  285. case 1:
  286. if(level <= 3)
  287. {
  288. cout<< "(" << d + 4 << ")\n***************\nThe Mage(lvl 3):\n attack - 65\n defense - 35\n speed - 45\n***************\n";
  289. cout << endl;
  290. }
  291. break;
  292. case 2:
  293. if(level <= 3)
  294. {
  295. cout<< "(" << d + 4 << ")\n***************\nThe Jackal(lvl 3):\n attack - 60\n defense - 50\n speed - 50\n***************\n";
  296. cout << endl;
  297. }
  298. break;
  299. case 3:
  300. if(level <= 3)
  301. {
  302. cout<< "(" << d + 4 << ")\n***************\nThe Crusader(lvl 3):\n attack - 65\n defense - 55\n speed - 45\n***************\n";
  303. cout << endl;
  304. }
  305. break;
  306. case 4:
  307. if(level <= 3)
  308. {
  309. cout<< "(" << d + 4 << ")\n***************\nThe Wolf(lvl 3):\n attack - 55\n defense - 45\n speed - 55\n***************\n";
  310. cout << endl;
  311. }
  312. break;
  313. default:
  314. cout << "Can't Happen";
  315. }
  316. switch(random3)
  317. {
  318. case 1:
  319. if((level <= 4)&&(level >= 2))
  320. {
  321. cout<< "(" << d + 5 << ")\n***************\nThe Assassin(lvl 4):\n attack - 75\n defense - 35\n speed - 55\n***************\n";
  322. cout << endl;
  323. }
  324. break;
  325. case 2:
  326. if((level <= 4)&&(level >= 2))
  327. {
  328. cout<< "(" << d + 5 << ")\n***************\nThe Pacman(lvl 4):\n attack - 65\n defense - 30\n speed - 60\n***************\n";
  329. cout << endl;
  330. }
  331. break;
  332. case 3:
  333. if((level <= 4)&&(level >= 2))
  334. {
  335. cout<< "(" << d + 5 << ")\n***************\nThe Man Eating Bunny(lvl 4):\n attack - 75\n defense - 35\n speed - 55\n***************\n";
  336. cout << endl;
  337. }
  338. break;
  339. case 4:
  340. if((level <= 4)&&(level >= 2))
  341. {
  342. cout<< "(" << d + 5 << ")\n***************\nThe Warlock(lvl 4):\n attack - 70\n defense - 40\n speed - 50\n***************\n";
  343. cout << endl;
  344. }
  345. break;
  346. default:
  347. cout << "Can't Happen";
  348. }
  349. switch(random4)
  350. {
  351. case 1:
  352. if((level <= 5)&&(level >= 3))
  353. {
  354. cout<< "(" << d + 6 << ")\n***************\nPoseidon(lvl 5):\n attack - 80\n defense - 45\n speed - 45\n***************\n";
  355. cout << endl;
  356. }
  357. break;
  358. case 2:
  359. if((level <= 5)&&(level >= 3))
  360. {
  361. cout<< "(" << d + 6 << ")\n***************\nMinitaur(lvl 5):\n attack - 65\n defense - 55\n speed - 50\n***************\n";
  362. cout << endl;
  363. }
  364. break;
  365. case 3:
  366. if((level <= 5)&&(level >= 3))
  367. {
  368. cout<< "(" << d + 6 << ")\n***************\nThe Cyclops(lvl 5):\n attack - 75\n defense - 45\n speed - 50\n***************\n";
  369. cout << endl;
  370. }
  371. break;
  372. case 4:
  373. if((level <= 5)&&(level >= 3))
  374. {
  375. cout<< "(" << d + 6 << ")\n***************\nThe Dragon(lvl 5):\n attack - 80\n defense - 55\n speed - 30\n***************\n";
  376. cout << endl;
  377. }
  378. break;
  379. default:
  380. cout << "Can't Happen";
  381. }
  382. switch(random4)
  383. {
  384. case 1:
  385. if((level <= 6)&&(level >= 4))
  386. {
  387. cout<< "(" << d + 7 << ")\n***************\nAthena(lvl 6):\n attack - 85\n defense - 55\n speed - 60\n***************\n";
  388. cout << endl;
  389. }
  390. break;
  391. case 2:
  392. if((level <= 6)&&(level >= 4))
  393. {
  394. cout<< "(" << d + 7 << ")\n***************\nZeus(lvl 6):\n attack - 90\n defense - 65\n speed - 55\n***************\n";
  395. cout << endl;
  396. }
  397. break;
  398. case 3:
  399. if((level <= 6)&&(level >= 4))
  400. {
  401. cout<< "(" << d + 7 << ")\n***************\nHades(lvl 6):\n attack - 75\n defense - 70\n speed - 50\n***************\n";
  402. cout << endl;
  403. }
  404. break;
  405. case 4:
  406. if((level <= 6)&&(level >= 4))
  407. {
  408. cout<< "(" << d + 7 << ")\n***************\nOsiris(lvl 6):\n attack - 70\n defense - 60\n speed - 55\n***************\n";
  409. cout << endl;
  410. }
  411. break;
  412. default:
  413. cout << "Can't Happen";
  414. }
  415. if((level <= 99)&&(level >= 5))
  416. {
  417. cout<< "(" << d + 8 << ")\n***************\nGod(lvl ?):\n attack - ??\n defense - ??\n speed - ??\n***************\n";
  418. cout << endl;
  419. }
  420. cout << ":";
  421. cin >> opponent;
  422. if((opponent > 3)||(opponent < 1))
  423. {
  424. system("cls");
  425. cout << "You must enter an integer between 1 and 3!!!!\n\n";
  426. system("pause");
  427. system("cls");
  428. }
  429. }while((opponent > 3)||(opponent < 1));
  430. system("cls");
  431. opponent = opponent + c;
  432. switch(opponent)
  433. {
  434. case 1:
  435. switch(random3)
  436. {
  437. case 1:
  438. attackop = 0, defenseop = 20, speedop = 0, nameop = "Tree", expo = 40, moneyo = 20;
  439. break;
  440. case 2:
  441. attackop = 0, defenseop = 30, speedop = 0, nameop = "Rock", expo = 60, moneyo = 30;
  442. break;
  443. case 3:
  444. attackop = 0, defenseop = 10, speedop = 0, nameop = "Computer", expo = 20, moneyo = 10;
  445. break;
  446. case 4:
  447. attackop = 0, defenseop = 5, speedop = 0, nameop = "Book", expo = 10, moneyo = 5;
  448. break;
  449. }
  450. break;
  451. case 2:
  452. switch(random4)
  453. {
  454. case 1:
  455. attackop = 30, defenseop = 20, speedop = 30, nameop = "Rat", expo = 160, moneyo = 80;
  456. break;
  457. case 2:
  458. attackop = 40, defenseop = 20, speedop = 30, nameop = "Cat", expo = 180, moneyo = 90;
  459. break;
  460. case 3:
  461. attackop = 45, defenseop = 25, speedop = 30, nameop = "Dog", expo = 200, moneyo = 100;
  462. break;
  463. case 4:
  464. attackop = 35, defenseop = 20, speedop = 35, nameop = "Bat", expo = 180, moneyo = 90;
  465. break;
  466. }
  467. break;
  468. case 3:
  469. switch(random5)
  470. {
  471. case 1:
  472. attackop = 65, defenseop = 35, speedop = 45, nameop = "Mage", expo = 290, moneyo = 145;
  473. break;
  474. case 2:
  475. attackop = 60, defenseop = 50, speedop = 50, nameop = "Jackel", expo = 320, moneyo = 160;
  476. break;
  477. case 3:
  478. attackop = 65, defenseop = 55, speedop = 45, nameop = "Crusader", expo = 330, moneyo = 165;
  479. break;
  480. case 4:
  481. attackop = 55, defenseop = 45, speedop = 55, nameop = "Wolf", expo = 310, moneyo = 155;
  482. break;
  483. }
  484. break;
  485. case 4:
  486. switch(random3)
  487. {
  488. case 1:
  489. attackop = 85, defenseop = 35, speedop = 65, nameop = "Assassin", expo = 330, moneyo = 165;
  490. break;
  491. case 2:
  492. attackop = 75, defenseop = 30, speedop = 70, nameop = "Pacman", expo = 310, moneyo = 155;
  493. break;
  494. case 3:
  495. attackop = 85, defenseop = 35, speedop = 85, nameop = "Man Eating Bunny", expo = 330, moneyo = 165;
  496. break;
  497. case 4:
  498. attackop = 80, defenseop = 40, speedop = 60, nameop = "Warlock", expo = 320, moneyo = 160;
  499. break;
  500. }
  501.  
  502. break;
  503. case 5:
  504. switch(random4)
  505. {
  506. case 1:
  507. attackop = 90, defenseop = 45, speedop = 55, nameop = "Poseidon", expo = 340, moneyo = 170;
  508. break;
  509. case 2:
  510. attackop = 80, defenseop = 55, speedop = 60, nameop = "Minitaur", expo = 350, moneyo = 175;
  511. break;
  512. case 3:
  513. attackop = 85, defenseop = 45, speedop = 70, nameop = "Cyclops", expo = 340, moneyo = 170;
  514. break;
  515. case 4:
  516. attackop = 90, defenseop = 55, speedop = 45, nameop = "Dragon", expo = 340, moneyo = 170;
  517. break;
  518. }
  519. break;
  520. case 6:
  521. switch(random5)
  522. {
  523. case 1:
  524. attackop = 105, defenseop = 55, speedop = 70, nameop = "Athena", expo = 400, moneyo = 200;
  525. break;
  526. case 2:
  527. attackop = 110, defenseop = 65, speedop = 65, nameop = "Zeus", expo = 420, moneyo = 210;
  528. break;
  529. case 3:
  530. attackop = 95, defenseop = 70, speedop = 60, nameop = "Hades", expo = 390, moneyo = 195;
  531. break;
  532. case 4:
  533. attackop = 90, defenseop = 60, speedop = 65, nameop = "Osiris", expo = 370, moneyo = 185;
  534. break;
  535. }
  536. break;
  537. case 7:
  538. attackop = 110, defenseop = 90, speedop = 80, nameop = "God";
  539. break;
  540. default:
  541. cout << "No One";
  542. }
  543. //success rate
  544. asuccess = speedus - defenseop + 50;
  545. msuccess = speedus - defenseop + 50;
  546. cout << "First Round is: " << nameus << " vs. " << nameop << "!!!";
  547. if(opponent != 7)
  548. Sleep(1000);
  549. if(opponent == 7)
  550. {
  551. Beep(350,200);
  552. Beep(300,300);
  553. Beep(400,200);
  554. Beep(350,250);
  555. Beep(400,400);
  556. Beep(450,600);
  557. }
  558. //amount of damage dealt
  559. a = attackus - defenseop;
  560. b = magicus - defenseop;
  561. opac = 100 - defenseus;
  562. attackop = attackop - defenseus;
  563. if (attackop < 0)
  564. attackop = 0;
  565. else
  566. attackop = attackop;
  567. do{
  568. //Random Number Generator
  569. int random, random2;
  570. random = rand() % 100;
  571. random2 = rand() % 100;
  572.  
  573.  
  574. system("CLS");
  575.  
  576. //limitation
  577. if(asuccess > 100)
  578. asuccess = 100;
  579. else
  580. asuccess = asuccess;
  581. if(msuccess > 100)
  582. msuccess = 100;
  583. else
  584. msuccess = msuccess;
  585.  
  586. //options
  587. do{
  588. if((random < 80)&&(random > 75))
  589. {
  590. system("cls");
  591. cout << "Incredible..a mythical sword has fallen from the sky and into your fist.\nYour attack has rose an additional 5 points!\n(only used on THIS round.)\n\n";
  592. a = a + 5;
  593. system("pause");
  594. system("cls");
  595. }
  596. if((random < 76)&&(random > 70))
  597. {
  598. system("cls");
  599. cout << "You have just returned from the shoe store, with sneakers faster than lightning!\nYour Speed rose an additional 5 points!\n(only used on THIS round.)\n\n";
  600. asuccess = asuccess + 5;
  601. msuccess = msuccess + 5;
  602. system("pause");
  603. system("cls");
  604. }
  605. if((random < 71)&&(random > 65))
  606. {
  607. system("cls");
  608. cout << "An ancient wizard visited you in your sleep, and gave you a new spell.\nYour magic has rose an additional 5 points!\n(only used on THIS round.)\n\n";
  609. b = b + 5;
  610. system("pause");
  611. system("cls");
  612. }
  613. if((random < 66)&&(random > 60))
  614. {
  615. system("cls");
  616. cout << "Athena has just granted you a new sheild!\nYour defense has rose an additional 5 points!\n(only used on THIS round.)\n\n";
  617. opac = opac - 5;
  618. system("pause");
  619. system("cls");
  620. }
  621. healus = attackop -5;
  622. if(healus <= 0)
  623. healus = 10;
  624. cout << "What would you like to use?\n\n"
  625. << "(1)\n***************\nattack: " << asuccess << "% chance of success\n***************\n\n"
  626. << "(2)\n***************\nmagic: " << msuccess << "% chance of success\n***************\n\n"
  627. << "(3)\n***************\nheal + " << healus << "hp\n***************\n\n";
  628. cout << ": ";
  629. cin >> atk;
  630. if(atk > 3)
  631. {
  632. system("cls");
  633. cout << "You MUST enter a number between 1 and 3!!!\n\n";
  634. system("pause");
  635. system("cls");
  636. }
  637. }while(atk > 3);
  638. system("CLS");
  639. cout << "Calculating results";
  640. for(int counter = 0; counter <= 6; counter++)
  641. {
  642. Sleep(00);
  643. cout << ".";
  644. }
  645. system("CLS");
  646. switch(atk)
  647. {
  648. case 1:
  649. if(random<=asuccess)
  650. {
  651. if(random<=10)
  652. {
  653. cout << "CRITICAL!!!!\n\n\a";
  654. a = a * 2;
  655. }
  656. if(a < 0)
  657. a = 5;
  658. cout << "You took away " << a << " health points from the " << nameop << "!\n\n";
  659. healthop = healthop - a;
  660. if(healthop < 0)
  661. healthop = 0;
  662. cout << "The " << nameop << "'s health is: " << healthop << endl << "Your health is: " << healthus << endl << endl;
  663. if(random<=10)
  664. a = a/2;
  665. }
  666. else
  667. {
  668. cout << "You missed!\n\n";
  669. cout << "The " << nameop << "'s health is: " << healthop << endl << "Your health is: " << healthus << endl << endl;
  670. }
  671. break;
  672. case 2:
  673. if(random<=msuccess)
  674. {
  675. if(random<=10)
  676. {
  677. cout << "CRITICAL!!!!\n\n\a";
  678. b = b * 2;
  679. }
  680. if(b < 0)
  681. b = 5;
  682. cout << "You took away " << b << " health points from the " << nameop << "!\n\n";
  683. healthop = healthop - b;
  684. if(healthop < 0)
  685. healthop = 0;
  686. cout << "The " << nameop << "'s health is: " << healthop << endl << "Your health is: " << healthus << endl << endl;
  687. if(random<=10)
  688. b = b/2;
  689. }
  690. else
  691. {
  692. cout << "You missed!\n\n";
  693. cout << "The " << nameop << "'s health is: " << healthop << endl << "Your health is: " << healthus << endl << endl;
  694. }
  695. break;
  696. case 3:
  697. if(healthus < 100)
  698. {
  699. healthus = healthus + healus;
  700. cout << "Your health rose from " << healthus-healus << ", to " << healthus << "!!!" << endl << endl;
  701. }
  702. else
  703. cout << "Your health is already 100%!!!" << endl << endl;
  704. break;
  705. default:
  706. cout << "Attack Not available";
  707. }
  708. system("pause");
  709. system("cls");
  710. if(healthop > 0)
  711. {
  712. cout << "Opponent is now attacking";
  713. for(int counter = 6; counter >= 0; counter--)
  714. {
  715. Sleep(00);
  716. cout << ".";
  717. }
  718. system("cls");
  719. if(opac <= random2)
  720. {
  721. if(random2<=5)
  722. {
  723. cout << "CRITICAL!!!!\n\n\a";
  724. attackop = attackop + 15;
  725. }
  726. if(attackop <= 0)
  727. attackop = 5;
  728. if(opponent==1)
  729. attackop = 0;
  730. cout << "The opponent took away " << attackop << " health points from you!\n\n";
  731. healthus = healthus - attackop;
  732. if(healthus < 0)
  733. healthus = 0;
  734. cout << "Opponent's health is: " << healthop << endl << "Your health is: " << healthus << endl << endl;
  735. if(random2<=5)
  736. attackop = attackop - 15;
  737. }
  738. else
  739. {
  740. cout << "The opponent missed!\n\n";
  741. cout << "Opponent's health is: " << healthop << endl << "Your health is: " << healthus << endl << endl;
  742. }
  743. system("pause");
  744. }
  745. }while((healthop >= 1)&&(healthus >= 1));
  746. system("cls");
  747. if(healthop >= 1)
  748. {
  749. cout << "You were beat by the " << nameop << "!!! Whhaaaahaahaaaaa\n\n";
  750. Beep(180,500);
  751. Beep(160,500);
  752. Beep(140,500);
  753. Beep(120,500);
  754. Beep(100,800);
  755. }
  756. else if(opponent!=7)
  757. {
  758. if(healthus > 0)
  759. {
  760. healthus = 100;
  761. cout << "You have gained " << expo << " experience, and " << moneyo << " money!!!\n\n";
  762. exp = exp + expo;
  763. money = money + moneyo;
  764. cout << "You have " << exp << " experience points!\n";
  765. if(levelup > exp)
  766. cout << "You need " << levelup - exp << " more exp points to level up.\n";
  767. cout << "You have $" << money << endl << endl;
  768. system("pause");
  769. system("cls");
  770. }
  771.  
  772. if(exp >= levelup)
  773. {
  774. c++;
  775. level++;
  776. cout << "Congratulations on your victory! You have graduated to level " << level << "!!!.\n\n";
  777. cout << "Which attribute would you like to increase by 5 points?\n";
  778. cout << endl << "(1)\n*****\nattack\n*****\n\n(2)\n*****\nmagic\n*****\n\n(3)\n*****\nspeed\n*****\n\n(4)\n*****\ndefense\n*****\n:";
  779. cin >> atr;
  780. switch(atr)
  781. {
  782. case 1:
  783. attackus = attackus + 5;
  784. break;
  785. case 2:
  786. magicus = magicus + 5;
  787. break;
  788. case 3:
  789. speedus = speedus + 5;
  790. break;
  791. case 4:
  792. defenseus = defenseus + 5;
  793. break;
  794. default:
  795. defenseus = defenseus;
  796. break;
  797. }
  798. system("cls");
  799. cout << "Your current Stats are:\nattack - " << attackus << endl << "magic - " << magicus << endl << "speed - " << speedus << endl << "defense - " << defenseus << endl << endl;
  800. system("pause");
  801. system("cls");
  802. levelup = levelup*2;
  803. }
  804. }
  805. system("pause");
  806. break;
  807. case 2:
  808. do{
  809. do{
  810. system("cls");
  811. cout << "You have $" << money << " left.";
  812. cout << " Which Item would you like to buy?\n\n";
  813. cout << "(1)\n**********\nRusty Sword(+3 attack) - 300$\n**********\n";
  814. cout << "(2)\n**********\nSteel Sword(+6 attack) - 500$\n**********\n";
  815. cout << "(3)\n**********\nGreat Sword(+9 attack) - 700$\n**********\n\n";
  816. cout << "(4)\n**********\nWooden Shield(+3 defense) - 300$\n**********\n";
  817. cout << "(5)\n**********\nSmall Shield(+6 defense) - 500$\n**********\n";
  818. cout << "(6)\n**********\nGaurdian's Shield(+9 defense) - 700$\n**********\n\n";
  819. cout << "(7)\n**********\nWooden Staff(+3 magic) - 300$\n**********\n";
  820. cout << "(8)\n**********\nCurved Staff(+6 magic) - 500$\n**********\n";
  821. cout << "(9)\n**********\nWarlock's Staff(+9 magic) - 700$\n**********\n\n";
  822. cout << "(10)\n**********\nPatched Loafers(+3 speed) - 300$\n**********\n";
  823. cout << "(11)\n**********\nRegular Sneakers(+6 speed) - 500$\n**********\n";
  824. cout << "(12)\n**********\nRunning Shoes(+9 speed) - 700$\n**********\n";
  825. cout << "(13)\n**********\nExit\n**********\n";
  826. cin >> item;
  827. system("cls");
  828. }while((item > 13)||(item < 1));
  829. switch(item)
  830. {
  831. case 1:
  832. if(money >= 300)
  833. {
  834. cout << "You have gained 3 attack!\n\n";
  835. money = money - 300;
  836. attackus = attackus + 3;
  837. break;
  838. }
  839. case 2:
  840. if(money >= 500)
  841. {
  842. cout << "You have gained 6 attack!\n\n";
  843. money = money - 500;
  844. attackus = attackus + 6;
  845. break;
  846. }
  847. case 3:
  848. if(money >= 700)
  849. {
  850. cout << "You have gained 9 attack!\n\n";
  851. money = money - 700;
  852. attackus = attackus + 9;
  853. break;
  854. }
  855. case 4:
  856. if(money >= 300)
  857. {
  858. cout << "You have gained 3 defense!\n\n";
  859. money = money - 300;
  860. defenseus = defenseus + 3;
  861. break;
  862. }
  863. case 5:
  864. if(money >= 500)
  865. {
  866. cout << "You have gained 6 defense!\n\n";
  867. money = money - 500;
  868. defenseus = defenseus + 6;
  869. break;
  870. }
  871. case 6:
  872. if(money >= 700)
  873. {
  874. cout << "You have gained 9 defense!\n\n";
  875. money = money - 700;
  876. defenseus = defenseus + 9;
  877. break;
  878. }
  879. case 7:
  880. if(money >= 300)
  881. {
  882. cout << "You have gained 3 magic!\n\n";
  883. money = money - 300;
  884. magicus = magicus + 3;
  885. break;
  886. }
  887. case 8:
  888. if(money >= 500)
  889. {
  890. cout << "You have gained 3 magic!\n\n";
  891. money = money - 500;
  892. magicus = magicus + 6;
  893. break;
  894. }
  895. case 9:
  896. if(money >= 700)
  897. {
  898. cout << "You have gained 3 magic!\n\n";
  899. money = money - 700;
  900. magicus = magicus + 9;
  901. break;
  902. }
  903. case 10:
  904. if(money >= 300)
  905. {
  906. cout << "You have gained 3 speed!\n\n";
  907. money = money - 300;
  908. speedus = speedus + 3;
  909. break;
  910. }
  911. case 11:
  912. if(money >= 500)
  913. {
  914. cout << "You have gained 3 speed!\n\n";
  915. money = money - 500;
  916. speedus = speedus + 6;
  917. break;
  918. }
  919. case 12:
  920. if(money >= 700)
  921. {
  922. cout << "You have gained 3 speed!\n\n";
  923. money = money - 700;
  924. speedus = speedus + 9;
  925. break;
  926. }
  927. default:
  928. speedus = speedus;
  929. }
  930.  
  931. //END Armory
  932. cout << "Would you like to exit? (y or n): ";
  933. cin >> exit;
  934.  
  935. system("cls");
  936. }while(exit != 'y');
  937. break;
  938. default:
  939. cout << "Please select 1 or 2!!!";
  940. }
  941. }while((healthus > 0)&&(opponent!=7));
  942. }while((healthus >= 1)&&(opponent!=7));
  943. if(healthus >= 1)
  944. {
  945. cout << "OMG!! YOU WON!!! You are better than god...congrats!\n";
  946. cout << " ******** ";
  947. cout << " ************ ** ";
  948. cout << " ************** ****** ";
  949. cout << " *********************** ";
  950. cout << " *********************** ";
  951. cout << " **************** ***** ";
  952. cout << " ************** *** ";
  953. cout << " ************ * ";
  954. cout << " ******** *** * * ";
  955. cout << " **** * * * ";
  956. cout << " ** * * * ";
  957. cout << " **** * * * ";
  958. cout << " * ";
  959. cout << " * ";
  960. cout << " * * * ";
  961. cout << " * * * ";
  962. cout << " * * * ";
  963. cout << " * ";
  964. cout << " * ";
  965. cout << " * ";
  966. Beep(100,100);
  967. Beep(120,100);
  968. Beep(140,100);
  969. Beep(160,100);
  970. Beep(180,100);
  971. Beep(200,100);
  972. Beep(220,100);
  973. Beep(240,100);
  974. Beep(260,100);
  975. Beep(280,100);
  976. Beep(300,100);
  977. Beep(320,100);
  978. Beep(340,100);
  979. Beep(360,100);
  980. Beep(380,100);
  981. Beep(400,100);
  982. Beep(420,100);
  983. Beep(440,100);
  984. Beep(460,100);
  985. Beep(480,100);
  986. Beep(500,100);
  987. Beep(600,300);
  988. }
  989. }
Comments on this Code Snippet
Oct 28th, 2009
0

Re: Neat Text-Based RPG C++ Console

That looks like quite a time investment.. cool ascii art too.

How long did all this take you..??!?
Practically a Posting Shark
Clinton Portis is offline Offline
822 posts
since Oct 2005
Oct 28th, 2009
0

Re: Neat Text-Based RPG C++ Console

Thanks. It took me about 1/2 a week. I worked on it about 2-4 hours each day. So about 10 hours.
Posting Whiz in Training
restrictment is offline Offline
228 posts
since Oct 2009
Mar 15th, 2010
-1

Re: Neat Text-Based RPG C++ Console

O_O!? Wow!
Light Poster
Pynolathgeen is offline Offline
41 posts
since Mar 2010
Mar 15th, 2010
0

Re: Neat Text-Based RPG C++ Console

first off, Very cool game!!
Just some minor things I noticed: typo in the armory section- speed and magic say "you gained 3 speed/magic" on all 3 items- should be 3, 6, 9; and the balloon graphic at the end either needs
C++ Syntax (Toggle Plain Text)
  1. <<endl
at the end of each line or add 4 spaces to each line, as you have 76 characters for each line, while the console prints 80.. so for me the graphic got screwed up..
but all the coding/calculations seem to work fine so Congrats on a good first game! ;-)
Newbie Poster
k9shark is offline Offline
7 posts
since Jul 2009
Mar 24th, 2010
-1

Re: Neat Text-Based RPG C++ Console

I need some help . im beginner to HLL . and currently i hav coded basic arithmatic in console applications .

i copied the code but could not understand wat type of file will b able to correctly use it?///
Newbie Poster
mulachap is offline Offline
1 posts
since Mar 2010
May 21st, 2010
-1

Re: Neat Text-Based RPG C++ Console

It would be helpful if you could refactor your code to be Object Oriented. This would allow you to add more features and clean up the code layout a bit. Enemies would be capable of far more. And game logic like adding weapons, leveling up, entering a new area, and hit points would be far more easier for you to work with if everything was split up into classes. And it's kinda the whole point of C++.
Junior Poster
brandonrunyon is offline Offline
125 posts
since Sep 2007
May 21st, 2010
0

Re: Neat Text-Based RPG C++ Console

>> And it's kinda the whole point of C++

No its not. C++ != OOP. C++ has OOP, but does not mean C++ is OOP.
Senior Poster
firstPerson is offline Offline
3,864 posts
since Dec 2008
May 21st, 2010
0

Re: Neat Text-Based RPG C++ Console

Hmm, yeah I really should have learned OOP, but tbh I made this game in my first few weeks of learning C++, so it was quite the project for myself. ;D

Still en't learned OOP though..do you guys know of any good free tutorials?
Posting Whiz in Training
restrictment is offline Offline
228 posts
since Oct 2009
May 22nd, 2010
0

Re: Neat Text-Based RPG C++ Console

>> And it's kinda the whole point of C++

No its not. C++ != OOP. C++ has OOP, but does not mean C++ is OOP.

It's not like java where EVERYTHINGS an object. But if you aren't going to use OO Design Principles in C++ to modularize your software, then why the hell would you use C++? Just write it all in C or Assembler if you just want to write procedural programming
Junior Poster
brandonrunyon is offline Offline
125 posts
since Sep 2007
Message:
Previous Thread in C++ Forum Timeline: Queue circular array
Next Thread in C++ Forum Timeline: How to change Hell to heck in a char array





About Us | Contact Us | Advertise | Acceptable Use Policy
Forum Index | Build Custom RSS Feed


Follow us on Twitter


© 2011 DaniWeb® LLC