Re: [徵文] [心得] 攻擊骰的數值
按照慣例(有慣例可循嗎XD)我寫了大聖堂對上普通攻擊的骰傷期望值。
我用的編譯器當然是Dev C++ 囉!
(我也知道Dev C++有bug啦= =)
然後,我不會上傳EXE檔,所以煩請板上的板友幫我編譯一下,
上傳EXE檔,順便幫我抓bug一下。
/*
Unlight 戰鬥傷害預測
開發人員 Sonava
*/
#include <cstdarg>
#include <iostream>
using namespace std;
double pas(int,int);//巴斯卡三角形
double power3(int);//計算3的n次方
double t(double,int,int,int);//計算結果
double power2(int);
int main (void)
{
int a,d,hp,i,j;
char again;
double a2,d2,c,lethal,cans,temp;
cout<<"Unlight damage predict"<<endl;
cout<<"Developer: Sonava"<<endl;
do{
cout<<"please input attack value: ";
cin>>a;
cout<<"please input defense value: ";
cin>>d;
cout<<"please input critical value(EX:0.05): ";
cin>>c;
cout<<"please input HP value: ";
cin>>hp;
a2=power3(a); //機率底
d2=power3(d); //機率底
double as[a],ds[d],ans[a+1],ans2[a+1];
for(i=0;i<=a;i++) as[i]=t(a2,a,i,a-i); //計算單次擲骰各數機率
for(i=0;i<=d;i++) ds[i]=t(d2,d,i,d-i); //計算單次擲骰各數機率
for(i=1;i<=a;i++) ans[i]=0,ans2[i]=0; //歸零
ans[0]=1;
for(i=a;i>0;i--) //計算單次擲骰結果機率
{
for(j=0;((i+j)<=a)&&(j<=d);j++)ans[i]+=as[i+j]*ds[j];
ans[0]-=ans[i];
}
for(i=0;i<=a;i++)
{
for(j=a,temp=0;j>i;j--) temp=ans[j]+temp;//
ans2[i]=ans[i]*ans[i]+2*ans[i]*temp;
}
for(temp=0,i=0;i<=a;i++)temp+=(ans2[i]*i);
for(i=0;i<=a;i++)
cout<<"v: "<<i<<"\t"<<"p: "<<ans2[i]<<endl;
cout<<"v=value,p=possibility"<<endl;
for(cans=0,i=a;cans<c;i--) cans+=ans2[i];
cout<<"damage value is in: "<<i+1<<endl;
for(i=0,lethal=0;i<hp;i++) lethal+=ans2[i];
cout<<"lethal possibility is: "<<1-lethal<<endl;
cout<<"expect is:"<<temp<<endl;
cout<<"do again?(y/n)";
cin>>again;
}
while((again!='n')&(again!='N'));
return 0;
}
double pas(int n,int p)
{
double ans=1;
int i;
if((n-p)>p) p=n-p;//計算出較大的值
for(i=n;i>p;i--)ans*=i;//算出最小的乘數
for(i=(n-p);i>0;i--)ans/=i;//算出需要除掉的數
return ans;
}
double power3(int a)
{
if(a>0) return power3(a-1)*3;
else return 1;
}
double t(double a,int b,int c, int d)
{
return pas(b,c)/a*power2(d);
}
double power2(int d)
{
if(d>0) return power2(d-1)*2;
else return 1;
}
--
當我們經過裁縫店時,我就說這是裁縫店,並且描述裁縫師做些什麼,
經過麵包店,我就說這是麵包店,而且說明麵包師傅的工作,
經過色情玩具店,我就趕快指著對街說,對面是壁紙專賣店,然後解釋壁紙是什麼。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 1.164.107.239
推
07/14 19:56, , 1F
07/14 19:56, 1F
推
07/14 20:02, , 2F
07/14 20:02, 2F
推
07/14 20:06, , 3F
07/14 20:06, 3F
推
07/14 21:23, , 4F
07/14 21:23, 4F
推
07/14 22:33, , 5F
07/14 22:33, 5F
推
07/15 00:56, , 6F
07/15 00:56, 6F
討論串 (同標題文章)
Unlight 近期熱門文章
PTT遊戲區 即時熱門文章
10
38