名字竞技场(小)
  • 板块灌水区
  • 楼主yinxiangbo2030
  • 当前回复7
  • 已保存回复7
  • 发布时间2023/12/23 12:01
  • 上次更新2023/12/23 14:53:02
查看原帖
名字竞技场(小)
1005576
yinxiangbo2030楼主2023/12/23 12:01

蒟蒻制作,dalao勿喷

#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
map<char,int>point;
int n;
struct people{
	string name;
	int gongji,fangyu,xieliang;
}a[31];
void print(int wait_second,string print_string){
	for(int i=0;i<print_string.size();i++){
		cout<<print_string[i];
		Sleep(wait_second);
	}
	cout<<"\n\n\n";
}
bool ck(int the_size){
	int ans=0;
	for(int i=1;i<=the_size;i++)if(a[i].xieliang>0)ans++;
	if(ans==1)return 1;
	else return 0;
}
int main(){
	srand(time(0));
	for(char i='a';i<='z';i++)point[i]=rand()%100+1;
	for(int i=1;i<32;i++){
		a[i].gongji=rand()%10+1;
		a[i].fangyu=rand()%10+1;
		a[i].xieliang=rand()%150+50;
	}
	print(75,"			欢迎来到名字竞技场(小)");
	Sleep(1500);
	print(75,"为什么是《小》呢?因为对比原版竞技场,这个自己制作的比较粗糙,还请大家多多包涵");
	Sleep(1000);
	print(75,"废话不多说,我们直接讲游戏规则");
	system("cls");
	Sleep(1000);
	print(75,"1.一行一个字符串,表示一个人(一人一队),不超过30行,每个字符串长度不超过10");
	print(75,"2.人名仅支持小写英文字母,不支持大写字母、符号和中文");
	print(75,"3.本游戏由考试时没事情做的蒟蒻CXK(别想了,不是坤坤)制作");
	Sleep(3000);
	print(75,"那么现在,游戏开始!!!");
	Sleep(500);
	system("cls");
	print(75,"请输入人数:");
	cin>>n;
	print(75,"请输入人的名称(n行,一行一个字符串):");
	for(int i=1;i<=n;i++){
		cin>>a[i].name;
		for(int j=0;j<a[i].name.size();j++){
			a[i].gongji+=(11-a[i].name.size())*point[a[i].name[j]];
			a[i].fangyu+=(11-a[i].name.size())*point[a[i].name[j]];
			a[i].xieliang+=(11-a[i].name.size())*point[a[i].name[j]];
		}
	}
	system("cls");
	system("color C");
	print(200,"战斗开始!");
	while(1){
		for(int i=1;i<=n;i++){
			int mubiao;
			while(1){
				mubiao=rand()%n+1;
				if(mubiao!=i&&a[mubiao].xieliang>0)break;
			}
			int kill=max(0,a[i].gongji-a[mubiao].fangyu);
			a[mubiao].xieliang-=kill;
			string out=a[i].name,skill;
			while(kill>0){
				skill+=char(kill%10+'0');
				kill/=10;
			}
			for(int i=0;i<skill.size()/2;i++)swap(skill[i],skill[skill.size()-1-i]);
			out+="向";
			out+=a[mubiao].name;
			out+="发起了进攻!";
			out+=a[mubiao].name;
			out+="受到了";
			out+=skill;
			out+="点攻击!";
			print(75,out);
			if(a[mubiao].xieliang<=0){
				out=a[mubiao].name;
				out+="被击倒了!";
				print(75,out);
			}
			if(ck(n))break;
		}
		if(ck(n))break;
	}
	int ans;
	for(int i=1;i<=n;i++){
		if(a[i].xieliang>0){
			ans=i;
			break;
		}
	}
	string ans_out=a[ans].name;
	ans_out+="是冠军!";
	system("cls");
	print(75,ans_out);
	return 0;
}
2023/12/23 12:01
加载中...