1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165
|
#include "stdafx.h"
#include "math.h"
#include <string>
#include <iostream>
#include <time.h>
using namespace std;
double damage;
int a[1250];
double chrhp[20];
string enemy[20];
char letter[20];
bool benemy[20]; //here is benemy whos elements turn false
int enemyxy[20];
int mapcorrecter;
int numberofenemies;
char enemydatabase[5][15];
void databasefill(){
strcpy_s(enemydatabase[1], "Flower");
strcpy_s(enemydatabase[2], "Physicist");
strcpy_s(enemydatabase[3], "Biologist");
strcpy_s(enemydatabase[4], "Chemist");
strcpy_s(enemydatabase[5], "Astronomer");
}
double evaldmg(char mag[1], char geo[1], int x, int y, int r){
int ini;
char f[] = "f";
char c[] = "c";
if (strcmp (mag,f) != 0){ ini = 100;}
double dmg;
double pi = 3.14159265358979323846;
if (strcmp (geo,c) != 0){dmg = (ini / (pi * r * r));}
cout<<"Enemy takes "<<dmg<<" damage"<<endl;
cout<<"ini "<< ini << " r " <<r<< " pi "<< pi << endl;//for programmer
return (dmg);}
void callenemies(){
srand ( time(NULL) );
databasefill();
int x = rand() % 9+ 1; //rnd 1-9 # enemies
int random = rand() % 20+ 1; //rnd 1-20
for (int i=0; i<x;i++){
int pickenemy = rand() % 5+ 1; //rnd 1-5
enemy[i] = enemydatabase[pickenemy];
letter[i]= enemydatabase[pickenemy][0];
benemy[i] = true;
int y = rand() % 1250+1; //rnd 1-1250 for xy position
enemyxy[i] = y;
chrhp[i] = 100;
}cout<<"enemiescalled";//for programmer
};
void hitenemy(double d,string enemname, char chr,int chrnumber){
chrhp[chrnumber] = chrhp[chrnumber] - d;
cout<< enemname << " was struck for " <<d<<endl;
if (chrhp[chrnumber] <= 0){cout<< enemname<<" is dead."<<endl; benemy[chrnumber]=false;}
}
void clearenemies(){ /* this function could be the culprit, but after this,
callenemies(); is called which creates enemies and make some benemies==true */
for (int i=0; i<20;i++){ //clear data
enemyxy[i] = 0;
chrhp[i] = 0;
benemy[i] = false;
enemy[i] = "";
}
cout<<"clearenemies";//for programmer
}
void endfight(){
cout<<"fight complete";}
void removedead(){
for (int i=0;i<20;i++){
if (benemy[i] = false){
enemyxy[i] = 0;
chrhp[i] = 0;
enemy[i] = "";
cout<<"enemy removed";}//for programmer
}
}
void repeatattack(){
cout<<"repeatattack";//for programmer
int chk=0;
for (int i=0;i<20;i++){ //this checks for any alive enemies
if (benemy[i] == true){chk=chk+1;}// here is where the problem shows itself
cout<<chk;}//the prog shows 20 zeros!!???
if (chk > 0){string magic[20]; //this code never gets executed
magic[0] = "Flash";
string geo[20];
geo[0] = "Circle";
cout << "Choose your magic:"<< endl;
showmagic(magic);
char magopt[1];
cin >> magopt;
cout << "Choose your Geometry:"<< endl;
showabilities(geo);
char abiopt[1];
cin >> abiopt;
cout << "Enter X Y Radius:"<< endl;
int x,y,r;
cin >> x >> y >> r;
damage = evaldmg(magopt,abiopt,x,y,r);
for (int i=0; i<20; i++){
if (benemy[i]==true){hitenemy(damage,enemy[i],letter[i],i);} //must check for hit
}
removedead();
}
if (chk = 0){endfight();}
cout<<"atk repeated"<<chk;//for programmer
}
void prepfirstattack(){
clearenemies();
callenemies();
showmap(enemyxy,letter);
}
void attack(){
string magic[20];
magic[0] = "Flash";
string geo[20];
geo[0] = "Circle";
cout << "Choose your magic:"<< endl;
showmagic(magic);
char magopt[1];
cin >> magopt;
cout << "Choose your Geometry:"<< endl;
showabilities(geo);
char abiopt[1];
cin >> abiopt;
cout << "Enter X Y Radius:"<< endl;
int x,y,r;
cin >> x >> y >> r;
damage = evaldmg(magopt,abiopt,x,y,r);
for (int i=0; i<20; i++){
if (benemy[i]==true){hitenemy(damage,enemy[i],letter[i],i);} //must check for hit
}
removedead();
repeatattack();
}
|