#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#include <conio.h>
struct mob{
char name[32];
int MHP;
int HP;
int Mdamage;
int damage;
int exp;
};
struct Player{
char name[32];
int Lv;
int MHP;
int HP;
int Mdamage;
int damage;
int exp;
};
static struct Player Pnum[] = {
{"Player",1,50,50,10,10,0},
};
static struct mob num[] = {
{"monster",30,30,5,5,5},
{"the mons",50,50,10,10,10},
{"strg mons",100,100,20,20,100},
};
int FIGHT(int Fx);
void STATE();
int main(){
int i,R;
struct mob *ptr;
ptr = num;
struct Player *ptrr;
ptrr = Pnum;
do{
srand((unsigned)time(NULL));
R = rand()%3;
FIGHT(R);
getch();
if((*ptrr).HP <= 0){
break;
}
do{
printf("まだやる?Y:0 N:1\n");
scanf("%d",&i);
if(i>=2){
printf("ちゃんとした値を入力しろ\n");
}
}while(i>1);
}while(i == 0);
printf("おつ\n");
return 0;
}
void STATE(){
struct mob *ptr;
ptr = num;
struct Player *ptrr;
ptrr = Pnum;
puts("-----");
printf("Name %s\n-----\nHP %d\n-----\nDMG %d\n-----\nLv %d\n-----\n",(*ptrr).name,(*ptrr).HP,(*ptrr).Mdamage,(*ptrr).Lv);
}
int FIGHT(int Fx){
srand((unsigned)time(NULL));
struct mob *ptr;
ptr = num;
struct Player *ptrr;
ptrr = Pnum;
puts("敵が現れた!");
getch();
while((*ptrr).HP > 0 && (*(ptr+Fx)).HP > 0){
(*ptrr).damage = rand()%(*ptrr).Mdamage;
(*(ptr + Fx)).damage = rand()%(*(ptr + Fx)).Mdamage;
printf("%sの攻撃!敵に%dのダメージ! 敵ライフ%d\n",(*ptrr).name,(*ptrr).damage,(*(ptr+Fx)).HP);
(*(ptr+Fx)).HP -= (*ptrr).damage;
getch();
printf("%sの攻撃!%sに%dのダメージ!\n",(*(ptr+Fx)).name,(*ptrr).name,(*(ptr+Fx)).damage);
(*ptrr).HP -= (*(ptr+Fx)).damage;
STATE();
getch();
}
if((*ptrr).HP <=0){
printf("you are dead\n");
}
else {
puts("敵をやっつけた");
printf("経験値を%d得た\n",(*(ptr+Fx)).exp);
if((*(ptr+Fx)).exp>0){
printf("%sはレベルが上がった!\n",(*ptrr).name);
(*ptrr).MHP += ((*ptrr).Lv*50)/10;
(*ptrr).Mdamage += ((*ptrr).Lv*30)/10;
(*ptrr).Lv += 1;
printf("HPも全回復した!\n");
(*ptrr).HP = (*ptrr).MHP;
printf("現在のステータス\n");
STATE();
}
(*(ptr+Fx)).HP = (*(ptr+Fx)).MHP;
}
return 0;
}