Advertisement
paulf

quiz

Dec 11th, 2011
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.97 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include "110ct.h"
  4.  
  5. using namespace std;
  6.  
  7.  
  8. int main()
  9. {
  10.  //config
  11.  int const scoreCon = 10;
  12.  int const bonusCon = 5;
  13.  int const penaltyCon = -3;
  14.  int const dicePenalty = -1;
  15.  int const BonusTime = 5;
  16.  int const specialBonus = 12;
  17.  //do not edit after here
  18.  int score = 0;
  19.  int bonus = 0;
  20.  int penalty = 0;
  21.  int answer;
  22.  int finalScore;
  23.  Random roll; // roll for dice
  24.  int dice;
  25.  string welldone = "Well Done!! Correct Answer";
  26.  string fail = "Sorry Wrong Answer";
  27.  string bonusCongrats = "Congrats 1 Bonus Point";
  28.  string bonusScore = " Your Bonus Score is: ";
  29.  string scoreScore = "Your Score is: ";
  30.  string penaltyScore = " Your Penalty Score is: ";
  31.  string QS = "Question Skipped, Special Bonus added";
  32.  string ROLL = "0) Roll Dice! ";
  33.  double time;
  34.  Stopwatch s; // stores stopwatch ongoing time
  35.  ColourController cl; // colour controllers
  36.  CursorController crs;
  37.  cl.setForeground(Red);
  38.  crs.setPosition(2,5);
  39. cout << "Welcome to the quiz. The faster you do a task, the bigger the Bonus! " << endl;
  40. crs.setPosition(20,10);
  41. cout << "Press Enter to start!" << endl;
  42. qin.get();
  43. q1Start:
  44. crs.clearAll();
  45. //Quiz starts!
  46. crs.setPosition(32,5);
  47. cout << "What is 5 + 5?" << endl; // Question 1
  48. crs.setPosition(17,7);
  49. cout << ROLL <<"1) 10 " << "2) 20 " << "3) 30 " << "4) 40 "  << endl; // Choices
  50. s.start(); // start timer
  51. crs.setPosition(37,9);
  52. cin >> answer;
  53. time = s.stop(); //stop timer
  54.  switch(answer){
  55.  
  56.  case 0:
  57.      roll.setLimits(0,5);
  58.      dice = roll.get();
  59.      switch(dice){
  60.      case 5:
  61.          cout << QS ;
  62.          score = score + specialBonus;
  63.          break;
  64.  
  65.      default:
  66.         penalty = penalty + dicePenalty;
  67.         crs.setPosition(32,9);
  68.         cout << fail << endl;
  69.         qin.get();
  70.         goto q1Start;
  71.         }
  72.  case 1:
  73.      score = score + scoreCon;
  74.             crs.setPosition(28,9);
  75.             cout << welldone << endl;
  76.     if (time <= BonusTime ){
  77.             bonus = bonus + bonusCon;
  78.             crs.setPosition(30,10);
  79.             cout << bonusCongrats << endl;
  80.              }
  81.             break;
  82. case 2:
  83. case 3:
  84. case 4:
  85.         penalty = penalty + penaltyCon;
  86.         crs.setPosition(32,9);
  87.         cout << fail << endl;
  88.         break; 
  89. default: // Line that causes to loop though infinity
  90.   cout << fail << endl;
  91.   qin.get();
  92.   goto q1Start;
  93.  
  94.  }
  95. s.reset(); // reset timer to 0
  96. crs.setPosition(5,15);
  97. cout << scoreScore << score  << bonusScore << bonus << penaltyScore  << penalty << endl;
  98. qin.get();
  99. q2Start:
  100. crs.clearAll();
  101. crs.setPosition(32,5);
  102. cout << "What is 5 * 200?" << endl; // Question 2
  103. crs.setPosition(17,7);
  104. cout << ROLL <<"1) 10 " << "2) 500 " << "3) 1000 " << "4) 100 "  << endl; // Choices
  105. s.start(); // start timer
  106. crs.setPosition(37,9);
  107. cin >> answer;
  108. time = s.stop(); //stop timer
  109.  switch(answer){
  110.  
  111.  case 0:
  112.      roll.setLimits(0,5);
  113.      dice = roll.get();
  114.      switch(dice){
  115.      case 5:
  116.          cout << QS ;
  117.          score = score + specialBonus;
  118.          break;
  119.  
  120.      default:
  121.         penalty = penalty + dicePenalty;
  122.         crs.setPosition(32,9);
  123.         cout << fail << endl;
  124.         qin.get();
  125.         goto q2Start;
  126.         }
  127.  case 3:
  128.      score = score + scoreCon;
  129.             crs.setPosition(28,9);
  130.             cout << welldone << endl;
  131.     if (time <= BonusTime ){
  132.             bonus = bonus + bonusCon;
  133.             crs.setPosition(30,10);
  134.             cout << bonusCongrats << endl;
  135.              }
  136.             break;
  137. case 1:
  138. case 2:
  139. case 4:
  140.         penalty = penalty + penaltyCon;
  141.         crs.setPosition(32,9);
  142.         cout << fail << endl;
  143.         break; 
  144.  
  145.  }
  146. s.reset(); // reset timer to 0
  147. crs.setPosition(5,15);
  148. cout << scoreScore << score  << bonusScore << bonus << penaltyScore  << penalty << endl;
  149. qin.get();
  150. q3Start:
  151. crs.clearAll();
  152. crs.setPosition(32,5);
  153. cout << "What is 100 / 50?" << endl; // Question 3
  154. crs.setPosition(17,7);
  155. cout << ROLL <<"1)10  " << "2)50  " << "3) 20 " << "4) 2 "  << endl; // Choices
  156. s.start(); // start timer
  157. crs.setPosition(37,9);
  158. cin >> answer;
  159. time = s.stop(); //stop timer
  160.  switch(answer){
  161.  
  162.  case 0:
  163.      roll.setLimits(0,5);
  164.      dice = roll.get();
  165.      switch(dice){
  166.      case 5:
  167.          cout << QS ;
  168.          score = score + specialBonus;
  169.          break;
  170.  
  171.      default:
  172.         penalty = penalty + dicePenalty;
  173.         crs.setPosition(32,9);
  174.         cout << fail << endl;
  175.         qin.get();
  176.         goto q3Start;
  177.         }
  178.  case 4:
  179.      score = score + scoreCon;
  180.             crs.setPosition(28,9);
  181.             cout << welldone << endl;
  182.     if (time <= BonusTime ){
  183.             bonus = bonus + bonusCon;
  184.             crs.setPosition(30,10);
  185.             cout << bonusCongrats << endl;
  186.              }
  187.             break;
  188. case 1:
  189. case 2:
  190. case 3:
  191.         penalty = penalty + penaltyCon;
  192.         crs.setPosition(32,9);
  193.         cout << fail << endl;
  194.         break; 
  195.  
  196.  }
  197. s.reset(); // reset timer to 0
  198. crs.setPosition(5,15);
  199. cout << scoreScore << score  << bonusScore << bonus << penaltyScore  << penalty << endl;
  200. qin.get();
  201. q4Start:
  202. crs.clearAll();
  203. crs.setPosition(32,5);
  204. cout << "What is 999 / 333?" << endl; // Question 4
  205. crs.setPosition(17,7);
  206. cout << ROLL <<"1)333 " << "2)33  " << "3) 3 " << "4) 12 "  << endl; // Choices
  207. s.start(); // start timer
  208. crs.setPosition(37,9);
  209. cin >> answer;
  210. time = s.stop(); //stop timer
  211.  switch(answer){
  212.  
  213.  case 0:
  214.      roll.setLimits(0,5);
  215.      dice = roll.get();
  216.      switch(dice){
  217.      case 5:
  218.          cout << QS ;
  219.          score = score + specialBonus;
  220.          break;
  221.  
  222.      default:
  223.         penalty = penalty + dicePenalty;
  224.         crs.setPosition(32,9);
  225.         cout << fail << endl;
  226.         qin.get();
  227.         goto q4Start;
  228.         }
  229.  case 3:
  230.      score = score + scoreCon;
  231.             crs.setPosition(28,9);
  232.             cout << welldone << endl;
  233.     if (time <= BonusTime ){
  234.             bonus = bonus + bonusCon;
  235.             crs.setPosition(30,10);
  236.             cout << bonusCongrats << endl;
  237.              }
  238.             break;
  239. case 1:
  240. case 2:
  241. case 4:
  242.         penalty = penalty + penaltyCon;
  243.         crs.setPosition(32,9);
  244.         cout << fail << endl;
  245.         break; 
  246.  
  247.  }
  248. s.reset(); // reset timer to 0
  249. crs.setPosition(5,15);
  250. cout << scoreScore << score  << bonusScore << bonus << penaltyScore  << penalty << endl;
  251. qin.get();
  252. crs.clearAll();
  253. finalScore = score + bonus + penalty;
  254. crs.setPosition(20,5);
  255. cout << "   Final Score is :" << finalScore << endl;
  256. return(0);
  257. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement