小白的第一篇博客!
暑假无聊自己写了个原神抽卡模拟hhh,果然无论在游戏里还是模拟中我都很非呢()
#include<bits/stdc++.h>
using namespace std;
int chou(int cishu,bool wai){
int p,fa;
if(cishu<=73)
p=5;
else if(cishu==90)
p=999;
else
p=(cishu-73)*60+5;
fa=rand()%1000;
if(fa>p)
return 2;
if(wai==1)
return 0;
return rand()%2;
}
int wuqi(int cishu2,int dinggui){
int p,fa;
if(cishu2<=62)
p=6;
else if(cishu2==80)
p=999;
else
p=(cishu2-62)*70+6;
fa=rand()%1000;
if(fa>p)
return 2;
if(dinggui==2)
return 0;
return rand()%2;
}
int sixing(int shu,bool wai2){
int p,fa,r;
if(shu<9)
p=50;
else if(shu==9)
p=560;
else
p=999;
fa=rand()%1000;
if(fa>p)
return 2;
if(wai2==1)
return 0;
r=rand()%4;
if(r<1)
return 1;
return 0;
}
int main(){
long long cishu=1,cishu2=1;
bool wai=0;bool wai2=0;
int a,jieguo,end,b,m;
int shu=1,dinggui=0;
string renwu;
char k;
int nuo=0,wu=0,zao=0,zhong=0,ke=0,mo=0,qi=0,qin=0,di=0,ti=0;
cout<<"输入j抽up角色池,输入w抽up武器池"<<endl;
cin>>k;
if(k=='w'){
cout<<"输入0定轨阿莫斯之弓,输入1定轨贯虹之槊"<<endl;
cin>>m;
}
cout<<"输入1抽一发,输入10抽十连(实际上输入数字几就抽几发)"<<endl;
cout<<" 累计"<<endl;
while(1){
srand((unsigned int) time(NULL));
cin>>a;
if(k=='j')
for(int i=0;i<a;i++){
jieguo=chou(cishu,wai);
if(jieguo==2){
end=sixing(shu,wai2);
if(end==2)
cout<<"非"<<"\t\t"<<cishu<<endl;
else if(end==0) {
b=rand()%4;
if(b==0) {
++nuo;
if(nuo>=6) cout<<"诺艾尔 满命\t"<<cishu<<endl;
else
cout<<"诺艾尔 "<<nuo<<"命"<<"\t"<<cishu<<endl;
}
else if(b==1) {
++wu;
if(wu>=6) cout<<"五郎 满命\t"<<cishu<<endl;
else
cout<<"五郎 "<<wu<<"命"<<"\t"<<cishu<<endl;
}
else if(b==2) {
++zao;
if(zao>=6) cout<<"早柚 满命\t"<<cishu<<endl;
else
cout<<"早柚 "<<zao<<"命"<<"\t"<<cishu<<endl;
}
else cout<<"四星武器"<<"\t"<<cishu<<endl;
wai2=0;
shu=0;
}
else{
cout<<"其他四星角色\t"<<cishu<<endl;
wai2=1;
shu=0;
}
}
else if(jieguo==0) {
++zhong;
if(zhong>=6) cout<<"钟离 满命\t"<<cishu<<" 恭喜恭喜!"<<endl;
else
cout<<"钟离 "<<zhong<<"命"<<"\t"<<cishu<<" 恭喜恭喜!"<<endl;
wai=0;
cishu=0;
}
else {
b=rand()%6;
switch(b){
case 0: ++qi;if(qi>=6) cout<<"七七 满命\t";
else cout<<"七七\t"<<qi<<"命"; break;
case 1: ++mo;if(mo>=6) cout<<"莫娜 满命\t";
else cout<<"莫娜\t"<<mo<<"命"; break;
case 2: ++ke;if(ke>=6) cout<<"刻晴 满命\t";
else cout<<"刻晴\t"<<ke<<"命"; break;
case 3: ++qin;if(qin>=6) cout<<"琴 满命\t";
else cout<<"琴\t"<<qin<<"命"; break;
case 4: ++di;if(di>=6) cout<<"迪卢克 满命\t";
else cout<<"迪卢克\t"<<di<<"命"; break;
case 5: ++ti;if(ti>=6) cout<<"提纳里 满命\t";
else cout<<"提纳里\t"<<ti<<"命"; break;
}
cout<<"\t"<<cishu<<" 哎呀,小保底歪了啊!(*…^ …*)"<<endl;
wai=1;
cishu=0;
}
cishu++;
shu++;
}
else{
for(int i=0;i<a;i++){
jieguo=wuqi(cishu2,dinggui);
if(jieguo==2){
end=sixing(shu,wai2);
if(end==2)
cout<<"非"<<"\t\t"<<cishu2<<endl;
else if(end==0){
cout<<"本期四星\t"<<cishu2<<endl;
wai2=0;
shu=0;
}
else{
cout<<"其他四星物品\t"<<cishu2<<endl;
wai2=1;
shu=0;
}
}
else if(jieguo==0){
if(m==0)
cout<<"阿莫斯之弓\t"<<cishu2;
else if(m==1)
cout<<"贯虹之槊\t"<<cishu2;
cout<<" 恭喜恭喜!"<<endl;
dinggui=0;
cishu2=0;
}
else{
if(m==0)
cout<<"贯虹之槊\t"<<cishu2;
else if(m==1)
cout<<"阿莫斯之弓\t"<<cishu2;
dinggui++;
cout<<" 定轨:"<<dinggui<<endl;
cishu2=0;
}
cishu2++;
shu++;
}
}
}
return 0;
}
不知道有没有bug,欢迎大家讨论!