1 GP
[聖痕]傷害計算機 by 闇之羽翼
作者:影~飛雪│2012-04-17 14:49:27│巴幣:5│人氣:315
因為電腦用日文語系... 結果複製上來以後整個就悲劇了, 全部的中文字都變成亂碼, 以下我拿掉的部分都用/* */注解起來了, 然後新加入的部分都會用////////////////上下隔開, 另外也加入了鍛冶屋強化功能。 以下為原始碼: --------------------------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> int main(void) {unsigned short int menu_type; float turn_atk; float turn_def; float lead_atk_atk; float lead_atk_def; float lead_def_atk; float lead_def_def; float lead_atk_lead; float lead_def_lead; float lead_rate; float solider_amount_atk; float solider_amount_def; int solider_type_atk; int solider_type_def; float solider_atk; float solider_hp; float solider_type_rate; float damage_atk; float damage_hp; ////////////////////// int atk_up,def_up; float rate[5][5]={ {100,130, 70,115, 85}, { 70,100,130, 85,115}, {130, 70,100,115, 85}, { 85,115, 85,100,115}, {115, 85,115, 85,100}}; float type_myatk[20]={0,18,26,36,17,25,35,17,25,35,18,26,36,18,26,36,0,0,0,0}; float type_mydef[20]={0,34,50,70,34,50,70,32,48,68,28,44,64,28,44,64,0,0,0,0}; float type_ematk[10]={0,18,17,17,18,18,0,0,0,0}; float type_emdef[10]={0,34,34,32,28,28,0,0,0,0}; float atk_up_rate[5][5]={{0,0,0,0,0},{1,1,1,2,2},{3,4,4,5,5},{6,8,8,10,10},{0,0,0,0,0}}; float def_up_rate[5][5]={{0,0,0,0,0},{3,2,2,1,1},{8,6,6,3,3},{16,12,12,7,7},{0,0,0,0,0}}; ////////////////////// menu_type=1; printf("請輸入數字 :: ver1.1"); while (menu_type !=0) { printf("\n0.離開程式\n1.攻擊間的耗損\n2.最低秒敵兵力(暫無)\n3.能獲得多少EXP(暫無)\n請選擇要計算的類型:"); scanf("%d",&menu_type); if (menu_type ==1) { printf("請分別輸入我方傭兵的攻擊力、防禦力、統帥值:"); scanf("%f%f%f",&lead_atk_atk,&lead_atk_def,&lead_atk_lead); printf("我方兵力:"); scanf("%f",&solider_amount_atk); printf("我方兵種(1~3劍,4~6槍,7~9騎,10~12弓,13~15法):"); scanf("%d",&solider_type_atk); //////////////////////// printf("強化次數(攻擊、防禦 0~3):"); scanf("%d %d",&atk_up,&def_up); //////////////////////// printf("敵方兵力:"); scanf("%f",&solider_amount_def); printf("敵方兵種(1劍,2槍,3騎,4弓,5法):"); scanf("%d",&solider_type_def); while (solider_type_atk<1 or solider_type_atk>15 or solider_type_def<1 or solider_type_def>5 || atk_up<0 || atk_up>3 || def_up<0 || def_up>3) { printf("*請重新輸入*\n"); printf("我方兵種(1~3劍,4~6槍,7~9騎,10~12弓,13~15法):"); scanf("%f",&solider_type_atk); //////////////////////////////// printf("強化次數(攻擊、防禦 0~3):"); scanf("%d %d",&atk_up,&def_up); //////////////////////////////// printf("敵方兵種(1劍,2槍,3騎,4弓,5法):"); scanf("%f",&solider_type_def); } /////////////////// solider_type_rate=rate[(solider_type_atk-1)/3][solider_type_def-1]; /////////////////// /*if(solider_type_atk>=1 && solider_type_atk<=3) { if(solider_type_def==1) {solider_type_rate=100;} if(solider_type_def==2) {solider_type_rate=130;} if(solider_type_def==3) {solider_type_rate=70;} if(solider_type_def==4) {solider_type_rate=115;} if(solider_type_def==5) {solider_type_rate=85;} } if(solider_type_atk>=4 && solider_type_atk<=6) { if(solider_type_def==1) {solider_type_rate=70;} if(solider_type_def==2) {solider_type_rate=100;} if(solider_type_def==3) {solider_type_rate=130;} if(solider_type_def==4) {solider_type_rate=85;} if(solider_type_def==5) {solider_type_rate=115;} } if(solider_type_atk>=7 && solider_type_atk<=9) { if(solider_type_def==1) {solider_type_rate=130;} if(solider_type_def==2) {solider_type_rate=70;} if(solider_type_def==3) {solider_type_rate=100;} if(solider_type_def==4) {solider_type_rate=115;} if(solider_type_def==5) {solider_type_rate=85;} } if(solider_type_atk>=10 && solider_type_atk<=12) { if(solider_type_def==1) {solider_type_rate=85;} if(solider_type_def==2) {solider_type_rate=115;} if(solider_type_def==3) {solider_type_rate=85;} if(solider_type_def==4) {solider_type_rate=100;} if(solider_type_def==5) {solider_type_rate=115;} } if(solider_type_atk>=13 && solider_type_atk<=15) { if(solider_type_def==1) {solider_type_rate=115;} if(solider_type_def==2) {solider_type_rate=85;} if(solider_type_def==3) {solider_type_rate=115;} if(solider_type_def==4) {solider_type_rate=85;} if(solider_type_def==5) {solider_type_rate=100;} } */ //////////////////// solider_atk=type_myatk[solider_type_atk]+atk_up_rate[atk_up][(solider_type_atk-1)/3]; solider_hp=type_emdef[solider_type_def]; //////////////////// /* if(solider_type_atk==1 or solider_type_atk==10 or solider_type_atk==13) {solider_atk=18;} if(solider_type_atk==2 or solider_type_atk==11 or solider_type_atk==14) {solider_atk=26;} if(solider_type_atk==3 or solider_type_atk==12 or solider_type_atk==15) {solider_atk=36;} if(solider_type_atk==4 or solider_type_atk==7) {solider_atk=17;} if(solider_type_atk==5 or solider_type_atk==8) {solider_atk=25;} if(solider_type_atk==6 or solider_type_atk==9) {solider_atk=35;} if(solider_type_def==1 or solider_type_def==2) {solider_hp=34;} if(solider_type_def==3) {solider_hp=32;} if(solider_type_def==4 or solider_type_def==5) {solider_hp=28;} */ if(solider_amount_def>=660) { if(solider_amount_def>=1710) { lead_def_atk=660; lead_def_def=160; lead_def_lead=70; } else { lead_def_atk=590; lead_def_def=140; lead_def_lead=64; } } else { lead_def_atk=520; lead_def_def=120; lead_def_lead=58; } turn_atk = solider_amount_atk * solider_atk * (lead_atk_lead + 100) / 200 * (solider_type_rate / 100); damage_atk = turn_atk / solider_hp + (lead_atk_atk - lead_def_def) / solider_hp; printf("turn_atk=%.0f\n",turn_atk); printf("我方的殺敵數=%.0f\n",damage_atk); //////////////////////////////// solider_type_rate=rate[solider_type_def-1][(solider_type_atk-1)/3]; //////////////////////////////// /*if(solider_type_def==1) { if(solider_type_atk>=1 && solider_type_atk<=3) {solider_type_rate=100;} if(solider_type_atk>=4 && solider_type_atk<=6) {solider_type_rate=130;} if(solider_type_atk>=7 && solider_type_atk<=9) {solider_type_rate=70;} if(solider_type_atk>=10 && solider_type_atk<=12) {solider_type_rate=115;} if(solider_type_atk>=13 && solider_type_atk<=15) {solider_type_rate=85;} } if(solider_type_def==2) { if(solider_type_atk>=1 && solider_type_atk<=3) {solider_type_rate=70;} if(solider_type_atk>=4 && solider_type_atk<=6) {solider_type_rate=100;} if(solider_type_atk>=7 && solider_type_atk<=9) {solider_type_rate=130;} if(solider_type_atk>=10 && solider_type_atk<=12) {solider_type_rate=85;} if(solider_type_atk>=13 && solider_type_atk<=15) {solider_type_rate=115;} } if(solider_type_def==3) { if(solider_type_atk>=1 && solider_type_atk<=3) {solider_type_rate=130;} if(solider_type_atk>=4 && solider_type_atk<=6) {solider_type_rate=70;} if(solider_type_atk>=7 && solider_type_atk<=9) {solider_type_rate=100;} if(solider_type_atk>=10 && solider_type_atk<=12) {solider_type_rate=115;} if(solider_type_atk>=13 && solider_type_atk<=15) {solider_type_rate=85;} } if(solider_type_def==4) { if(solider_type_atk>=1 && solider_type_atk<=3) {solider_type_rate=85;} if(solider_type_atk>=4 && solider_type_atk<=6) {solider_type_rate=115;} if(solider_type_atk>=7 && solider_type_atk<=9) {solider_type_rate=85;} if(solider_type_atk>=10 && solider_type_atk<=12) {solider_type_rate=100;} if(solider_type_atk>=13 && solider_type_atk<=15) {solider_type_rate=115;} } if(solider_type_def==5) { if(solider_type_atk>=1 && solider_type_atk<=3) {solider_type_rate=115;} if(solider_type_atk>=4 && solider_type_atk<=6) {solider_type_rate=85;} if(solider_type_atk>=7 && solider_type_atk<=9) {solider_type_rate=115;} if(solider_type_atk>=10 && solider_type_atk<=12) {solider_type_rate=85;} if(solider_type_atk>=13 && solider_type_atk<=15) {solider_type_rate=100;} } */ /////////////////////////////// solider_atk=type_ematk[solider_type_def]; solider_hp=type_mydef[solider_type_atk]+def_up_rate[def_up][(solider_type_atk-1)/3];; /////////////////////////////// /* if(solider_type_def==1 or solider_type_def==4 or solider_type_def==5) {solider_atk=18;} if(solider_type_def==2 or solider_type_def==3) {solider_atk=17;} if(solider_type_atk==1 or solider_type_atk==4) {solider_hp=34;} if(solider_type_atk==2 or solider_type_atk==5) {solider_hp=50;} if(solider_type_atk==3 or solider_type_atk==6) {solider_hp=70;} if(solider_type_atk==7) {solider_hp=32;} if(solider_type_atk==8) {solider_hp=48;} if(solider_type_atk==9) {solider_hp=68;} if(solider_type_atk==10 or solider_type_atk==13) {solider_hp=28;} if(solider_type_atk==11 or solider_type_atk==14) {solider_hp=44;} if(solider_type_atk==12 or solider_type_atk==15) {solider_hp=64;} */ turn_atk = solider_amount_def * solider_atk * (lead_def_lead + 100) / 200 * (solider_type_rate / 100); damage_atk = turn_atk / solider_hp + (lead_def_atk - lead_atk_def) / solider_hp; printf("turn_atk=%.0f\n",turn_atk); printf("敵方的殺敵數=%.0f\n",damage_atk); } } return 0;} //bug歷史 /* v0.1 最初版本,容易崩潰 v0.2 改正兵種間倍率,程式依舊不穩 v1.0 傷害公式大改寫 v1.1將雙方的損傷一起計算 */
引用網址:https://home.gamer.com.tw/TrackBack.php?sn=1582211
All rights reserved. 版權所有,保留一切權利
相關創作
留言 共 1 篇留言
羽翼 :
想請教一下:
solider_type_rate=rate[(solider_type_atk-1)/3][solider_type_def-1];
這段要怎該怎麼理解好 "XD~?
04-20 18:36
我要留言 提醒:您尚未登入,請先
登入 再留言
送出 1 喜歡 ★wendy0909 可決定是否刪除您的留言,請勿發表違反站規文字。
回創作列表 回頂端