創作內容

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 可決定是否刪除您的留言,請勿發表違反站規文字。

追蹤私訊切換新版閱覽

作品資料夾

shane8124各位帥哥美女們
新聞學院的戀愛預報 111#純黑的巧克力塔 更新看更多我要大聲說昨天20:01


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】