Advertisement
Genmilhas

confagamescodeprototype

Jun 19th, 2015
290
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.85 KB | None | 0 0
  1. #include <string>
  2. #include <iostream>
  3. #include <fstream>
  4. #include <vector>
  5. #include <time.h>
  6. using namespace std;
  7.  
  8. const int q = 12;
  9. const int event_n = 2;
  10.  
  11. struct GameEvent
  12. {
  13.     GameEvent() {}
  14.     GameEvent(int id, int tr, string text, int t1_l, int t2_l, int t3_l, int t4_l, int t5_l)
  15.         : id(id)
  16.         , tr(tr)
  17.         , text(text)
  18.         , t1_l(t1_l)
  19.         , t2_l(t2_l)
  20.         , t3_l(t3_l)
  21.         , t4_l(t4_l)
  22.         , t5_l(t5_l)
  23.     {}
  24.     ~GameEvent() {}
  25.     int id;
  26.     int tr;
  27.     string text;
  28.     int t1_l; //is the event lethal for tribute 1?
  29.     int t2_l;
  30.     int t3_l;
  31.     int t4_l;
  32.     int t5_l;
  33. };
  34.  
  35. struct GameTribute
  36. {
  37.     GameTribute() {}
  38.     GameTribute(int id, string name, bool alive, bool free)
  39.         : id(id)
  40.         , name(name)
  41.         , alive(alive)
  42.         , free(free)
  43.     {}
  44.     ~GameTribute() {}
  45.     int id;
  46.     string name;
  47.     bool alive;
  48.     bool free;
  49. };
  50.  
  51. vector<GameEvent> event;
  52. vector<GameTribute> tribute;
  53.  
  54. void initEvents() //list of events
  55. {
  56.     event.push_back(GameEvent(1,1," goes hunting.",0,0,0,0,0));
  57.     event.push_back(GameEvent(2,1," dies horribly.",1,0,0,0,0));
  58. }
  59.  
  60. void rSetup() //list of tributes
  61. {
  62.     for (int i=0; i<q; i++)
  63.     {
  64.         string name;
  65.         cin >> name;
  66.         tribute.push_back(GameTribute(i,name,true,true));
  67.     }
  68. }
  69.  
  70. void reaping()
  71. {
  72.     int tr_al = q; //tributes alive
  73.     int day = 0;
  74.     while (tr_al > 1)
  75.     {
  76.         day++;
  77.         cout << "Day " << day << endl;
  78.         for(int i=0; i<q; i++) //reset their free status
  79.         {
  80.             tribute[i].free = true;
  81.         }
  82.         int free_tr = tr_al;
  83.         while (free_tr > 0)
  84.         {
  85.             int e_id;
  86.             do e_id = rand() % event_n; //get random event
  87.             while (event[e_id].tr > free_tr); //check if we can use it
  88.             int tr_id[5];
  89.             for(int i=0; i<event[e_id].tr; i++) //get random tributes
  90.             {
  91.                 do tr_id[i] = rand() % q;
  92.                 while (!(tribute[tr_id[i]].free) || !(tribute[tr_id[i]].alive));
  93.             }
  94.             cout << tribute[tr_id[0]].name << event[e_id].text << endl; //event text
  95.             tribute[tr_id[0]].free = false;
  96. //            for (int i = 0; i<event[e_id].tr; i++)
  97. //            {
  98.                 if (event[e_id].t1_l) //make array for lethals !!!
  99.                 {
  100.                     tribute[tr_id[0]].alive = false;
  101.                     tr_al--;
  102.                 }              
  103. //            }
  104.             if (tr_al == 1) break;
  105.             free_tr--;
  106.         }
  107.         cout << endl;
  108.     }
  109.     for(int i=0; i<q; i++)
  110.     {
  111.         if (tribute[i].alive) cout << tribute[i].name << " survives and wins!" << endl;
  112.     }
  113. }
  114.  
  115. int main()
  116. {
  117.     srand(time(NULL));
  118.     initEvents();
  119.     rSetup();
  120.     reaping();
  121.     system("pause");
  122.     return 0;
  123. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement