//数字炸弹(自制)
#include <unistd.h>
#include<bits/stdc++.h>
using namespace std;
bool f[20],p[20];
int main(){
stack<int>s;
int zd=0,n,m;
srand(time(0));
zd=rand()%98+2;
cout<<"数字炸弹(1-100)\n";
cout<<"请输入总人数:(2-10)\n";
while(cin>>n){
if(n>10){
cout<<"太多了\n";
}else if(n<2){
cout<<"太少了\n";
}else{
break;
}
}
cout<<"请输入真人数量\n";
while(cin>>m){
if(m>n){
cout<<"太多了\n";
}else if(m<0){
cout<<"太少了\n";
}else{
break;
}
}
cout<<"真人为 ";
for(int i=1;i<=m;i++){
p[i]=true;
sleep(1);
cout<<i<<"号 ";
}
sleep(1);
cout<<"\n1至100\n";
int a,l=1,r=100,last=n,y=n;
for(int i=1;1;i++){
if(i>n){
i=1;
}
if(f[i]){
continue;
}
if(p[i]){
cout<<"请"<<i<<"号玩家开始猜数:\n";
}else{
cout<<"请"<<i<<"号人机开始猜数:\n";
}
if(p[i]){
while(cin>>a){
if(a>r||a<l||a==l||a==r){
cout<<"请在规定范围内猜数\n";
}else{
break;
}
}
}else{
sleep(1);
a=l+rand()%(r-l-1)+1;
cout<<a<<"\n";
sleep(3);
}
if(a>zd){
r=a;
}
if(a<zd){
l=a;
}
if(a==zd){
if(p[i]){
cout<<"”嘣“\n"<<i<<"号玩家出局\n";
}else{
cout<<"”嘣“\n"<<i<<"号人机出局\n";
}
s.push(i);
sleep(3);
y--;
f[i]=true;
if(y>1){
cout<<"游戏继续\n";
sleep(2);
system("cls");
cout<<"还剩"<<y<<"位\n";
cout<<"分别是 ";
for(int i=1;i<=n;i++){
if(!f[i]){
cout<<i<<"号 ";
sleep(2);
}
}
l=1;
r=100;
cout<<"\n"<<l<<"至"<<r<<"\n";
zd=rand()%98+2;
}else{
break;
}
}else{
last=i;
cout<<l<<"至"<<r<<"\n";
}
}
s.push(last);
cout<<"游戏结束\n";
sleep(1);
cout<<"\n排名榜:\n";
sleep(1);
for(int i=1;i<=n;i++){
cout<<"第"<<i<<":"<<s.top()<<"号\n";
sleep(2);
s.pop();
}
if(p[last]){
cout<<"恭喜"<<last<<"号玩家赢得了比赛的第一(* ^_^ *)\n";
}else{
cout<<"恭喜"<<last<<"号人机赢得了比赛的第一(这次的玩家真菜( ̄_ ̄|||))\n";
}
return 0;
}