#include #include #include typedef struct character{ char name[30]; int syuzoku; int kotai; char type[20]; int type2; char waza1[30]; char waza2[30]; }chara; typedef struct level{ struct character *level; int number; int doryoku; }level; typedef struct nouryokuchi{ double nouryoku; }nouryokuchi; double nouryoku(chara*x,level*y,int a); double kougeki(nouryokuchi*z,int a); double kaihuku(nouryokuchi*z,int a); int main(){ chara c[6]={{"エイトフット",88,80,"みず",3,"みずでっぽう","じこさいせい"},{"アップルポイズン",60,90,"くさ",1,"はっぱカッター","こうごうせい"},{"ジャックハート",50,80,"ノーマル",5,"スピードスター","EAT MEクッキー"},{"ダルメシア",90,60,"ノーマル",5,"かみつく","キズぐすり"},{"マルフィ",70,90,"ひこう",4,"つばめがえし","はねやすめ"},{"ハーデス",95,50,"ほのお",2,"かえんほうしゃ","キズぐすり"}}; level l[6]; int i,j,k,m,n,p,lvmax=1,maxi=0; double HP1,HP2,HP1MAX,HP2MAX,h=0,y=0; nouryokuchi no[6]; srand((unsigned)time(NULL)); for(i=0;i<6;i++){ l[i].number=1; l[i].number=1; } printf("※技説明\nみずでっぽう、はっぱカッター、かみつく、かえんほうしゃ:通常攻撃\nスピードスター、つばめがえし:必中攻撃\nじこさいせい、こうごうせい、はねやすめ:通常回復\nキズぐすり:必ず回復できる\nEAT ME:回復率は高いがたまにダメージを自分がうけてしまう\n\n※タイプについて\nひこう→くさ←ほのお←みず←くさ\n矢印が出ている側はさされている側に対して有利です。\nノーマルタイプはタイプの影響を受けません。\n"); for(p=0;p<10;p++){ printf("【現在手持ちのキャラクター】\n"); for(i=0;i<6;i++){ no[i].nouryoku=nouryoku(c,l,i); printf("%d:%s Lv.%d\n 種族値:%d 個体値:%d HP:%4.2f タイプ:%s\n      技1:%s 技2:%s\n",i,c[i].name,l[i].number,c[i].syuzoku,c[i].kotai,no[i].nouryoku,c[i].type,c[i].waza1,c[i].waza2); } printf("\n\n__では、バトル準備です。\n誰をつかって戦いますか?(番号でえらんでください)>\n"); scanf("%d",&j); j=j%6; printf("%s Lv.1\n 種族値:%d 個体値:%d HP:%4.2f タイプ:%s\n      技1:%s 技2:%s\nが選ばれました。",c[j].name,c[j].syuzoku,c[j].kotai,no[j].nouryoku,c[j].type,c[j].waza1,c[j].waza2); printf("\n\n__誰と戦いますか?(番号でえらんでください)>\n"); scanf("%d",&k); k=k%6; while(k==j){ printf("同じキャラとは戦えません。選び直してください>\n"); scanf("%d",&k); k=k%6;} printf("%s Lv.1\n 種族値:%d 個体値:%d HP:%4.2f タイプ:%s\n      技1:%s 技2:%s\nが選ばれました。\n",c[k].name,c[k].syuzoku,c[k].kotai,no[k].nouryoku,c[k].type,c[k].waza1,c[k].waza2); printf(">%s VS %s<\n",c[j].name,c[k].name); printf(">>>バトル開始です<<<\n\n"); no[j].nouryoku=nouryoku(c,l,j); no[k].nouryoku=nouryoku(c,l,k); HP1=no[j].nouryoku; HP2=no[k].nouryoku; HP1MAX=HP1; HP2MAX=HP2; if(c[j].type2==4 && c[k].type2==3){ /*なにもおこらない*/ } else if(c[k].type2==4 && c[j].type2==3){ /*なにもおこらない*/ } else if(c[j].type2==5 || c[k].type2==5){ /*なにもおこらない*/ } else if(c[j].type2==1 && c[k].type2==3){ no[j].nouryoku=no[j].nouryoku*1.5; printf("%sの技はこうかばつぐんになるぞ!\n",c[j].name); } else if(c[j].type2==3 && c[k].type2==1){ no[k].nouryoku=no[k].nouryoku*1.5; printf("%sの技はこうかばつぐんになるぞ!\n",c[k].name); } else if(c[j].type2==4 && c[k].type2==1){ no[j].nouryoku=no[j].nouryoku*1.5; printf("%sの技はこうかばつぐんになるぞ!\n",c[j].name); } else if(c[j].type2==1 && c[k].type2==4){ no[k].nouryoku=no[k].nouryoku*1.5; printf("%sの技はこうかばつぐんになるぞ!\n",c[k].name); } else if(c[j].type2 + 1==c[k].type2){ no[k].nouryoku=no[k].nouryoku*1.5; printf("%sの技はこうかばつぐんになるぞ!\n",c[k].name); } else if(c[k].type2 + 1==c[j].type2){ no[j].nouryoku=no[j].nouryoku*1.5; printf("%sの技はこうかばつぐんになるぞ!\n",c[j].name); } while(HP1>0&&HP2>0){ printf("%sは何をしますか?\n 1:%s 2:%s>",c[j].name,c[j].waza1,c[j].waza2); scanf("%d",&m); if(m>=3) m=m%2+1; if(m==1){ h=kougeki(no,j); HP2-=h; if(h<=0){ printf("%sの%sは はずれてしまった!\n\n",c[j].name,c[j].waza1); } if(h>0){ printf("%sの%s! %sに%4.2fのダメージ\n\n",c[j].name,c[j].waza1,c[k].name,h); } } else if(m==2){ h=kaihuku(no,j); HP1+=h; if(HP1>HP1MAX){ HP1=HP1MAX; } if(h>0){ printf("%sの%s! %sは%4.2f回復\n\n",c[j].name,c[j].waza2,c[j].name,h); } else if(h==0){ printf("%sの%sは 失敗してしまった!\n\n",c[j].name,c[j].waza2); } else if(h<0){ printf("%sの%sは 毒入りだった!%sに%4.2fダメージ\n\n",c[j].name,c[j].waza2,c[j].name,-h); } } n=rand()%2+1; if(n==1){ y=kougeki(no,k); HP1-=y; if(y==0){ printf("%sの%sは はずれてしまった!\n\n",c[k].name,c[k].waza1); } else if(y>0){ printf("%sの%s! %sに%4.2fのダメージ\n\n",c[k].name,c[k].waza1,c[j].name,y); } } else if(n==2) { y=kaihuku(no,k); HP2+=y; if(HP2>HP2MAX){ HP2=HP2MAX; } if(y>0){ printf("%sの%s! %sは%4.2f回復\n\n",c[k].name,c[k].waza2,c[k].name,y); } else if(y==0){ printf("%sの%sは 失敗してしまった!\n\n",c[k].name,c[k].waza2); } else if(y<0){ printf("%sの%sは 毒入りだった!%sに%4.2fダメージ\n\n",c[k].name,c[k].waza2,c[k].name,-y); } } if(HP1<0){ HP1=0; } if(HP2<0){ HP2=0; } printf(" %s HP:%4.2f\n %s HP:%4.2f\n\n",c[j].name,HP1,c[k].name,HP2); } if(HP1>HP2){ printf("おめでとう!あなたの勝利!\n%sはレベル1上がった。\n\n",c[j].name); l[j].number++; l[j].doryoku+=5; } if(HP1==HP2){ printf("おめでとう!あなたの勝利!\n%sはレベル1上がった。\n\n",c[j].name); l[j].number++; l[j].doryoku+=5; } if(HP1