- 问答
【FAQ】问答&讨论贴
- 2024-8-29 16:06:46 @
不允许学生创建新讨论了,后面大家可以在这里讨论相关内容。会定期清理。
删了一些同学们自己举办的比赛的帖子。
我建议你们可以私聊参赛。讨论区太乱了,有些提问我看不到了已经。
更重要的是,还是先好好学算法吧各位同学,当你拿了提高组 分,再考虑自己举办一些简单的比赛。
语法场的初心还是为了学生们巩固基础语法,高水平选手可以选择参加入门语法场和入门提高场 目前也没看见能打的 (参考新春马拉松赛成绩)
感觉不过瘾还可以打atcoder和codeforces
448 条评论
-
chengwenzhe G神保佑 一发AC 比赛AK LV 6 (352/3852) @ 2024-12-6 21:57:58
本人自创小游戏 欢迎大家来改编 改编完了发一下
#include<bits/stdc++.h> using namespace std; int suijishu(){ return rand()+43+26; } int suijishu1(int n){ return rand()%n+1; } int main(){ int n; int a=suijishu(); system("cls"); cout<<"boob!!"; system("cls"); int men=suijishu1(3); int daoju=suijishu1(4); int mingyun; int jueding; for(int i=1;i<=men;i++){ n=suijishu1(2); cout<<"第"<<i<<"道门"<<endl; cout<<"你的道具"<<endl; if(daoju==1){ cout<<"金药"<<endl; } else if(daoju==2){ cout<<"放大镜"<<endl; } else{ cout<<"无"<<endl; } mingyun=suijishu1(5); cin>>jueding; cout<<"是否使用道具(使用输入道具编号,否则输入3)"<<endl; cin>>jueding; if(jueding==1 && daoju==1){ a=1; daoju=0; } else if(jueding==2 && daoju==2){ i=i/2; daoju=0; } cout<<"请选择门"<<endl; cin>>jueding; if(jueding==mingyun){ cout<<"boob!! 你已死亡"<<endl; return 0; } else{ cout<<"运气好啊!"<<endl; cout<<"结束"; system("cls"); cout<<a<<endl;//清屏 if(a>120){ cout<<"boob!! 你已死亡"; } else{ cout<<"万岁!你确确实实的赢了!"<<endl; cout<<"你的对手被boob了!"; } return 0; } } }
-
2024-12-6 20:56:15@
第二题没开long long痛失阿克
我要变异了!!!!!!!!!!!!!!!!!!!!! -
2024-12-6 16:14:04@
咋还是语法场
-
2024-12-5 17:25:49@
这个网址的 炸了
-
2024-12-5 12:50:40@
没扣硬币@
-
2024-12-4 17:02:22@
离谱,负数硬币
-
2024-12-4 0:41:09@
我发明了一种 抽象离散化
#include<bits/stdc++.h> using namespace std; struct node { int x;//原数 int id;//在原数组里的编号 int t;//离散化之后的数字 }a[100005]; bool cmp(node x,node y) { return x.x<y.x; } bool cmp2(node x,node y) { return x.id<y.id; } int n; int main() { ios::sync_with_stdio(0); cin.tie(0); cin>>n; for(int i=1;i<=n;i++) { cin>>a[i].x; a[i].id=i; } sort(a+1,a+1+n,cmp); int tot=0; for(int i=1;i<=n;) { int X=a[i].x; while(a[i].x==X) { a[i].t=tot; i++; } tot++; } sort(a+1,a+1+n,cmp2); for(int i=1;i<=n;i++) { cout<<a[i].t<<' '; } return 0; }
-
2024-12-3 21:42:42@
zswdlqy 能不能把你的七圣之元加一下注解?
-
2024-12-3 20:37:08@
在线VScode 要密码的找我
-
2024-12-3 18:53:18@
完全无法提供信息的地图
-
2024-12-2 22:51:54@
#include<bits/stdc++.h> #define int long long using namespace std; int a[200010],b[200010]; signed main(){ ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); //hypot(x,y)不香吗 double ans=0; int n; cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]>>b[i]; if(i==1){ ans+=hypot(a[i],b[i]); }else{ ans+=hypot(a[i]-a[i-1],b[i]-b[i-1]); } } ans+=hypot(a[n],b[n]); cout<<fixed<<setprecision(20)<<ans; return 0; }
此题足已显现c++自带库函数的魅力
-
2024-12-2 22:29:17@
求助!
ABC375B
怎么回事?输出-nan了(听起来好可怕)
#include <bits/stdc++.h> #include <cmath> using namespace std; int n,x[200005],y[200005],xx,xy; long double a=0.0; int main(){ cin>>n; for(int i=1;i<=n;i++){ cin>>x[i]>>y[i]; a+=sqrt((xx-x[i])*(xx-x[i])+(xy-y[i])*(xy-y[i])); xx=x[i]; xy=y[i]; } a+=sqrt((x[n]-0)*(x[n]-0)+(y[n]-0)*(y[n]-0)); cout<<fixed<<setprecision(20)<<a; return 0; }
-
2024-12-2 21:35:08@
七圣之元(第一章)
#include<bits/stdc++.h> #include<stdio.h> using namespace std; int suijishu(int n){ return rand()%n+1; } int main(){ srand(time(0)); cout<<"七圣之元"<<endl; cout<<"科技未来出版"<<endl; cout<<"输入任意数继续"<<endl; char lin; cin>>lin; system("cls");//清屏 cout<<"话不多说"<<endl; printf( "######################################################################\n" "# #\n" "# & & #\n" "# &&&&&&&&&&&& &&&&&&&&& & #\n" "# & & &&&&&&&&&&& #\n" "# &&&&&&&&&&&& &&&&&&&&&&& & & #\n" "# & & & & #\n" "# & &&&&&&&&&&&& & & & #\n" "# & & & & & & & #\n" "# & &&&&&&&&&&&& &&&&&&& & &&& #\n" "# #\n" "######################################################################\n" ); cout<<"七圣之元"<<endl; cout<<"输入一个good"<<endl; string sui; cin>>sui; cout<<"谢谢夸奖"<<endl; system("cls");//清屏 cout<<"请输入一个一百以上的数"<<endl; int su; cin>>su; int yun=suijishu(su); cout<<"你的今日幸运数字是"<<yun<<endl; cout<<"准备好了吗?"<<endl; cin>>su; cout<<"第一章"<<endl; cout<<"生死之门"<<endl; cout<<"规则如下"<<endl; cout<<"规则1 你可以选择1或2号门,其中有一个是生门,另一个是死门 规则2 可以使用道具(你只有一个):1 金药(可以免死亡)2 放大镜(可以将剩余门数除以二)规则3 门数未知(最多十个门)"<<endl; int men=suijishu(10); int daoju=suijishu(3); if(daoju==3){ daoju=1; } cout<<"游戏开始"<<endl; cout<<"输入1继续"<<endl; system("cls");//清屏 int mingyun; int jueding; int hu=0; for(int i=1;i<=men;i++){ cout<<"第"<<i<<"道门"<<endl; cout<<"你的道具"<<endl; if(daoju==1){ cout<<"金药"<<endl; } else if(daoju==2){ cout<<"放大镜"<<endl; } else{ cout<<"无"<<endl; } mingyun=suijishu(2); cin>>jueding; cout<<"是否使用道具(使用输入道具编号,否则输入3)"<<endl; cin>>jueding; if(jueding==1 && daoju==1){ hu=1; daoju=0; } else if(jueding==2 && daoju==2){ i=i/2; daoju=0; } cout<<"请选择门"<<endl; cin>>jueding; if(jueding==mingyun){ cout<<"你已死亡"<<endl; return 0; } else{ cout<<"运气好啊!"<<endl; } system("cls");//清屏 } cout<<"你赢了!"<<endl; return 0; }
-
2024-12-2 12:14:09@
我才猜这次的周赛题目是
33DAI的编辑字符串
33DAI的遗失的赋值
33DAI的树的遍历
33DAI的树上查询
qwq
-
2024-12-1 14:08:58@
#include<bits/stdc++.h> #include <windows.h> using namespace std; int Your=6,Other=6; string daojuname[]={"放大镜","手铐","小刀","烟","饮料"}; double Yourmoney; int shi,kong; int q[10],qlen; int Rand(int x,int y){ int A=rand(),B=rand(); return A*1ll*B%(y-x+1)+x; } int T; int daojulen; int daoju[10]; int daojulen1; int daoju1[10]; void build_gun(){ kong=Rand(1,4); shi=Rand(1,4); qlen=0; printf("%d发实弹,%d发空弹\n",shi,kong); int a1=kong,a2=shi; for(int i=1;i<=kong+shi;i++){ // Sleep(50); int sum=Rand(1,a1+a2); if(sum<=a1){ a1--; q[++qlen]=2; }else{ a2--; q[++qlen]=1; } } int maxn=min(4,8-daojulen); printf("你获得了%d个道具:\n",maxn); daojulen+=maxn; for(int i=1;i<=maxn;i++){ // Sleep(50); int kkk=Rand(0,4); daoju[kkk]++; cout<<daojuname[kkk]; if(i!=maxn){ printf(","); } } printf("\n"); maxn=min(4,8-daojulen1); printf("恶魔获得了%d个道具:\n",maxn); daojulen1+=maxn; for(int i=1;i<=maxn;i++){ int kkk=Rand(0,4); daoju1[kkk]++; cout<<daojuname[kkk]; if(i!=maxn){ printf(","); } } printf("\n"); system("pause"); system("cls"); } void IsOver(){ if(Your<=0){ printf("你输了\n"); system("pause"); exit(0); } if(Other<=0){ printf("你赢了\n你获得了奖金$%.2lf\n",Yourmoney); system("pause"); exit(0); } } void wait(){ for(int i=1;i<=3;i++){ Sleep(500); printf("."); } Sleep(500); } int Hurt=1; int shoukao_you; void Timeyou(){ int x; while(1){ printf("你的生命:%d/6\n恶魔生命:%d/6\n",Your,Other); printf("剩余实弹数:%d 剩余空弹数:%d\n",shi,kong); printf("你现在拥有的道具:\n"); for(int i=0;i<=4;i++){ cout<<daojuname[i]; printf("%d",daoju[i]); printf("个"); if(i!=4){ printf(","); } } printf("\n"); printf("恶魔现在拥有的道具:\n"); for(int i=0;i<=4;i++){ cout<<daojuname[i]; printf("%d",daoju1[i]); printf("个"); if(i!=4){ printf(","); } } printf("\n"); printf("现在是你的回合\n"); printf("你要\n1.向恶魔开枪\n2.向自己开枪\n"); for(int i=0;i<=4;i++){ printf("%d.使用",i+3); cout<<daojuname[i]<<'\n'; } scanf("%d",&x); if(1<=x&&x<=7){ break; } printf("输入不合法\n"); Sleep(1145); system("cls"); } if(x==1){ printf("你决定向恶魔开枪"); T++; wait(); if(q[qlen]==2){ Yourmoney+=(double)(2000.0*(Hurt*1.0)*(1+(double)(shi)*1.0/(double)(shi+kong))); kong--; qlen--; Hurt=1; printf("是空弹\n"); if(shoukao_you==1){ shoukao_you=0; printf("因为你使用了手铐,所以可以再来一次\n"); Sleep(500); T--; } }else{ // printf("((%lf))\n",Yourmoney); Yourmoney+=(double)(5000.0*(Hurt*1.0)*(1+(double)(kong)*1.0/(double)(shi+kong))); // printf("{{%lf}}\n",Yourmoney); shi--; qlen--; Other-=Hurt; Hurt=1; printf("是实弹\n"); Sleep(500); IsOver(); if(shoukao_you==1){ shoukao_you=0; Yourmoney+=1000.0; printf("因为你使用了手铐,所以可以再来一次\n"); Sleep(500); T--; } } }else if(x==2){ printf("你决定向自己开枪"); wait(); if(q[qlen]==2){ Yourmoney+=(double)(2000.0*(Hurt*1.0)*(1+(double)(kong)*1.0/(double)(shi+kong))); kong--; qlen--; Hurt=1; printf("是空弹\n"); }else{ Yourmoney+=5000.0*(1+(double)(shi)*1.0/(double)(shi+kong)); T++; shi--; qlen--; Your-=Hurt; Hurt=1; printf("是实弹\n"); Sleep(500); IsOver(); if(shoukao_you==1){ shoukao_you=0; printf("因为你使用了手铐,所以可以再来一次\n"); Sleep(500); T--; } } }else if(x==3){//{"放大镜","手铐","小刀","烟","饮料"}; if(daoju[0]){ daoju[0]--; daojulen--; printf("你使用了放大镜\n"); wait(); printf("\n你看到了"); if(q[qlen]==1){ printf("实弹\n"); Yourmoney+=2500.0; }else{ printf("空弹\n"); } Sleep(500); printf("\n"); }else{ printf("你现在没有放大镜\n"); Sleep(1145); system("cls"); } }else if(x==4){ if(daoju[1]){ if(!shoukao_you){ daoju[1]--; daojulen--; printf("你使用了手铐\n"); printf("你获得了连开两枪的机会\n"); shoukao_you=1; }else{ printf("你已经用过手铐了\n"); } Sleep(1145); system("cls"); }else{ printf("你现在没有手铐\n"); Sleep(1145); system("cls"); } }else if(x==5){ if(daoju[2]){ if(Hurt==1){ daoju[2]--; daojulen--; printf("你使用了小刀\n"); printf("若下一发为实弹则伤害+1\n"); Yourmoney+=500.0; Hurt=2; }else{ printf("你已经用过小刀了\n"); } Sleep(1145); system("cls"); }else{ printf("你现在没有小刀\n"); Sleep(1145); system("cls"); } }else if(x==6){ if(daoju[3]){ if(Your^6){ daoju[3]--; daojulen--; printf("你使用了烟\n"); printf("你回复了一点生命\n"); Yourmoney+=500.0; Your++; }else{ printf("你现在不需要烟\n"); } Sleep(1145); }else{ printf("你现在没有烟\n"); Sleep(1145); system("cls"); } }else{ if(daoju[4]){ daoju[4]--; daojulen--; printf("你使用了饮料\n"); wait(); printf("\n"); printf("你退了一发"); if(q[qlen]==2){ printf("空弹"); kong--; }else{ printf("实弹"); Yourmoney+=500.0; shi--; } qlen--; Sleep(500); }else{ printf("你现在没有饮料\n"); Sleep(1145); system("cls"); } } Sleep(1000); system("cls"); } int Know;//通过放大镜得知下一发子弹 int shoukaoemo; void fightyou(){ printf("恶魔决定向你开枪"); T++; wait(); if(q[qlen]==2){ Yourmoney+=(double)(2000.0*(Hurt*1.0)*(1+(double)(kong)*1.0/(double)(shi+kong))); kong--; qlen--; Hurt=1; Know=0; printf("是空弹\n"); if(shoukaoemo){ printf("因为恶魔使用了手铐,所以可以再来一次\n"); T--; Sleep(500); shoukaoemo=0; } }else{ Yourmoney+=(double)(5000.0*(Hurt*1.0)*(1+(double)(kong)*1.0/(double)(shi+kong))); shi--; qlen--; Your-=Hurt; Hurt=1; printf("是实弹\n"); Know=0; Sleep(500); IsOver(); if(shoukaoemo){ printf("因为恶魔使用了手铐,所以可以再来一次\n"); Yourmoney+=1000.0; T--; Sleep(500); shoukaoemo=0; } } } void fightemo(){ printf("恶魔决定向自己开枪"); wait(); if(q[qlen]==2){ Yourmoney+=2000.0*(1+(double)(shi)*1.0/(double)(shi+kong)); kong--; qlen--; printf("是空弹\n"); Know=0; }else{ Yourmoney+=5000.0*(1+(double)(kong)*1.0/(double)(shi+kong)); shi--; T++; qlen--; Other-=Hurt; Hurt=1; printf("是实弹\n"); Know=0; Sleep(500); IsOver(); if(shoukaoemo){ printf("因为恶魔使用了手铐,所以可以再来一次\n"); T--; Sleep(500); shoukaoemo=0; } } } void Timeother(){ printf("你的生命:%d/6\n恶魔生命:%d/6\n",Your,Other); printf("剩余实弹数:%d 剩余空弹数:%d\n",shi,kong); printf("你现在拥有的道具:\n"); for(int i=0;i<=4;i++){ cout<<daojuname[i]; printf("%d",daoju[i]); printf("个"); if(i!=4){ printf(","); } } printf("\n"); printf("恶魔现在拥有的道具:\n"); for(int i=0;i<=4;i++){ cout<<daojuname[i]; printf("%d",daoju1[i]); printf("个"); if(i!=4){ printf(","); } } printf("\n"); printf("现在是恶魔的回合\n"); Sleep(1500); if(Other!=6){ if(daoju1[3]){ daoju1[3]--; daojulen1--; printf("恶魔使用了烟\n"); printf("恶魔回复了一点生命\n"); Other++; Yourmoney+=500.0; Sleep(1145); system("cls"); return ; } } if(Know==0&&kong==0){ Know=1; } if(Know==0){ if(abs(shi-kong)<2&&kong!=0){ if(daoju1[0]){ daoju1[0]--; daojulen1--; printf("恶魔使用了放大镜\n"); wait(); printf("\n恶魔看到了"); if(q[qlen]==1){ printf("实弹"); Yourmoney+=2500.0; Know=1; }else{ printf("空弹"); Know=2; } Sleep(1145); system("cls"); return ; } } }else if(Know==1){ if(Hurt==1&&daoju1[2]){ daoju1[2]--; daojulen1--; Hurt++; printf("恶魔使用了小刀\n"); printf("若下一发为实弹则伤害+1"); Yourmoney+=500.0; Sleep(1145); system("cls"); return ; }else{ if(shi>=kong+1&&daoju1[1]&&shoukaoemo!=1){ daoju1[1]--; daojulen1--; shoukaoemo=1; printf("恶魔使用了手铐\n"); printf("恶魔获得了连开两枪的机会\n"); Sleep(1145); system("cls"); return ; } fightyou(); system("cls"); return ; } }else{ if(daoju1[4]){ daoju1[4]--; daojulen1--; printf("恶魔使用了饮料\n"); wait(); printf("\n"); printf("恶魔退了一发"); if(q[qlen]==2){ printf("空弹"); kong--; }else{ printf("实弹"); shi--; } Know=0; qlen--; Sleep(500); Sleep(1145); system("cls"); return ; }else{ fightemo(); Sleep(1145); system("cls"); return ; } } if(shi>=kong){ fightyou(); }else{ fightemo(); } Sleep(1145); system("cls"); } void Play(){ while(1){ if(shi==0){ build_gun(); T=0; continue; } if(T%2==0){ Timeyou(); }else{ Timeother(); } } } void danrenplay(){ for(int i=1;i<=3;i++){ printf("."); // Sleep(1000); } printf("\n"); printf("又来了一位挑战者...\n"); Sleep(1000); int x; while(1){ printf("准备好参与恶魔的游戏吗?胜者带走奖金,败者将会在此长眠\n1.好的\n2.没问题\n"); scanf("%d",&x); if(x==1||x==2){ break; } printf("输入不合法\n"); Sleep(1145); system("cls"); } while(1){ printf("你清楚我们的规则吗?\n1.清楚\n2.不清楚\n"); scanf("%d",&x); if(x==1||x==2){ break; } printf("输入不合法\n"); Sleep(1145); system("cls"); } if(x==1){ }else{ for(int i=1;i<=3;i++){ printf("."); Sleep(1000); } printf("\n"); printf("规则:\n"); printf("你和恶魔都各有6点生命\n") ; printf("每一回合开始前,你将知道一共有几发实弹,几发空弹,同时双方都将获得4个道具作为补给(上限为8个)\n"); printf("每一回合,你可以选择对自己开枪,对恶魔开枪或者使用道具\n"); printf("如果你对自己开枪,若为空弹,则可以继续行动,否则,停止行动\n"); printf("如果你对恶魔开枪,无论如何,都将停止行动\n"); printf("道具一览:\n"); printf("放大镜:可以知道下一发子弹是空弹还是实弹\n"); printf("手铐:增加一次本回合的行动次数\n"); printf("小刀:若下一发子弹为实弹,则伤害+1\n"); printf("烟:可以回复1点体力\n"); printf("饮料:可以退一发子弹\n"); system("pause"); system("cls"); } printf("好吧\n"); Sleep(1145); printf("游戏将要开始了哦\n"); Sleep(1145); system("cls"); Play(); } void IsOver_duo(){ if(Your<=0){ printf("玩家B赢了\n玩家B获得了奖金$%.2lf\n",Yourmoney); system("pause"); exit(0); }else if(Other<=0){ printf("玩家A赢了\n玩家A获得了奖金$%.2lf\n",Yourmoney); system("pause"); exit(0); } } void build_gun_duo(){ kong=Rand(1,4); shi=Rand(1,4); qlen=0; printf("%d发实弹,%d发空弹\n",shi,kong); int a1=kong,a2=shi; for(int i=1;i<=kong+shi;i++){ // Sleep(50); int sum=Rand(1,a1+a2); if(sum<=a1){ a1--; q[++qlen]=2; }else{ a2--; q[++qlen]=1; } } int maxn=min(2,8-daojulen); printf("玩家A获得了%d个道具:\n",maxn); daojulen+=maxn; for(int i=1;i<=maxn;i++){ // Sleep(50); int kkk=Rand(0,4); daoju[kkk]++; cout<<daojuname[kkk]; if(i!=maxn){ printf(","); } } printf("\n"); maxn=min(2,8-daojulen1); printf("玩家B获得了%d个道具:\n",maxn); daojulen1+=maxn; for(int i=1;i<=maxn;i++){ int kkk=Rand(0,4); daoju1[kkk]++; cout<<daojuname[kkk]; if(i!=maxn){ printf(","); } } printf("\n"); system("pause"); system("cls"); } void Timeyou_duo(){ int x; while(1){ printf("玩家A的生命:%d/4\n玩家B的生命:%d/4\n",Your,Other); printf("剩余实弹数:%d 剩余空弹数:%d\n",shi,kong); printf("玩家A现在拥有的道具:\n"); for(int i=0;i<=4;i++){ cout<<daojuname[i]; printf("%d",daoju[i]); printf("个"); if(i!=4){ printf(","); } } printf("\n"); printf("玩家B现在拥有的道具:\n"); for(int i=0;i<=4;i++){ cout<<daojuname[i]; printf("%d",daoju1[i]); printf("个"); if(i!=4){ printf(","); } } printf("\n"); printf("现在是玩家A的回合\n"); printf("玩家A要\n1.向玩家B开枪\n2.向自己开枪\n"); for(int i=0;i<=4;i++){ printf("%d.使用",i+3); cout<<daojuname[i]<<'\n'; } scanf("%d",&x); if(1<=x&&x<=7){ break; } printf("输入不合法\n"); Sleep(1145); system("cls"); } if(x==1){ printf("玩家A决定向玩家B开枪"); T++; wait(); if(q[qlen]==2){ Yourmoney+=(double)(2000.0*(Hurt*1.0)*(1+(double)(shi)*1.0/(double)(shi+kong))); kong--; qlen--; Hurt=1; printf("是空弹\n"); if(shoukao_you==1){ shoukao_you=0; printf("因为玩家A使用了手铐,所以可以再来一次\n"); Sleep(500); T--; } }else{ // printf("((%lf))\n",Yourmoney); Yourmoney+=(double)(5000.0*(Hurt*1.0)*(1+(double)(kong)*1.0/(double)(shi+kong))); // printf("{{%lf}}\n",Yourmoney); shi--; qlen--; Other-=Hurt; Hurt=1; printf("是实弹\n"); Sleep(500); IsOver_duo(); if(shoukao_you==1){ shoukao_you=0; Yourmoney+=1000.0; printf("因为玩家A使用了手铐,所以可以再来一次\n"); Sleep(500); T--; } } }else if(x==2){ printf("玩家A决定向自己开枪"); wait(); if(q[qlen]==2){ Yourmoney+=(double)(2000.0*(Hurt*1.0)*(1+(double)(kong)*1.0/(double)(shi+kong))); kong--; qlen--; Hurt=1; printf("是空弹\n"); }else{ Yourmoney+=5000.0*(1+(double)(shi)*1.0/(double)(shi+kong)); T++; shi--; qlen--; Your-=Hurt; Hurt=1; printf("是实弹\n"); Sleep(500); IsOver_duo(); if(shoukao_you==1){ shoukao_you=0; printf("因为玩家A使用了手铐,所以可以再来一次\n"); Sleep(500); T--; } } }else if(x==3){//{"放大镜","手铐","小刀","烟","饮料"}; if(daoju[0]){ daoju[0]--; daojulen--; printf("玩家A使用了放大镜\n"); wait(); printf("\n玩家A看到了"); if(q[qlen]==1){ printf("实弹\n"); Yourmoney+=2500.0; }else{ printf("空弹\n"); } Sleep(500); printf("\n"); }else{ printf("玩家A现在没有放大镜\n"); Sleep(1145); system("cls"); } }else if(x==4){ if(daoju[1]){ if(!shoukao_you){ daoju[1]--; daojulen--; printf("玩家A使用了手铐\n"); printf("玩家A获得了连开两枪的机会\n"); shoukao_you=1; }else{ printf("玩家A已经用过手铐了\n"); } Sleep(1145); system("cls"); }else{ printf("玩家A现在没有手铐\n"); Sleep(1145); system("cls"); } }else if(x==5){ if(daoju[2]){ if(Hurt==1){ daoju[2]--; daojulen--; printf("玩家A使用了小刀\n"); printf("若下一发为实弹则伤害+1\n"); Yourmoney+=500.0; Hurt=2; }else{ printf("玩家A已经用过小刀了\n"); } Sleep(1145); system("cls"); }else{ printf("玩家A现在没有小刀\n"); Sleep(1145); system("cls"); } }else if(x==6){ if(daoju[3]){ if(Your^4){ daoju[3]--; daojulen--; printf("玩家A使用了烟\n"); printf("玩家A回复了一点生命\n"); Yourmoney+=500.0; Your++; }else{ printf("玩家A现在不需要烟\n"); } Sleep(1145); }else{ printf("玩家A现在没有烟\n"); Sleep(1145); system("cls"); } }else{ if(daoju[4]){ daoju[4]--; daojulen--; printf("玩家A使用了饮料\n"); wait(); printf("\n"); printf("玩家A退了一发"); if(q[qlen]==2){ printf("空弹"); kong--; }else{ printf("实弹"); Yourmoney+=500.0; shi--; } qlen--; Sleep(500); }else{ printf("玩家A现在没有饮料\n"); Sleep(1145); system("cls"); } } Sleep(1000); system("cls"); } void Timeother_duo(){ int x; while(1){ printf("玩家A的生命:%d/4\n玩家B的生命:%d/4\n",Your,Other); printf("剩余实弹数:%d 剩余空弹数:%d\n",shi,kong); printf("玩家A现在拥有的道具:\n"); for(int i=0;i<=4;i++){ cout<<daojuname[i]; printf("%d",daoju[i]); printf("个"); if(i!=4){ printf(","); } } printf("\n"); printf("玩家B现在拥有的道具:\n"); for(int i=0;i<=4;i++){ cout<<daojuname[i]; printf("%d",daoju1[i]); printf("个"); if(i!=4){ printf(","); } } printf("\n"); printf("现在是玩家B的回合\n"); printf("玩家B要\n1.向玩家A开枪\n2.向自己开枪\n"); for(int i=0;i<=4;i++){ printf("%d.使用",i+3); cout<<daojuname[i]<<'\n'; } scanf("%d",&x); if(1<=x&&x<=7){ break; } printf("输入不合法\n"); Sleep(1145); system("cls"); } if(x==1){ printf("玩家B决定向玩家A开枪"); T++; wait(); if(q[qlen]==2){ Yourmoney+=(double)(2000.0*(Hurt*1.0)*(1+(double)(shi)*1.0/(double)(shi+kong))); kong--; qlen--; Hurt=1; printf("是空弹\n"); if(shoukaoemo==1){ shoukaoemo=0; printf("因为玩家B使用了手铐,所以可以再来一次\n"); Sleep(500); T--; } }else{ // printf("((%lf))\n",Yourmoney); Yourmoney+=(double)(5000.0*(Hurt*1.0)*(1+(double)(kong)*1.0/(double)(shi+kong))); // printf("{{%lf}}\n",Yourmoney); shi--; qlen--; Your-=Hurt; Hurt=1; printf("是实弹\n"); Sleep(500); IsOver_duo(); if(shoukaoemo==1){ shoukaoemo=0; Yourmoney+=1000.0; printf("因为玩家B使用了手铐,所以可以再来一次\n"); Sleep(500); T--; } } }else if(x==2){ printf("玩家B决定向自己开枪"); wait(); if(q[qlen]==2){ Yourmoney+=(double)(2000.0*(Hurt*1.0)*(1+(double)(kong)*1.0/(double)(shi+kong))); kong--; qlen--; Hurt=1; printf("是空弹\n"); }else{ Yourmoney+=5000.0*(1+(double)(shi)*1.0/(double)(shi+kong)); T++; shi--; qlen--; Other-=Hurt; Hurt=1; printf("是实弹\n"); Sleep(500); IsOver_duo(); if(shoukao_you==1){ shoukao_you=0; printf("因为玩家B使用了手铐,所以可以再来一次\n"); Sleep(500); T--; } } }else if(x==3){//{"放大镜","手铐","小刀","烟","饮料"}; if(daoju1[0]){ daoju1[0]--; daojulen1--; printf("玩家B使用了放大镜\n"); wait(); printf("\n玩家B看到了"); if(q[qlen]==1){ printf("实弹\n"); Yourmoney+=2500.0; }else{ printf("空弹\n"); } Sleep(500); printf("\n"); }else{ printf("玩家B现在没有放大镜\n"); Sleep(1145); system("cls"); } }else if(x==4){ if(daoju1[1]){ if(!shoukaoemo){ daoju1[1]--; daojulen1--; printf("玩家B使用了手铐\n"); printf("玩家B获得了连开两枪的机会\n"); shoukaoemo=1; }else{ printf("玩家B已经用过手铐了\n"); } Sleep(1145); system("cls"); }else{ printf("玩家B现在没有手铐\n"); Sleep(1145); system("cls"); } }else if(x==5){ if(daoju1[2]){ if(Hurt==1){ daoju1[2]--; daojulen1--; printf("玩家B使用了小刀\n"); printf("若下一发为实弹则伤害+1\n"); Yourmoney+=500.0; Hurt=2; }else{ printf("玩家B已经用过小刀了\n"); } Sleep(1145); system("cls"); }else{ printf("玩家B现在没有小刀\n"); Sleep(1145); system("cls"); } }else if(x==6){ if(daoju1[3]){ if(Other^4){ daoju1[3]--; daojulen1--; printf("玩家B使用了烟\n"); printf("玩家B回复了一点生命\n"); Yourmoney+=500.0; Other++; }else{ printf("玩家B现在不需要烟\n"); } Sleep(1145); }else{ printf("玩家B现在没有烟\n"); Sleep(1145); system("cls"); } }else{ if(daoju1[4]){ daoju1[4]--; daojulen1--; printf("玩家B使用了饮料\n"); wait(); printf("\n"); printf("玩家B退了一发"); if(q[qlen]==2){ printf("空弹"); kong--; }else{ printf("实弹"); Yourmoney+=500.0; shi--; } qlen--; Sleep(500); }else{ printf("玩家B现在没有饮料\n"); Sleep(1145); system("cls"); } } Sleep(1000); system("cls"); } int asdasd; void duorenplay(){ while(1){ if(shi==0){ build_gun_duo(); T=asdasd; asdasd++; continue; } if(T%2==0){ Timeyou_duo(); }else{ Timeother_duo(); } } } int main(){ srand(time(0)); int x; while(1){ printf("请选择你想要的模式:\n1.单人\n2.双人(此模式中,生命值为4,道具补给为2)\n"); scanf("%d",&x); if(x==1||x==2){ break; } printf("输入不合法\n"); Sleep(1145); system("cls"); } system("cls"); if(x==1){ danrenplay(); }else{ Your=Other=4; duorenplay(); } return 0; }
-
2024-12-1 14:07:58@
`#include<bits/stdc++.h> #include <windows.h> using namespace std; int Your=6,Other=6; string daojuname[]={"放大镜","手铐","小刀","烟","饮料"}; double Yourmoney;
int shi,kong; int q[10],qlen; int Rand(int x,int y){ int A=rand(),B=rand(); return A1llB%(y-x+1)+x; } int T; int daojulen; int daoju[10]; int daojulen1; int daoju1[10]; void build_gun(){ kong=Rand(1,4); shi=Rand(1,4); qlen=0; printf("%d发实弹,%d发空弹\n",shi,kong); int a1=kong,a2=shi; for(int i=1;i<=kong+shi;i++){ // Sleep(50); int sum=Rand(1,a1+a2); if(sum<=a1){ a1--; q[++qlen]=2; }else{ a2--; q[++qlen]=1; } } int maxn=min(4,8-daojulen); printf("你获得了%d个道具:\n",maxn); daojulen+=maxn; for(int i=1;i<=maxn;i++){ // Sleep(50); int kkk=Rand(0,4); daoju[kkk]++; cout<<daojuname[kkk]; if(i!=maxn){ printf(","); } } printf("\n"); maxn=min(4,8-daojulen1); printf("恶魔获得了%d个道具:\n",maxn); daojulen1+=maxn; for(int i=1;i<=maxn;i++){ int kkk=Rand(0,4); daoju1[kkk]++; cout<<daojuname[kkk]; if(i!=maxn){ printf(","); } } printf("\n"); system("pause"); system("cls"); } void IsOver(){ if(Your<=0){ printf("你输了\n"); system("pause"); exit(0); } if(Other<=0){ printf("你赢了\n你获得了奖金$%.2lf\n",Yourmoney); system("pause"); exit(0); } } void wait(){ for(int i=1;i<=3;i++){ Sleep(500); printf("."); } Sleep(500); } int Hurt=1; int shoukao_you; void Timeyou(){ int x; while(1){ printf("你的生命:%d/6\n恶魔生命:%d/6\n",Your,Other); printf("剩余实弹数:%d 剩余空弹数:%d\n",shi,kong); printf("你现在拥有的道具:\n"); for(int i=0;i<=4;i++){ cout<<daojuname[i]; printf("%d",daoju[i]); printf("个"); if(i!=4){ printf(","); } } printf("\n"); printf("恶魔现在拥有的道具:\n"); for(int i=0;i<=4;i++){ cout<<daojuname[i]; printf("%d",daoju1[i]); printf("个"); if(i!=4){ printf(","); } } printf("\n"); printf("现在是你的回合\n"); printf("你要\n1.向恶魔开枪\n2.向自己开枪\n"); for(int i=0;i<=4;i++){ printf("%d.使用",i+3); cout<<daojuname[i]<<'\n'; } scanf("%d",&x); if(1<=x&&x<=7){ break; } printf("输入不合法\n"); Sleep(1145); system("cls"); } if(x1){ printf("你决定向恶魔开枪"); T++; wait(); if(q[qlen]2){ Yourmoney+=(double)(2000.0*(Hurt1.0)(1+(double)(shi)*1.0/(double)(shi+kong))); kong--; qlen--; Hurt=1; printf("是空弹\n"); if(shoukao_you1){ shoukao_you=0; printf("因为你使用了手铐,所以可以再来一次\n"); Sleep(500); T--; } }else{ // printf("((%lf))\n",Yourmoney); Yourmoney+=(double)(5000.0*(Hurt1.0)(1+(double)(kong)*1.0/(double)(shi+kong))); // printf("{{%lf}}\n",Yourmoney); shi--; qlen--; Other-=Hurt; Hurt=1; printf("是实弹\n"); Sleep(500); IsOver(); if(shoukao_you1){ shoukao_you=0; Yourmoney+=1000.0; printf("因为你使用了手铐,所以可以再来一次\n"); Sleep(500); T--; } } }else if(x2){ printf("你决定向自己开枪"); wait(); if(q[qlen]2){ Yourmoney+=(double)(2000.0*(Hurt1.0)(1+(double)(kong)1.0/(double)(shi+kong))); kong--; qlen--; Hurt=1; printf("是空弹\n"); }else{ Yourmoney+=5000.0(1+(double)(shi)*1.0/(double)(shi+kong)); T++; shi--; qlen--; Your-=Hurt; Hurt=1; printf("是实弹\n"); Sleep(500); IsOver(); if(shoukao_you1){ shoukao_you=0; printf("因为你使用了手铐,所以可以再来一次\n"); Sleep(500); T--; } } }else if(x3){//{"放大镜","手铐","小刀","烟","饮料"}; if(daoju[0]){ daoju[0]--; daojulen--; printf("你使用了放大镜\n"); wait(); printf("\n你看到了"); if(q[qlen]1){ printf("实弹\n"); Yourmoney+=2500.0; }else{ printf("空弹\n"); } Sleep(500); printf("\n"); }else{ printf("你现在没有放大镜\n"); Sleep(1145); system("cls"); } }else if(x4){ if(daoju[1]){ if(!shoukao_you){ daoju[1]--; daojulen--; printf("你使用了手铐\n"); printf("你获得了连开两枪的机会\n"); shoukao_you=1; }else{ printf("你已经用过手铐了\n"); } Sleep(1145); system("cls"); }else{ printf("你现在没有手铐\n"); Sleep(1145); system("cls"); } }else if(x5){ if(daoju[2]){ if(Hurt1){ daoju[2]--; daojulen--; printf("你使用了小刀\n"); printf("若下一发为实弹则伤害+1\n"); Yourmoney+=500.0; Hurt=2; }else{ printf("你已经用过小刀了\n"); } Sleep(1145); system("cls"); }else{ printf("你现在没有小刀\n"); Sleep(1145); system("cls"); } }else if(x==6){ if(daoju[3]){ if(Your^6){ daoju[3]--; daojulen--; printf("你使用了烟\n"); printf("你回复了一点生命\n"); Yourmoney+=500.0; Your++; }else{ printf("你现在不需要烟\n"); } Sleep(1145); }else{ printf("你现在没有烟\n"); Sleep(1145); system("cls"); } }else{ if(daoju[4]){ daoju[4]--; daojulen--; printf("你使用了饮料\n"); wait(); printf("\n"); printf("你退了一发"); if(q[qlen]==2){ printf("空弹"); kong--; }else{ printf("实弹"); Yourmoney+=500.0; shi--; } qlen--; Sleep(500); }else{ printf("你现在没有饮料\n"); Sleep(1145); system("cls"); } } Sleep(1000); system("cls"); } int Know;//通过放大镜得知下一发子弹 int shoukaoemo; void fightyou(){ printf("恶魔决定向你开枪"); T++; wait(); if(q[qlen]==2){ Yourmoney+=(double)(2000.0*(Hurt1.0)(1+(double)(kong)1.0/(double)(shi+kong))); kong--; qlen--; Hurt=1; Know=0; printf("是空弹\n"); if(shoukaoemo){ printf("因为恶魔使用了手铐,所以可以再来一次\n"); T--; Sleep(500); shoukaoemo=0; } }else{ Yourmoney+=(double)(5000.0(Hurt1.0)(1+(double)(kong)1.0/(double)(shi+kong))); shi--; qlen--; Your-=Hurt; Hurt=1; printf("是实弹\n"); Know=0; Sleep(500); IsOver(); if(shoukaoemo){ printf("因为恶魔使用了手铐,所以可以再来一次\n"); Yourmoney+=1000.0; T--; Sleep(500); shoukaoemo=0; } } } void fightemo(){ printf("恶魔决定向自己开枪"); wait(); if(q[qlen]==2){ Yourmoney+=2000.0(1+(double)(shi)1.0/(double)(shi+kong)); kong--; qlen--; printf("是空弹\n"); Know=0; }else{ Yourmoney+=5000.0(1+(double)(kong)*1.0/(double)(shi+kong)); shi--; T++; qlen--; Other-=Hurt; Hurt=1; printf("是实弹\n"); Know=0; Sleep(500); IsOver(); if(shoukaoemo){ printf("因为恶魔使用了手铐,所以可以再来一次\n"); T--; Sleep(500); shoukaoemo=0; } } } void Timeother(){ printf("你的生命:%d/6\n恶魔生命:%d/6\n",Your,Other); printf("剩余实弹数:%d 剩余空弹数:%d\n",shi,kong); printf("你现在拥有的道具:\n"); for(int i=0;i<=4;i++){ cout<<daojuname[i]; printf("%d",daoju[i]); printf("个"); if(i!=4){ printf(","); } } printf("\n"); printf("恶魔现在拥有的道具:\n"); for(int i=0;i<=4;i++){ cout<<daojuname[i]; printf("%d",daoju1[i]); printf("个"); if(i!=4){ printf(","); } } printf("\n"); printf("现在是恶魔的回合\n"); Sleep(1500);
if(Other!=6){ if(daoju1[3]){ daoju1[3]--; daojulen1--; printf("恶魔使用了烟\n"); printf("恶魔回复了一点生命\n"); Other++; Yourmoney+=500.0; Sleep(1145); system("cls"); return ; } } if(Know==0&&kong==0){ Know=1; } if(Know==0){ if(abs(shi-kong)<2&&kong!=0){ if(daoju1[0]){ daoju1[0]--; daojulen1--; printf("恶魔使用了放大镜\n"); wait(); printf("\n恶魔看到了"); if(q[qlen]==1){ printf("实弹"); Yourmoney+=2500.0; Know=1; }else{ printf("空弹"); Know=2; } Sleep(1145); system("cls"); return ; } } }else if(Know==1){ if(Hurt==1&&daoju1[2]){ daoju1[2]--; daojulen1--; Hurt++; printf("恶魔使用了小刀\n"); printf("若下一发为实弹则伤害+1"); Yourmoney+=500.0; Sleep(1145); system("cls"); return ; }else{ if(shi>=kong+1&&daoju1[1]&&shoukaoemo!=1){ daoju1[1]--; daojulen1--; shoukaoemo=1; printf("恶魔使用了手铐\n"); printf("恶魔获得了连开两枪的机会\n"); Sleep(1145); system("cls"); return ; } fightyou(); system("cls"); return ; } }else{ if(daoju1[4]){ daoju1[4]--; daojulen1--; printf("恶魔使用了饮料\n"); wait(); printf("\n"); printf("恶魔退了一发"); if(q[qlen]==2){ printf("空弹"); kong--; }else{ printf("实弹"); shi--; } Know=0; qlen--; Sleep(500); Sleep(1145); system("cls"); return ; }else{ fightemo(); Sleep(1145); system("cls"); return ; } } if(shi>=kong){ fightyou(); }else{ fightemo(); } Sleep(1145); system("cls");
} void Play(){ while(1){ if(shi0){ build_gun(); T=0; continue; } if(T%20){ Timeyou(); }else{ Timeother(); } } } void danrenplay(){ for(int i=1;i<=3;i++){ printf("."); // Sleep(1000); } printf("\n"); printf("又来了一位挑战者...\n"); Sleep(1000); int x; while(1){ printf("准备好参与恶魔的游戏吗?胜者带走奖金,败者将会在此长眠\n1.好的\n2.没问题\n"); scanf("%d",&x); if(x1||x2){ break; } printf("输入不合法\n"); Sleep(1145); system("cls"); } while(1){ printf("你清楚我们的规则吗?\n1.清楚\n2.不清楚\n"); scanf("%d",&x); if(x1||x2){ break; } printf("输入不合法\n"); Sleep(1145); system("cls"); } if(x==1){
}else{ for(int i=1;i<=3;i++){ printf("."); Sleep(1000); } printf("\n"); printf("规则:\n"); printf("你和恶魔都各有6点生命\n") ; printf("每一回合开始前,你将知道一共有几发实弹,几发空弹,同时双方都将获得4个道具作为补给(上限为8个)\n"); printf("每一回合,你可以选择对自己开枪,对恶魔开枪或者使用道具\n"); printf("如果你对自己开枪,若为空弹,则可以继续行动,否则,停止行动\n"); printf("如果你对恶魔开枪,无论如何,都将停止行动\n"); printf("道具一览:\n"); printf("放大镜:可以知道下一发子弹是空弹还是实弹\n"); printf("手铐:增加一次本回合的行动次数\n"); printf("小刀:若下一发子弹为实弹,则伤害+1\n"); printf("烟:可以回复1点体力\n"); printf("饮料:可以退一发子弹\n"); system("pause"); system("cls"); } printf("好吧\n"); Sleep(1145); printf("游戏将要开始了哦\n"); Sleep(1145); system("cls"); Play();
} void IsOver_duo(){ if(Your<=0){ printf("玩家B赢了\n玩家B获得了奖金$%.2lf\n",Yourmoney); system("pause"); exit(0); }else if(Other<=0){ printf("玩家A赢了\n玩家A获得了奖金$%.2lf\n",Yourmoney); system("pause"); exit(0); }
} void build_gun_duo(){ kong=Rand(1,4); shi=Rand(1,4); qlen=0; printf("%d发实弹,%d发空弹\n",shi,kong); int a1=kong,a2=shi; for(int i=1;i<=kong+shi;i++){ // Sleep(50); int sum=Rand(1,a1+a2); if(sum<=a1){ a1--; q[++qlen]=2; }else{ a2--; q[++qlen]=1; } } int maxn=min(2,8-daojulen); printf("玩家A获得了%d个道具:\n",maxn); daojulen+=maxn; for(int i=1;i<=maxn;i++){ // Sleep(50); int kkk=Rand(0,4); daoju[kkk]++; cout<<daojuname[kkk]; if(i!=maxn){ printf(","); } } printf("\n"); maxn=min(2,8-daojulen1); printf("玩家B获得了%d个道具:\n",maxn); daojulen1+=maxn; for(int i=1;i<=maxn;i++){ int kkk=Rand(0,4); daoju1[kkk]++; cout<<daojuname[kkk]; if(i!=maxn){ printf(","); } } printf("\n"); system("pause"); system("cls"); } void Timeyou_duo(){ int x; while(1){ printf("玩家A的生命:%d/4\n玩家B的生命:%d/4\n",Your,Other); printf("剩余实弹数:%d 剩余空弹数:%d\n",shi,kong); printf("玩家A现在拥有的道具:\n"); for(int i=0;i<=4;i++){ cout<<daojuname[i]; printf("%d",daoju[i]); printf("个"); if(i!=4){ printf(","); } } printf("\n"); printf("玩家B现在拥有的道具:\n"); for(int i=0;i<=4;i++){ cout<<daojuname[i]; printf("%d",daoju1[i]); printf("个"); if(i!=4){ printf(","); } } printf("\n"); printf("现在是玩家A的回合\n"); printf("玩家A要\n1.向玩家B开枪\n2.向自己开枪\n"); for(int i=0;i<=4;i++){ printf("%d.使用",i+3); cout<<daojuname[i]<<'\n'; } scanf("%d",&x); if(1<=x&&x<=7){ break; } printf("输入不合法\n"); Sleep(1145); system("cls"); } if(x1){ printf("玩家A决定向玩家B开枪"); T++; wait(); if(q[qlen]2){ Yourmoney+=(double)(2000.0*(Hurt1.0)(1+(double)(shi)*1.0/(double)(shi+kong))); kong--; qlen--; Hurt=1; printf("是空弹\n"); if(shoukao_you1){ shoukao_you=0; printf("因为玩家A使用了手铐,所以可以再来一次\n"); Sleep(500); T--; } }else{ // printf("((%lf))\n",Yourmoney); Yourmoney+=(double)(5000.0*(Hurt1.0)(1+(double)(kong)*1.0/(double)(shi+kong))); // printf("{{%lf}}\n",Yourmoney); shi--; qlen--; Other-=Hurt; Hurt=1; printf("是实弹\n"); Sleep(500); IsOver_duo(); if(shoukao_you1){ shoukao_you=0; Yourmoney+=1000.0; printf("因为玩家A使用了手铐,所以可以再来一次\n"); Sleep(500); T--; } } }else if(x2){ printf("玩家A决定向自己开枪"); wait(); if(q[qlen]2){ Yourmoney+=(double)(2000.0*(Hurt1.0)(1+(double)(kong)1.0/(double)(shi+kong))); kong--; qlen--; Hurt=1; printf("是空弹\n"); }else{ Yourmoney+=5000.0(1+(double)(shi)*1.0/(double)(shi+kong)); T++; shi--; qlen--; Your-=Hurt; Hurt=1; printf("是实弹\n"); Sleep(500); IsOver_duo(); if(shoukao_you1){ shoukao_you=0; printf("因为玩家A使用了手铐,所以可以再来一次\n"); Sleep(500); T--; } } }else if(x3){//{"放大镜","手铐","小刀","烟","饮料"}; if(daoju[0]){ daoju[0]--; daojulen--; printf("玩家A使用了放大镜\n"); wait(); printf("\n玩家A看到了"); if(q[qlen]1){ printf("实弹\n"); Yourmoney+=2500.0; }else{ printf("空弹\n"); } Sleep(500); printf("\n"); }else{ printf("玩家A现在没有放大镜\n"); Sleep(1145); system("cls"); } }else if(x4){ if(daoju[1]){ if(!shoukao_you){ daoju[1]--; daojulen--; printf("玩家A使用了手铐\n"); printf("玩家A获得了连开两枪的机会\n"); shoukao_you=1; }else{ printf("玩家A已经用过手铐了\n"); } Sleep(1145); system("cls"); }else{ printf("玩家A现在没有手铐\n"); Sleep(1145); system("cls"); } }else if(x5){ if(daoju[2]){ if(Hurt1){ daoju[2]--; daojulen--; printf("玩家A使用了小刀\n"); printf("若下一发为实弹则伤害+1\n"); Yourmoney+=500.0; Hurt=2; }else{ printf("玩家A已经用过小刀了\n"); } Sleep(1145); system("cls"); }else{ printf("玩家A现在没有小刀\n"); Sleep(1145); system("cls"); } }else if(x6){ if(daoju[3]){ if(Your^4){ daoju[3]--; daojulen--; printf("玩家A使用了烟\n"); printf("玩家A回复了一点生命\n"); Yourmoney+=500.0; Your++; }else{ printf("玩家A现在不需要烟\n"); } Sleep(1145); }else{ printf("玩家A现在没有烟\n"); Sleep(1145); system("cls"); } }else{ if(daoju[4]){ daoju[4]--; daojulen--; printf("玩家A使用了饮料\n"); wait(); printf("\n"); printf("玩家A退了一发"); if(q[qlen]2){ printf("空弹"); kong--; }else{ printf("实弹"); Yourmoney+=500.0; shi--; } qlen--; Sleep(500); }else{ printf("玩家A现在没有饮料\n"); Sleep(1145); system("cls"); } } Sleep(1000); system("cls"); } void Timeother_duo(){ int x; while(1){ printf("玩家A的生命:%d/4\n玩家B的生命:%d/4\n",Your,Other); printf("剩余实弹数:%d 剩余空弹数:%d\n",shi,kong); printf("玩家A现在拥有的道具:\n"); for(int i=0;i<=4;i++){ cout<<daojuname[i]; printf("%d",daoju[i]); printf("个"); if(i!=4){ printf(","); } } printf("\n"); printf("玩家B现在拥有的道具:\n"); for(int i=0;i<=4;i++){ cout<<daojuname[i]; printf("%d",daoju1[i]); printf("个"); if(i!=4){ printf(","); } } printf("\n"); printf("现在是玩家B的回合\n"); printf("玩家B要\n1.向玩家A开枪\n2.向自己开枪\n"); for(int i=0;i<=4;i++){ printf("%d.使用",i+3); cout<<daojuname[i]<<'\n'; } scanf("%d",&x); if(1<=x&&x<=7){ break; } printf("输入不合法\n"); Sleep(1145); system("cls"); } if(x1){ printf("玩家B决定向玩家A开枪"); T++; wait(); if(q[qlen]2){ Yourmoney+=(double)(2000.0*(Hurt1.0)(1+(double)(shi)*1.0/(double)(shi+kong))); kong--; qlen--; Hurt=1; printf("是空弹\n"); if(shoukaoemo1){ shoukaoemo=0; printf("因为玩家B使用了手铐,所以可以再来一次\n"); Sleep(500); T--; } }else{ // printf("((%lf))\n",Yourmoney); Yourmoney+=(double)(5000.0*(Hurt1.0)(1+(double)(kong)*1.0/(double)(shi+kong))); // printf("{{%lf}}\n",Yourmoney); shi--; qlen--; Your-=Hurt; Hurt=1; printf("是实弹\n"); Sleep(500); IsOver_duo(); if(shoukaoemo1){ shoukaoemo=0; Yourmoney+=1000.0; printf("因为玩家B使用了手铐,所以可以再来一次\n"); Sleep(500); T--; } } }else if(x2){ printf("玩家B决定向自己开枪"); wait(); if(q[qlen]2){ Yourmoney+=(double)(2000.0*(Hurt1.0)(1+(double)(kong)1.0/(double)(shi+kong))); kong--; qlen--; Hurt=1; printf("是空弹\n"); }else{ Yourmoney+=5000.0(1+(double)(shi)*1.0/(double)(shi+kong)); T++; shi--; qlen--; Other-=Hurt; Hurt=1; printf("是实弹\n"); Sleep(500); IsOver_duo(); if(shoukao_you1){ shoukao_you=0; printf("因为玩家B使用了手铐,所以可以再来一次\n"); Sleep(500); T--; } } }else if(x3){//{"放大镜","手铐","小刀","烟","饮料"}; if(daoju1[0]){ daoju1[0]--; daojulen1--; printf("玩家B使用了放大镜\n"); wait(); printf("\n玩家B看到了"); if(q[qlen]1){ printf("实弹\n"); Yourmoney+=2500.0; }else{ printf("空弹\n"); } Sleep(500); printf("\n"); }else{ printf("玩家B现在没有放大镜\n"); Sleep(1145); system("cls"); } }else if(x4){ if(daoju1[1]){ if(!shoukaoemo){ daoju1[1]--; daojulen1--; printf("玩家B使用了手铐\n"); printf("玩家B获得了连开两枪的机会\n"); shoukaoemo=1; }else{ printf("玩家B已经用过手铐了\n"); } Sleep(1145); system("cls"); }else{ printf("玩家B现在没有手铐\n"); Sleep(1145); system("cls"); } }else if(x5){ if(daoju1[2]){ if(Hurt1){ daoju1[2]--; daojulen1--; printf("玩家B使用了小刀\n"); printf("若下一发为实弹则伤害+1\n"); Yourmoney+=500.0; Hurt=2; }else{ printf("玩家B已经用过小刀了\n"); } Sleep(1145); system("cls"); }else{ printf("玩家B现在没有小刀\n"); Sleep(1145); system("cls"); } }else if(x6){ if(daoju1[3]){ if(Other^4){ daoju1[3]--; daojulen1--; printf("玩家B使用了烟\n"); printf("玩家B回复了一点生命\n"); Yourmoney+=500.0; Other++; }else{ printf("玩家B现在不需要烟\n"); } Sleep(1145); }else{ printf("玩家B现在没有烟\n"); Sleep(1145); system("cls"); } }else{ if(daoju1[4]){ daoju1[4]--; daojulen1--; printf("玩家B使用了饮料\n"); wait(); printf("\n"); printf("玩家B退了一发"); if(q[qlen]2){ printf("空弹"); kong--; }else{ printf("实弹"); Yourmoney+=500.0; shi--; } qlen--; Sleep(500); }else{ printf("玩家B现在没有饮料\n"); Sleep(1145); system("cls"); } } Sleep(1000); system("cls"); } int asdasd; void duorenplay(){ while(1){ if(shi0){ build_gun_duo(); T=asdasd; asdasd++; continue; } if(T%20){ Timeyou_duo(); }else{ Timeother_duo(); } } } int main(){ srand(time(0)); int x; while(1){ printf("请选择你想要的模式:\n1.单人\n2.双人(此模式中,生命值为4,道具补给为2)\n"); scanf("%d",&x); if(x1||x2){ break; } printf("输入不合法\n"); Sleep(1145); system("cls"); } system("cls"); if(x==1){ danrenplay(); }else{ Your=Other=4; duorenplay(); } return 0; }`
-
2024-12-1 11:30:44@
-
2024-12-1 11:22:34@
为什么我A0590的程序在DEV上能过,在OJ上RE?
#include <bits/stdc++.h> #define ull unsigned long long using namespace std; ull seed,a[10000005]; int n,m,sum=0; ull rnd(){ seed=seed*seed+seed+30ull; return seed; } int main(){ freopen("random.in","r",stdin); freopen("random.out","w",stdout); cin>>seed>>n>>m; for(int i=1;i<=m;i++) cin>>a[i]; for(int i=1;i<=n;i++){ ull b=rnd(); for(int j=1;j<=m;j++) if(b==a[j]) sum++; } cout<<sum; return 0; }
-
2024-11-30 21:31:48@
我的离散化哪里错了能不能帮我看看
没有题号,就是一个离散化模版
#include<bits/stdc++.h> using namespace std; struct node { int x;//原数 int id;//在原数组里的编号 int t;//离散化之后的数字 }a[100005]; bool cmp(node x,node y) { return x.x<y.x; } int n; int main() { ios::sync_with_stdio(0); cin.tie(0); cin>>n; for(int i=1;i<=n;i++) { cin>>a[i].x; a[i].id=i; } sort(a+1,a+1+n,cmp); int tot=0; for(int i=1;i<=n;i++) { int x=a[i].x; while(a[i].x==x) { a[i].t=tot; i++; } tot++; } for(int i=1;i<=n;i++) { cout<<a[i].t<<' '; } return 0; }
-
2024-11-30 20:25:39@
我大概应该可能差不多没有参加NOIP -
2024-11-30 20:23:11@
可恶
-
2024-11-30 19:35:59@
https://oj.since2018.top/p/TEST1001 谁做不过谁
sb废了,快去重开吧 -
2024-11-30 15:10:58@
关机代码怎么写?
-
2024-11-29 20:49:15@
七圣召唤投骰子的代码,可以提建议
#include<bits/stdc++.h> using namespace std; int aa[8],bb[8]; int qiu(int n){ return rand()%n+1; } int main(){ srand(time(0)); cout<<"七圣召唤"<<endl; cout<<"请输入各自的名字例:A B"<<endl; string a,b; cin>>a>>b; cout<<"是否了解规则?"<<endl; cout<<"A YES"<<endl; cout<<"B NO"<<endl; char z; cin>>z; if(z=='B'){ cout<<"1风 2岩 3雷 4草 5水 6火 7冰"<<endl; cout<<"关于使用:1删除(输入其位置) 2指定其值(输入其位置,输入指定值)"<<endl; } int c=1; while(true){ cout<<"回合"<<c<<endl; cout<<"开始摇骰子"<<endl; cout<<a<<"的骰子如下"<<endl; for(int i=1;i<=7;i++){ aa[i]=qiu(7); cout<<aa[i]<<" "; } cout<<endl; cout<<"是否重摇指定?输入1,不修改则输入为0"<<endl; int s; for(int i=1;i<=7;i++){ cin>>s; if(s==1){ aa[i]=qiu(7); } } cout<<a<<"的骰子如下"<<endl; for(int i=1;i<=7;i++){ if(aa[i]==0){ continue; } cout<<aa[i]<<" "; } cout<<endl; cout<<b<<"的骰子如下"<<endl; for(int i=1;i<=7;i++){ bb[i]=qiu(7); cout<<bb[i]<<" "; } cout<<endl; cout<<"是否重摇指定?输入1,不修改则输入为0"<<endl; for(int i=1;i<=7;i++){ cin>>s; if(s==1){ bb[i]=qiu(7); } } cout<<b<<"的骰子如下"<<endl; for(int i=1;i<=7;i++){ if(bb[i]==0){ continue; } cout<<bb[i]<<" "; } cout<<endl; while(true){ cout<<a<<"的操作如下"<<endl; cin>>s; if(s==1){ int w; cin>>w; aa[w]=0; } else{ int w,z; cin>>w>>z; aa[w]=z; } cout<<a<<"的骰子"<<endl; for(int i=1;i<=7;i++){ if(aa[i]==0){ continue; } cout<<aa[i]<<" "; } cout<<endl; cout<<b<<"的操作如下"<<endl; cin>>s; if(s==1){ int w; cin>>w; bb[w]=0; } else{ int w,z; cin>>w>>z; bb[w]=z; } cout<<b<<"的骰子"<<endl; for(int i=1;i<=7;i++){ if(bb[i]==0){ continue; } cout<<bb[i]<<" "; } cout<<endl; cout<<"是否继续操作?1/0"<<endl; cin>>s; if(s==0){ break; } } cout<<"退出游戏输入0,否则输入1"<<endl; cin>>s; if(s==0){ cout<<"游戏结束"<<endl; return 0; } c++; } return 0; }
-
2024-11-25 20:00:07@
刚学set,不知道怎么回事?
-
2024-11-24 19:20:23@
看这里红宝石是真的吗?那我们岂不是赚大了?(
严重怀疑红宝石真实性) -
2024-11-24 18:57:06@
zs的例题讲解
(https://oj.since2018.top/p/A0555) 题目在上面 首先
可以建立一个字符串这里我用char,存一下n。char a; for(int i=1;i<=8;i++){ cin>>a; }
下来一个一个扫一遍,如下。(合并上面代码)
char a; int c=0;//计数器 for(int i=1;i<=题目规定范围;i++){ cin>>a; if(a=='?'){//自己写 c++;//一个一个扫 } }
如上,遇到3,c++。 重点注意要加freopen,
我就在这里错了freopen("number.in","r",stdin); freopen("number.out","w",stdout);
下来合起来就AC了!完结撒花
-
2024-11-24 13:59:16@
MC0005 数据削弱版
题目背景
MC++在上数学真题班的时候因为讨厌牛吃草问题所以想出来的
题目描述
一天,MC++在坐车去找无个名个氏玩的时候,走到了一条牛吃人公路,公路全长米。
这里有头发狂的牛,
据说是从Farmer John 那里逃出来的(可能是因为FJ老是有问题,住不下去了),第头牛埋伏在点,当车经过点时,牛就会冲出来追击车辆,第头牛会以的速度追击车辆。MC++知道以自己的车技绝对过不去,于是请了名司机,第名司机在被牛追击时,速度会增加。
MC++从这里的交警得知,这里的牛在发现自己的距离离车大于米时就会放弃追击。
已知车的初始速度为,且保证不会有两头牛同时追击车辆。
也就是说,当车在经过点时(),若第头牛正在追击,则第点的牛会因为不想打架而放弃追逐
(吸吸务者为俊杰(识时务者为俊杰))。现在MC++想知道,m个司机能否通过牛吃人公路呢?
(只要被抓住,就必死无疑,MC++可不想死在这里)
注意!车辆的起始点为0
输入格式
输入共4行
第一行输入5个整数,,,,,含义见上;
第二行输入个正整数,第个整数表示;
第三行输入个正整数,第个整数表示;
第四行输入个正整数,第个整数表示;
提示
可能等于;
通过条件:车在点且没有任何一头牛追上来
如果当前点+当前车速>k,认为通过
输出格式
一共输出行
第(~)行:如果第个司机能成功通过牛吃人公路,输出,否则输出。
第行:输出两个数,第一个数表示有多少名司机能通过公路,第二个数表示这名司机的通过率,保留整数且向下取整,后面需加上%。
样例
10 2 1 1 0 0
Yes 1 100%
样例解释1
MC++遇到了假的牛吃人公路。
10 5 2 2 2 2 0 1 4 2 2
Yes No 1 50%
样例解释2
对于第一名司机,他是可以通过公路的
对于第二个司机,他会在5点被抓
共有1名司机可通过,通过率50%
数据限制
对于100%的数据,
保证
细分化:
对于40%的数据,,测试点4满足特殊数据A;
对于另外20%的数据,,测试点6满足特殊数据A;
对于另外20%的数据,牛会放弃追逐,测试点7满足特殊数据A;
剩下的20%的数据,没有特殊样例;
也就是说,这道题有30~80分可以骗。
特殊数据A:
-
2024-11-23 21:34:28@
33DAI的接龙疑似可以用并查集写。
就是把所有词库扫一遍用d/bfs扫到可以接到的词,把他们合并到同一集合。
最后就是判断 和 是否在同一个集合内
所以如果把并查集优化buff叠满的话时间复杂度最坏可以近似看成
好像更慢了 -
2024-11-23 11:49:54@
现在看什么都像kruskal
-
2024-11-22 17:15:13@
我猜一下,今天的四道题目名字是:
33DAI的决斗
33DAI的超速检测
33DAI的染色
33DAI的擂台游戏
qwq
-
2024-11-21 22:45:45@
今天还是炸波简单题(有1点难)
(MC++老课堂-3)
今天讲R26T2 A0543 停车费计算
真的简单那
用判断解决好吧
粘贴题目!
题目描述
33DAI想要计算一下停车费。旺座曲江停车场的收费标准为:
如果停车时长在分钟内,不收费。
停车时长大于分钟时:
前分钟共收费元(不满分钟的部分按照分钟收费)
从第分钟起,每分钟收费元(不满 分钟部分的按照分钟计算)
现在已知33DAI次停车每次的停车时间,第次停了分钟。请你算出33DAI一共花了多少停车费。
我们可以通过样例来解决问题,粘贴样例!
5 30 60 2 3 30 31 60 61 660
41
通过观察,我们发现,这道题与星星历那道题有点像
那就通过
星星历的方法解决问题是错的呦
代码框架(自己吃去吧,我懒得讲了)
#include <bits/stdc++.h> using namespace std; int n,x,y,a,b,t[10005]; long long sum=0; int main(){ freopen("park.in","r",stdin); freopen("park.out","w",stdout); cin>>n>>x>>y>>a>>b; for(int i=1;i<=n;i++){ cin>>t[i]; } for(int i=1;i<=n;i++){ if(t[i]<=) continue; if(t[i]> && t[i]<=) sum+=; if(t[i]>){ sum+=; t[i]-=; while(t[i]>=){ sum+=; t[i]-=; } if(t[i]< && t[i]>0){ sum+=; } } } cout<<sum; return 0; }
你问我为什么要加freopen,请看VCR
文件IO没看见吗???
下课!
-
2024-11-21 22:25:26@
西西牢湿给我出来!
-
2024-11-21 22:24:46@
当我在OIERDB找到我的时候: 吴雨航 高中毕业三年 100/400 二等奖 西安市未央区西航四校
-
2024-11-19 22:53:55@
using namespace std; int n,m,father[1005],ans,x,y; int find(int x){ if(father[x]=x)return x; else return father[x]=find(father[x]); } int main(){ ios::sync_with_stdio(false); cin.tie(0); while(true){ cin>>n; if(n==0)return 0; cin>>m; for(int i=1;i<=n;i++) father[i]=i; for(int i=1;i<=m;i++){ cin>>x>>y; father[find(x)]=find(y); } ans=-1; for(int i=1;i<=n;i++) if(father[i]==i) ans++; cout<<ans<<'\n'; } return 0; }
-
2024-11-18 16:13:29@
-
2024-11-18 12:48:53@
要解决“x的平方加y是多少?”这个问题,我们需要明确以下几点:
- 确定变量 ( x ) 和 ( y ) 的值。
- 计算 ( x ) 的平方。
- 将 ( x ) 的平方与 ( y ) 相加。
假设我们已经知道 ( x ) 和 ( y ) 的具体值。为了演示解析过程,我们可以假设一些具体的数值。例如,设 ( x = 3 ) 和 ( y = 4 )。
下面是详细的解析过程:
第一步:计算 ( x ) 的平方
[ x = 3 ] [ x^2 = 3^2 = 9 ]
第二步:将 ( x ) 的平方与 ( y ) 相加
[ y = 4 ] [ x^2 + y = 9 + 4 = 13 ]
因此,当 ( x = 3 ) 和 ( y = 4 ) 时,( x ) 的平方加 ( y ) 等于 13。
总结
如果已知 ( x ) 和 ( y ) 的具体值,可以按照上述步骤进行计算。具体步骤如下:
- 计算 ( x ) 的平方,即 ( x^2 )。
- 将 ( x^2 ) 与 ( y ) 相加,得到结果。
对于任意给定的 ( x ) 和 ( y ),公式为: [ x^2 + y ]
这个公式适用于任何实数 ( x ) 和 ( y )。
-
2024-11-18 12:47:36@
To solve the system of equations:
- ( x + 10 = y )
- ( y - 10 = x )
We can start by substituting the expression for ( y ) from the first equation into the second equation.
From the first equation, we have: [ y = x + 10 ]
Now substitute ( y ) in the second equation: [ (x + 10) - 10 = x ]
Simplify the left side: [ x + 10 - 10 = x ] [ x = x ]
This simplification shows that the original equations are dependent and essentially the same. This means that any value of ( x ) will satisfy the equation as long as ( y ) is ( x + 10 ).
Therefore, the solution to the system of equations is: [ x = x ] [ y = x + 10 ]
In other words, ( x ) can be any real number, and ( y ) will always be 10 more than ( x ).
-
2024-11-18 12:00:32@
33DAI 的接龙你们那啥做的,我用的BFS,我看好多人用DFS
#include<bits/stdc++.h> using namespace std; int n,s,e; struct node { int a,b; }g[20]; queue<int> q; int vis[20]; int main() { ios::sync_with_stdio(0); cin.tie(0); cin>>n>>s>>e; for(int i=1;i<=n;i++) { cin>>g[i].a>>g[i].b; } q.push(s); while(!q.empty()) { int x=q.front(); q.pop(); if(x==e) { cout<<"Yes"; return 0; } for(int i=1;i<=n;i++) { if(vis[i]==1 || g[i].a!=x) { continue; } vis[i]=1; q.push(g[i].b); } } cout<<"No"; return 0; }
似乎33DAI没有用搜索
-
2024-11-17 14:36:59@
-
2024-11-17 10:17:16@
-
2024-11-16 20:55:22@
小黑板呢
-
2024-11-16 19:57:39@