Advertisement
Guest User

Untitled

a guest
May 24th, 2013
484
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <string>
  3. #include <stdlib.h>
  4. #include <ctime>
  5. using namespace std;
  6. struct player {
  7.     int hp;
  8.     int str;
  9.     int agl;
  10.     int ct;
  11.     string name;
  12.     string abi;
  13.     string abiact;
  14.     string side;
  15.     int target;
  16.     int input;
  17.     bool dead;
  18. };
  19. int turn;
  20. int ac = 3;
  21. int ec = 1;
  22. int etarget = rand() % 4;
  23. int input;
  24. int target;
  25. player players[4];
  26. void checkabi(struct player *players);
  27. void checkdeath(struct player *players);
  28. int findturn(struct player *players);
  29. void battle(struct player *players);
  30. void battlesetup(struct player *players);
  31. int main() {
  32.     srand(time(0));
  33.     for(int i = 0; i < 4; i++) {
  34.         players[i].dead = false;
  35.         players[i].hp = 32;
  36.         players[i].str = 11;
  37.         players[i].side = "ally";
  38.         players[i].abi = "Attack";
  39.         players[i].agl = 11;
  40.         players[i].ct = 0;
  41.     }
  42.     players[0].name = "Edge";
  43.     players[1].name = "Cloud";
  44.     players[2].name = "Tifa";
  45.     players[3].name = "Giant";
  46.     players[3].abiact = "Attack";
  47.     players[3].side = "enemy";
  48.     players[3].hp = 150;
  49.  
  50.     battlesetup(players);
  51. }
  52. void checkabi(struct player *players) {
  53.     if(players[turn].abiact == "Attack") {
  54.         cout << players[turn].name << " attacks " << players[players[turn].target].name << endl;
  55.         players[players[turn].target].hp -= players[turn].str;
  56.     }
  57. }
  58. void checkdeath(struct player *players) {
  59.     for(int i = 0; i < 4; i++) {
  60.         if(players[i].hp <= 0 && !players[i].dead && players[i].side == "ally") {
  61.             ac--;
  62.             players[i].dead = true;
  63.             break;
  64.         }
  65.         if(players[i].hp <= 0 && !players[i].dead && players[i].side == "enemy") {
  66.             ec--;
  67.             players[i].dead = true;
  68.             break;
  69.         }
  70.     }
  71.     if(ac <= 0) {
  72.         cout << "Lost" << endl;
  73.         cin.get();
  74.         cin.get();
  75.         exit(0);
  76.     }
  77.     if(ec <= 0) {
  78.         cout << "Won" << endl;
  79.         cin.get();
  80.         cin.get();
  81.         exit(0);
  82.     }
  83. }
  84. int findturn(struct player *players) {
  85.     while(true) {
  86.         for(int i = 0; i < 4; i++) {
  87.             if(players[i].ct >= 100) {
  88.                 players[i].ct = 0;
  89.                 return i;
  90.             }
  91.             if(players[i].dead) {
  92.                 players[i].ct = 0;
  93.             }
  94.             players[i].ct += players[i].agl;
  95.         }
  96.     }
  97. }
  98. void battle(struct player *players) {
  99.         for(int i = 0; i < 4; i++) {
  100.         checkdeath(players);
  101.         turn = findturn(players);
  102.         if(players[turn].dead && i != 4) i++;
  103.         if(players[turn].side == "ally") {
  104.             checkabi(players);
  105.         }
  106.         if(players[turn].side == "enemy") {
  107.             while(players[etarget].side == "enemy" || players[etarget].dead) {
  108.                 etarget = rand() % 4;
  109.             }
  110.             players[turn].target = etarget;
  111.             checkabi(players);
  112.             etarget = rand() % 4;
  113.         }
  114.         }
  115.         for(int i = 0; i < 3; i++) {
  116.             players[i].ct = 0;
  117.         }
  118.         checkdeath(players);
  119.         battlesetup(players);
  120. }
  121. void battlesetup(struct player *players) {
  122.     for(int i = 0; i < 3; i++) {
  123.         if(players[i].dead && i != 2) i++;
  124.         cout << players[i].name << endl;
  125.         cout << "[1] " << players[i].abi;
  126.         cin >> input;
  127.         players[i].abiact = players[i].abi;
  128.         for(int j = 0; j < 4; j++) {
  129.             cout << j << ": " << players[j].name << endl;
  130.         }
  131.         cin >> target;
  132.         players[i].target = target;
  133.         players[i].input = input;
  134.     }
  135.     battle(players);
  136. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement