Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <stdlib.h>
- #include <ctime>
- using namespace std;
- struct player {
- int hp;
- int str;
- int agl;
- int ct;
- string name;
- string abi;
- string abiact;
- string side;
- int target;
- int input;
- bool dead;
- };
- int turn;
- int ac = 3;
- int ec = 1;
- int etarget = rand() % 4;
- int input;
- int target;
- player players[4];
- void checkabi(struct player *players);
- void checkdeath(struct player *players);
- int findturn(struct player *players);
- void battle(struct player *players);
- void battlesetup(struct player *players);
- int main() {
- srand(time(0));
- for(int i = 0; i < 4; i++) {
- players[i].dead = false;
- players[i].hp = 32;
- players[i].str = 11;
- players[i].side = "ally";
- players[i].abi = "Attack";
- players[i].agl = 11;
- players[i].ct = 0;
- }
- players[0].name = "Edge";
- players[1].name = "Cloud";
- players[2].name = "Tifa";
- players[3].name = "Giant";
- players[3].abiact = "Attack";
- players[3].side = "enemy";
- players[3].hp = 150;
- battlesetup(players);
- }
- void checkabi(struct player *players) {
- if(players[turn].abiact == "Attack") {
- cout << players[turn].name << " attacks " << players[players[turn].target].name << endl;
- players[players[turn].target].hp -= players[turn].str;
- }
- }
- void checkdeath(struct player *players) {
- for(int i = 0; i < 4; i++) {
- if(players[i].hp <= 0 && !players[i].dead && players[i].side == "ally") {
- ac--;
- players[i].dead = true;
- break;
- }
- if(players[i].hp <= 0 && !players[i].dead && players[i].side == "enemy") {
- ec--;
- players[i].dead = true;
- break;
- }
- }
- if(ac <= 0) {
- cout << "Lost" << endl;
- cin.get();
- cin.get();
- exit(0);
- }
- if(ec <= 0) {
- cout << "Won" << endl;
- cin.get();
- cin.get();
- exit(0);
- }
- }
- int findturn(struct player *players) {
- while(true) {
- for(int i = 0; i < 4; i++) {
- if(players[i].ct >= 100) {
- players[i].ct = 0;
- return i;
- }
- if(players[i].dead) {
- players[i].ct = 0;
- }
- players[i].ct += players[i].agl;
- }
- }
- }
- void battle(struct player *players) {
- for(int i = 0; i < 4; i++) {
- checkdeath(players);
- turn = findturn(players);
- if(players[turn].dead && i != 4) i++;
- if(players[turn].side == "ally") {
- checkabi(players);
- }
- if(players[turn].side == "enemy") {
- while(players[etarget].side == "enemy" || players[etarget].dead) {
- etarget = rand() % 4;
- }
- players[turn].target = etarget;
- checkabi(players);
- etarget = rand() % 4;
- }
- }
- for(int i = 0; i < 3; i++) {
- players[i].ct = 0;
- }
- checkdeath(players);
- battlesetup(players);
- }
- void battlesetup(struct player *players) {
- for(int i = 0; i < 3; i++) {
- if(players[i].dead && i != 2) i++;
- cout << players[i].name << endl;
- cout << "[1] " << players[i].abi;
- cin >> input;
- players[i].abiact = players[i].abi;
- for(int j = 0; j < 4; j++) {
- cout << j << ": " << players[j].name << endl;
- }
- cin >> target;
- players[i].target = target;
- players[i].input = input;
- }
- battle(players);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement