英雄无敌3吧 关注:188,823贴子:4,166,069

用计算机模拟蛇妖和黑骑的单挑

只看楼主收藏回复

看到一个帖子用c程序模拟单挑,概率在下不是很懂,试着编了个程序,我是这麽认为,黑骑等待,蛇妖前进,黑骑攻击,蛇妖反击,黑骑再攻击,往复,那个开始蛇妖防御我没弄,我觉得蛇妖有消极行为。


1楼2011-05-16 23:11回复



    2楼2011-05-16 23:13
    回复
      2025-08-20 14:16:31
      广告
      不感兴趣
      开通SVIP免广告
      擦,linux n和N都代表什么?


      3楼2011-05-16 23:20
      回复

        源代码,懒得排版了#include<stdio.h>#include<time.h>#include<stdlib.h>const int DK_a=18;const int DK_d=18;const int DK_hp=120;const int naga_a=16;const int naga_d=13;const int naga_hp=110;int main(){ int DK_n,naga_n,s,naga_win,DK_win,n,i,an,bn; long int DK_all_hp,naga_all_hp; float DK_k,naga_k; naga_win=0; DK_win=0; srand((unsigned)(time(NULL))); printf("DK_n="); scanf("%d",&an); printf("naga_n="); scanf("%d",&bn); printf("N="); scanf("%d",&n); for(i=0;i!=n;++i) { DK_n=an; naga_n=bn;
        DK_all_hp=DK_hp*DK_n; naga_all_hp=naga_hp*naga_n;
        //DK wait and attack; s=rand()%5; if(s==0) DK_k=DK_n*(rand()%(60-30+1)+30)*(1+(DK_a-naga_d)*0.05); else DK_k=DK_n*(rand()%(30-15+1)+15)*(1+(DK_a-naga_d)*0.05); naga_all_hp=naga_all_hp-DK_k; if(naga_all_hp<=0) { DK_win++; continue; } if(naga_all_hp%naga_hp==0) naga_n=naga_all_hp/naga_hp; else naga_n=naga_all_hp/naga_hp+1; //naga counterattack naga_k=naga_n*30*(1+(naga_a-DK_d)*0.025); DK_all_hp=DK_all_hp-naga_k; if(DK_all_hp<=0) { naga_win++; continue; } if(DK_all_hp%DK_hp==0) DK_n=DK_all_hp/DK_hp; else DK_n=DK_all_hp/DK_hp+1; do { //DK attack; s=rand()%5; if(s==0) DK_k=DK_n*(rand()%(60-30+1)+30)*(1+(DK_a-naga_d)*0.05); else DK_k=DK_n*(rand()%(30-15+1)+15)*(1+(DK_a-naga_d)*0.05); naga_all_hp=naga_all_hp-DK_k; if(naga_all_hp<=0) { DK_win++; break; } if(naga_all_hp%naga_hp==0) naga_n=naga_all_hp/naga_hp; else naga_n=naga_all_hp/naga_hp+1; //naga counterattack naga_k=naga_n*30*(1+(naga_a-DK_d)*0.025); DK_all_hp=DK_all_hp-naga_k; if(DK_all_hp<=0) { naga_win++; break; } if(DK_all_hp%DK_hp==0) DK_n=DK_all_hp/DK_hp; else DK_n=DK_all_hp/DK_hp+1; //naga attack; naga_k=naga_n*30*(1+(naga_a-DK_d)*0.025); DK_all_hp=DK_all_hp-naga_k; if(DK_all_hp<=0) { naga_win++; break; } if(DK_all_hp%DK_hp==0) DK_n=DK_all_hp/DK_hp; else DK_n=DK_all_hp/DK_hp+1;
        } while(1); } printf("Naga win:%d\n",naga_win); printf("DK win:%d\n",DK_win); return 0;}
        


        4楼2011-05-16 23:26
        回复
          n是数量,N是试验次数


          5楼2011-05-16 23:27
          回复



            6楼2011-05-16 23:28
            回复
              可能有些问题,有不正确的请指出阿


              7楼2011-05-16 23:30
              回复
                你不排版很难想象有人能读下来……解释一下吧,DK的伤害和暴击用的是随机函数模拟?


                8楼2011-05-16 23:30
                回复
                  2025-08-20 14:10:31
                  广告
                  不感兴趣
                  开通SVIP免广告
                  是的


                  9楼2011-05-16 23:32
                  回复
                    结果呢?


                    10楼2011-05-16 23:38
                    回复
                      结果就是单挑黑骑不是蛇妖的对手,群殴黑骑胜蛇妖


                      11楼2011-05-16 23:43
                      回复
                        感觉naga再一次被凌虐……随机函数原理懂了,语句还是不会,代码读不了


                        12楼2011-05-16 23:47
                        回复
                          没算士气对娜迦吃亏了些


                          IP属地:上海13楼2011-05-17 07:57
                          回复
                            就强在DK先手了,第一刀压制了蛇妖的数量


                            14楼2011-05-17 12:34
                            回复
                              2025-08-20 14:04:31
                              广告
                              不感兴趣
                              开通SVIP免广告
                              没有防御和士气 蛇妖亏大了


                              IP属地:浙江15楼2011-05-17 12:44
                              回复