Game Series ~ The King of Fighters (7)

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<string.h>
#include<conio.h>
#define N 100

int n=0;

int Checktoseek(char name[]);//Search
void mainmenu();//Menu
void Register();//Register
void Showplayer();//Display current character data
void Showallplayer();//Display all characters Data
void Chooseopponent();//Select opponent
void Chooseplayer(int i);//Select character
void vs(int i,int j);//PK
void Attack(int i,int j);//Attack
void recovery( int i,int j);//Defense
void Energy(int i,int j);//Energy

struct Kof
{
char name[20];
int Hp;
int AP;
int Dp;
int Rp;
}player[N];

int main()
{
srand(unsigned(time(NULL)));
mainmenu();
}
void login()
{

}
void mainmenu()
{
while(1)
{
int x;
printf("\n");
printf("\n");
printf(" ***************************************************************\n");
printf(" *** ***\n");
printf(" *** ***\n");
printf(" *** 欢迎进入Kof ***\n");
printf(" *** ***\n");
printf(" *** ***\n");
printf(" ***************************************************************\n");
printf("\n\n\t\t\t\t\t=======选择项=======");
printf("\n\t\t\t\t\t||1----Register||\n");
printf("\t\t\t\t\t||2----View player information ||\n");
printf("\t\t\t\t\t||3----View your own information||\n");
printf("\t\t\t\t\t||4---- Choose opponent||\n");
printf("\t\t\t\t\t||5----End||\n");
printf("\t\t\t\t\t ======================\n\n");
printf("\n\nPlease select menu:");
scanf("%d",&x );
if(x==5) break;
switch(x)
{
case 1:Register();break;
case 2:Showallplayer();break;
case 3:Showplayer();break;
case 4:Chooseopponent(); break;
}
printf("\n\n\n\n\nPress any key to continue:");
getch();
system("cls");
}
}
void Register()
{
char name[20];
printf( "Enter name:");
fflush(stdin);
gets(name);
if(Checktoseek(name)==-1)
{
strcpy(player[n].name,name);
player[n].Hp=rand()%1000;
player[n].AP=rand()%(100+1)+50;
player[n].Dp=rand()%(10-5+2)+5;
player[n].Rp=rand()%(60+2)+60;
n++;
printf("人物创建成功\n");
}
else
{
Register();
}
}
void Showplayer()
{
char name[20];
printf("角色名:");
fflush(stdin);
gets(name);
int i=Checktoseek(name);

if(i!=-1)
{
printf("人物名称:%s\n",player[i].name);
printf("Hp:%d\n",player[i].Hp);
printf("Ap:%d\n",player[i].AP);
printf("Dp:%d\n",player[i].Dp);
printf("Rp:%d\n",player[i].Rp);
}
else
{
printf("请重新输入角色名");
Showplayer();

}

}

void Showallplayer()
{
printf("%-10s%-10s%-10s%-10s%-10s\n","Name","Hp","Ap","Dp","Rp");
for(int i=0;i<n;i++)
{
printf("%-10s%-10d%-10d%-10d%-10d\n",player[i].name,player[i].Hp,player[i].AP,player[i].Dp,player[i].Rp);
}
}

void Chooseopponent()
{
char name[20];
int i;
Showallplayer();
printf("Who do you choose to PK:");
fflush(stdin);
gets(name);

i=Checktoseek(name);
if(i!=-1)
{
Chooseplayer(i);
}
else
{
printf("The character you chose PK cannot be found?\n");
Chooseopponent();
}
}

int Checktoseek(char name[])
{
for(int i=0;i<n;i++)
{
if(!strcmp(player[i].name,name))
{
return i;
}
}
return -1;
}

void Chooseplayer(int i)
{
char name[20];
int j;
printf("请你选择一个角色:");
fflush(stdin);
gets(name);
j=Checktoseek(name);
if(j!=-1 && j!=i)
{
vs(i,j);
}
else
{
Chooseplayer(i);
}
printf("=================================\n");
}
void vs(int i,int j)
{
int count=1;
while(player[i].Hp>0 && player[j].Hp>0)
{
printf("==================第%d局==================\n\n",count);
if(count%2==0)
{
Attack(i,j);
recovery(i,j);
Energy(i,j);
}
else
{
Attack(j,i);
recovery(i,j);
Energy(i,j);
}
count++;
_sleep(3344);
}
if(player[i].Hp>0)
{
printf("%s won \n",player[i].name);
}
else
{
printf("%s won\n",player[j].name);
}
printf("*********** *****************\n");
}

void Attack(int i,int j)
{
int x;
int s;
x=rand()%5;
switch(x)
{
case 0:
printf("\n%s emits wave damage%s\n",player[ i].name,player[j].name);
s=rand()%100;
player[j].Hp-=s;
printf("%s received %d damage\n\n",player[j ].name,s);
break;
case 1:
printf("\n%s uses combo attack %s\n",player[i].name,player[j].name);
s=rand()% 100*2;
player[j].Hp-=s;
printf("%s takes %d damage\n\n",player[j].name,s);
break;
case 2:
printf("\n %s unleashes super attack\n",player[i].name);
s=(rand()%100)*4;
player[j].Hp-=s;
printf("%s takes %d damage \n\n",player[j].name,s);
break;

}
}

void recovery(int i,int j)
{
int s;
int x;

s=rand()%3;
switch(s)
{
case 0:
printf("\n%s defends against %s' attack\n",player[ i].name,player[j].name);
x=rand()%(10-5+2)+5;
player[i].Dp==x;
printf("%s resists %d damage\ n\n",player[i].name,x);
break;
case 1:
printf("\n%s defends against %s' attack\n",player[j].name,player[i].name) ;
x=rand()%(10-5+2)+5;
player[j].Dp==x;
printf("%s resists %d damage\n\n",player[j].name, x);
break;

}
}
void Energy(int i,int j)
{
int x;
int s;
x=rand()%6;
switch(x)
{
case 0:
printf("\n%s is furious and uses super nirvana\ n",player[i].name);
s=(rand()%100)*6;
player[j].Hp-=s;
printf("%s received %d damage\n\n",player [j].name,s);
break;
case 1:
printf("\n%s is furious and uses super nirvana\n",player[j].name);
s=(rand()%100) *6;
player[i].Hp-=s;
printf("%s takes %d damage\n\n",player[i].name,s);
break;

}
}

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325039760&siteId=291194637