0
已解决
张帆
中级天翼
中级天翼
name-computation:
更新刹不住脚,到了3.0:
更新五个Boss:
1.dragon
2.king
3.coder
4.covid
5.student
都有固定技能
张帆在2021-02-10 16:59:14追加了内容
张帆在2021-02-11 11:05:26追加了内容
张帆在2021-02-11 11:17:14追加了内容
#include<iostream>
#include<windows.h>
#include<bits/stdc++.h>
using namespace std;
struct j{
string fire;//技能名字
string fine;//对敌人造成的伤害
};
struct chacracter{
string name;
int HP,G,Z;
j ay;
int idx,num;
string turn_num="";
string wy_num="";
int go_upper=0;
string kill;
int times;
}; /*
HP:血量
G:攻击力
Z:智力
ay:特技
idx:所在队伍
num:人物编号
*/
int n=1;
chacracter c[110];
j how[30];//技能
void color(int corcorcor){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),corcorcor);
}
void give_num_to_how_a_fine_work(){
how[1].fire="火球术",how[1].fine="100";
how[2].fire="心灵控制",how[2].fine="10+turn";
how[3].fire="地裂术",how[3].fine="25+every";
//how[4].fire="铁壁",how[4].fine="0+fend";//fend防守
how[4].fire="瘟疫",how[6].fine="20+wy";//wy感染
how[5].fire="懒癌",how[6].fine="20+wy";//wy感染
//how[7].fire="回避攻击",how[8].fine="0+fend";
how[6].fire="终极一击",how[8].fine="200+every+wy";
how[7].fire="皇天冲击",how[7].fine="230+every+wy";
how[8].fire="新冠病毒",how[8].fine="280+wy";
how[9].fire="代码冲击",how[9].fine="290+turn";
how[10].fire="文理双翼",how[10].fine="666";
return ;
}
void out(string said){
for(int i=0;i<said.length();i++){
cout<<said[i];
Sleep(50);
}
return ;
}//输入一个字符串,每5毫秒输出一个字符
void ano(){
cout<<"\n";
return ;
}//换行简写
void begin(){
out("欢迎来到NC 4.0");
//ano();
//ano();
Sleep(1000);
system("cls");
out("下面请输入名字,按enter+enter分队,禁止外挂,若系统发现外挂,自动退游,最多支持100个名字对战,超出可能会报错。");
ano();
out("按enter+(ctrl+z)+enter(注:分开按)结束输入,开始对战");
Sleep(5000);
//cout<"\n";
system("cls");
return ;
}//开始对白
void give_num_to_people(int id){
int x=rand()%5+1;
c[id].ay.fire=how[x].fire;
c[id].ay.fine=how[x].fine;
if(c[id].name.find("king",0)!=-1){
c[id].ay.fire=how[6].fire;
c[id].ay.fine=how[6].fine;
}
if(c[id].name.find("dragon",0)!=-1){
c[id].ay.fire=how[7].fire;
c[id].ay.fine=how[7].fine;
}
if(c[id].name.find("covid",0)!=-1){
c[id].ay.fire=how[8].fire;
c[id].ay.fine=how[8].fine;
}
if(c[id].name.find("coder",0)!=-1){
c[id].ay.fire=how[9].fire;
c[id].ay.fine=how[9].fine;
}
if(c[id].name.find("student",0)!=-1){
c[id].ay.fire=how[10].fire;
c[id].ay.fine=how[10].fine;
}
c[id].HP=rand()%201+200;
c[id].G=rand()%41+10;
c[id].Z=rand()%100+1;
return ;
}//对于每一个人物,生成属性。
void in(){
int ans=1;
while(getline(cin,c[n].name)){
if(c[n].name.empty()){
ans++;
} else {
c[n].idx=ans;
c[n].num=n;
c[n].kill="none_people_kill_him";
give_num_to_people(n);
n++;
}
//give_num_to_people(n);
//cout<<n<<" "<<c[n].HP<<" "<<c[n].G<<" "<<c[n].Z<<" "<<c[n].idx<<"\n";
}
n--;
if(n<2){
out("wrong");
exit(0);
}
if(ans==1){//单斗模式
//int poster=1;
for(int i=1;i<=n;i++){
c[i].idx=i;
}
}
return ;
}//输入
void fight_begin_out(){
system("cls");
for(int i=1;i<=n;i++){
color(c[i].idx+240);
cout<<(char)(c[i].idx+'A'-1)<<":";
cout<<c[i].name<<" ";
cout<<"HP:"<<c[i].HP<<" ";
cout<<"攻:"<<c[i].G<<" ";
cout<<"智:"<<c[i].Z<<" ";
//cout<<"队伍:"<<c[i].idx<<" ";
ano();
//if(c[i].idx!=c[i-1].idx) ano();
}
color(0+240);
cout<<"_____________________________________________________\n";
return ;
}//开始输出属性
bool check(){
int pos=0,cnt=0;
for(int i=1;i<=n;i++){
if(c[i].HP>0){
if(c[i].idx!=pos){
pos=c[i].idx;
cnt++;
}
}
}
return cnt>1;
}
int turn(string s){
int sum=0;
for(int i=0;i<s.length();i++){
if(!(s[i]>='0'&&s[i]<='9')) break;
sum=sum*10+(int)(s[i]-'0');
}
return sum;
}
void fight(){
int now_turn=0;
while(check()){
//cout<<"yes\n";
now_turn=now_turn%n+1;
if(c[now_turn].HP==0) continue;
if(c[now_turn].times==3){
c[now_turn].turn_num="";
c[now_turn].wy_num="";
}
int pos=rand()%3+1;//出招与否
//if(c[now_turn].ay.fire=="铁壁"||c[now_turn].ay.fire=="回避攻击"){
// pos=2;
//}
int names_you_go=rand()%n+1;
while(c[names_you_go].idx==c[now_turn].idx||c[names_you_go].HP<=0) names_you_go=rand()%n+1;
int yes=rand()%10+1;
if(c[now_turn].turn_num=="yes") names_you_go=now_turn;
switch(pos){
case 3:{//出技能
cout<<c[now_turn].name<<" 使用了 "<<c[now_turn].ay.fire<<",\n";
int flag=c[now_turn].ay.fine.find("every",0);
if(flag==-1){
if(yes==1){
cout<<c[names_you_go].name<<" 回避了攻击 。\n";
} else {
int fight_num=turn(c[now_turn].ay.fine);
//if(!c[now_turn].ay.fire)
cout<<c[names_you_go].name<<" 受到了 "<<fight_num<<"点伤害";
c[names_you_go].HP-=fight_num;
if(c[names_you_go].HP<0) c[names_you_go].HP=0;
if(c[names_you_go].HP==0){
cout<<" "<<c[names_you_go].name<<"被击倒了";
c[now_turn].go_upper++;
c[names_you_go].kill=c[now_turn].name;
break;
}
if(c[now_turn].ay.fine.find("turn",0)!=-1){
cout<<","<<c[names_you_go].name<<" 被鬼魅了 ";
c[names_you_go].turn_num="yes";
}
if(c[now_turn].ay.fine.find("wy",0)!=-1){
cout<<","<<c[names_you_go].name<<" 被感染了 ";
c[names_you_go].wy_num="yes";
}
}
ano();
} else {
int fight_num=turn(c[now_turn].ay.fine);
for(int i=1;i<=n;i++){
if(c[i].HP<=0) continue;
if(c[i].idx==c[names_you_go].idx){
cout<<" "<<c[i].name<<" 受到了 "<<fight_num<<"点伤害";
c[i].HP-=fight_num;
if(c[i].HP<=0){
c[i].HP=0;
cout<<","<<c[i].name<<"被击倒了;\n";
c[now_turn].go_upper++;
c[i].kill=c[now_turn].name;
continue;
}
if(c[now_turn].ay.fine.find("turn",0)!=-1){
cout<<","<<c[i].name<<" 被鬼魅了 ";
c[i].turn_num="yes";
}
if(c[now_turn].ay.fine.find("wy",0)!=-1){
cout<<","<<c[i].name<<" 被感染了 ";
c[i].wy_num="yes";
}
cout<<"\n";
}
}
}
break;
}
default:{//出普通攻击
cout<<c[now_turn].name<<"发起攻击,";
if(yes==1){
cout<<c[names_you_go].name<<" 回避了攻击 。\n";
} else {
int fight_num=c[now_turn].G;
//if(!c[now_turn].ay.fire)
cout<<c[names_you_go].name<<" 受到了 "<<fight_num<<"点伤害";
c[names_you_go].HP-=fight_num;
if(c[names_you_go].HP<0) c[names_you_go].HP=0;
if(c[names_you_go].HP==0){
cout<<" "<<c[names_you_go].name<<"被击倒了\n";
c[now_turn].go_upper++;
c[names_you_go].kill=c[now_turn].name;
}
//if(c[now_turn].ay.fine.find("turn",0)!=-1){
// cout<<","<<c[names_you_go].name<<" 被鬼魅了 ";
// c[names_you_go].turn_num="yes";
//}
//if(c[now_turn].ay.fine.find("wy",0)!=-1){
// cout<<","<<c[names_you_go].name<<" 被感染了 ";
// c[names_you_go].wy_num="yes";
//}
ano();
}
break;
}
}
if(c[now_turn].wy_num=="yes"){
cout<<" "<<c[now_turn].name<<"病毒发作,收到了50点伤害,";
c[now_turn].HP-=50;
if(c[names_you_go].HP==0){
cout<<c[now_turn].name<<"被击倒了\n";
//c[now_turn].go_upper++;
}
ano();
}
c[now_turn].times++;
Sleep(500);
cout<<endl;
}
return ;
}
void last_out(){
//cout<<turn("100");
ano();
ano();
cout<<"输出格式为名字,杀得人数,他被谁杀。";
ano();
ano();
cout<<"胜者:";
int pos=-1;
ano();
for(int i=1;i<=n;i++){
if(c[i].HP>0){
pos=c[i].idx;
break;
}
}
for(int i=1;i<=n;i++){
if(c[i].idx==pos){
color(c[i].idx+240);
cout<<(char)(c[i].idx+'A'-1)<<":";
cout<<c[i].name<<" "<<c[i].go_upper<<" "<<c[i].kill<<"\n";
}
}
ano();
ano();
color(0+240);
cout<<"败者:";
ano();
for(int i=1;i<=n;i++){
if(c[i].idx!=pos){
color(c[i].idx+240);
cout<<(char)(c[i].idx+'A'-1)<<":";
cout<<c[i].name<<" "<<c[i].go_upper<<" "<<c[i].kill<<"\n";
}
}
color(0+240);
return ;
}
int main(){
give_num_to_how_a_fine_work();
begin();
in();
fight_begin_out();
fight();
last_out();
return 0;
}
4.0染色版本
张帆在2021-02-11 11:18:40追加了内容
4.0隆重来袭。
0
0
0
0
李致远
高级光能
高级光能
//更新了两个boss 您觉得怎么样
#include<iostream>
#include<windows.h>
#include<bits/stdc++.h>
using namespace std;
struct j {
string fire;//技能名字
string fine;//对敌人造成的伤害
};
struct chacracter {
string name;
int HP,G,Z;
j ay;
int idx,num;
string turn_num="";
string wy_num="";
int go_upper=0;
string kill;
int times;
}; /*
HP:血量
G:攻击力
Z:智力
ay:特技
idx:所在队伍
num:人物编号
*/
int n=1;
chacracter c[110];
j how[30];//技能
void color(int corcorcor) {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),corcorcor);
}
void give_num_to_how_a_fine_work() {
how[1].fire="火球术",how[1].fine="100";
how[2].fire="心灵控制",how[2].fine="10+turn";
how[3].fire="地裂术",how[3].fine="25+every";
how[12].fire="一击必杀",how[12].fine="300+every+fend";//fend防守
how[4].fire="瘟疫",how[6].fine="20+wy";//wy感染
how[5].fire="懒癌",how[6].fine="20+wy";//wy感染
//how[7].fire="回避攻击",how[8].fine="0+fend";
how[6].fire="终极一击",how[8].fine="200+every";
how[7].fire="皇天冲击",how[7].fine="230+every";
how[8].fire="新冠病毒",how[8].fine="280+wy";
how[9].fire="代码冲击",how[9].fine="290+turn";
how[10].fire="文理双翼",how[10].fine="300";
how[11].fire="蔑视群雄",how[11].fine="500+every";
return ;
}
void out(string said) {
for(int i=0; i<said.length(); i++) {
cout<<said[i];
Sleep(20);
}
return ;
}//输入一个字符串,每5毫秒输出一个字符
void ano() {
cout<<"\n";
return ;
}//换行简写
void begin() {
out("欢迎来到NC 4.0");
//ano();
//ano();
Sleep(1000);
system("cls");
out("下面请输入名字,按enter+enter分队,禁止外挂,若系统发现外挂,自动退游,最多支持100个名字对战,超出可能会报错。");
ano();
out("按enter+(ctrl+z)+enter(注:分开按)结束输入,开始对战");
Sleep(1000);
//cout<"\n";
system("cls");
return ;
}//开始对白
void give_num_to_people(int id) {
int x=rand()%5+1;
c[id].ay.fire=how[x].fire;
c[id].ay.fine=how[x].fine;
if(c[id].name.find("king",0)!=-1) {
c[id].ay.fire=how[6].fire;
c[id].ay.fine=how[6].fine;
}
if(c[id].name.find("dragon",0)!=-1) {
c[id].ay.fire=how[7].fire;
c[id].ay.fine=how[7].fine;
}
if(c[id].name.find("covid",0)!=-1) {
c[id].ay.fire=how[8].fire;
c[id].ay.fine=how[8].fine;
}
if(c[id].name.find("coder",0)!=-1) {
c[id].ay.fire=how[9].fire;
c[id].ay.fine=how[9].fine;
}
if(c[id].name.find("student",0)!=-1) {
c[id].ay.fire=how[10].fire;
c[id].ay.fine=how[10].fine;
}
if(c[id].name.find("ghost",0)!=-1) {
c[id].ay.fire=how[12].fire;
c[id].ay.fine=how[12].fine;
}
if(c[id].name.find("God of war",0)!=-1) {
c[id].ay.fire=how[11].fire;
c[id].ay.fine=how[11].fine;
}
c[id].HP=rand()%201+200;
c[id].G=rand()%41+10;
c[id].Z=rand()%100+1;
return ;
}//对于每一个人物,生成属性。
void in() {
int ans=1;
while(getline(cin,c[n].name)) {
if(c[n].name.empty()) {
ans++;
} else {
c[n].idx=ans;
c[n].num=n;
c[n].kill="none_people_kill_him";
give_num_to_people(n);
n++;
}
//give_num_to_people(n);
//cout<<n<<" "<<c[n].HP<<" "<<c[n].G<<" "<<c[n].Z<<" "<<c[n].idx<<"\n";
}
n--;
if(n<2) {
out("wrong");
exit(0);
}
if(ans==1) { //单斗模式
//int poster=1;
for(int i=1; i<=n; i++) {
c[i].idx=i;
}
}
return ;
}//输入
void fight_begin_out() {
system("cls");
for(int i=1; i<=n; i++) {
color(c[i].idx+240);
cout<<(char)(c[i].idx+'A'-1)<<":";
cout<<c[i].name<<" ";
cout<<"HP:"<<c[i].HP<<" ";
cout<<"攻:"<<c[i].G<<" ";
cout<<"智:"<<c[i].Z<<" ";
//cout<<"队伍:"<<c[i].idx<<" ";
ano();
//if(c[i].idx!=c[i-1].idx) ano();
}
color(0+240);
cout<<"_____________________________________________________\n";
return ;
}//开始输出属性
bool check() {
int pos=0,cnt=0;
for(int i=1; i<=n; i++) {
if(c[i].HP>0) {
if(c[i].idx!=pos) {
pos=c[i].idx;
cnt++;
}
}
}
return cnt>1;
}
int turn(string s) {
int sum=0;
for(int i=0; i<s.length(); i++) {
if(!(s[i]>='0'&&s[i]<='9')) break;
sum=sum*10+(int)(s[i]-'0');
}
return sum;
}
void fight() {
int now_turn=0;
while(check()) {
//cout<<"yes\n";
now_turn=now_turn%n+1;
if(c[now_turn].HP==0) continue;
if(c[now_turn].times==3) {
c[now_turn].turn_num="";
c[now_turn].wy_num="";
}
int pos=rand()%3+1;//出招与否
//if(c[now_turn].ay.fire=="铁壁"||c[now_turn].ay.fire=="回避攻击"){
// pos=2;
//}
int names_you_go=rand()%n+1;
while(c[names_you_go].idx==c[now_turn].idx||c[names_you_go].HP<=0) names_you_go=rand()%n+1;
int yes=rand()%10+1;
if(c[now_turn].turn_num=="yes") names_you_go=now_turn;
switch(pos) {
case 3: { //出技能
cout<<c[now_turn].name<<" 使用了 "<<c[now_turn].ay.fire<<",\n";
int flag=c[now_turn].ay.fine.find("every",0);
if(flag==-1) {
if(yes==1) {
cout<<c[names_you_go].name<<" 回避了攻击 。\n";
} else {
int fight_num=turn(c[now_turn].ay.fine);
//if(!c[now_turn].ay.fire)
cout<<c[names_you_go].name<<" 受到了 "<<fight_num<<"点伤害";
c[names_you_go].HP-=fight_num;
if(c[names_you_go].HP<0) c[names_you_go].HP=0;
if(c[names_you_go].HP==0) {
cout<<" "<<c[names_you_go].name<<"被击倒了";
c[now_turn].go_upper++;
c[names_you_go].kill=c[now_turn].name;
break;
}
if(c[now_turn].ay.fine.find("turn",0)!=-1) {
cout<<","<<c[names_you_go].name<<" 被鬼魅了 ";
c[names_you_go].turn_num="yes";
}
if(c[now_turn].ay.fine.find("wy",0)!=-1) {
cout<<","<<c[names_you_go].name<<" 被感染了 ";
c[names_you_go].wy_num="yes";
}
}
ano();
} else {
int fight_num=turn(c[now_turn].ay.fine);
for(int i=1; i<=n; i++) {
if(c[i].HP<=0) continue;
if(c[i].idx==c[names_you_go].idx) {
cout<<" "<<c[i].name<<" 受到了 "<<fight_num<<"点伤害";
c[i].HP-=fight_num;
if(c[i].HP<=0) {
c[i].HP=0;
cout<<","<<c[i].name<<"被击倒了;\n";
c[now_turn].go_upper++;
c[i].kill=c[now_turn].name;
continue;
}
if(c[now_turn].ay.fine.find("turn",0)!=-1) {
cout<<","<<c[i].name<<" 被鬼魅了 ";
c[i].turn_num="yes";
}
if(c[now_turn].ay.fine.find("wy",0)!=-1) {
cout<<","<<c[i].name<<" 被感染了 ";
c[i].wy_num="yes";
}
cout<<"\n";
}
}
}
break;
}
default: { //出普通攻击
cout<<c[now_turn].name<<"发起攻击,";
if(yes==1) {
cout<<c[names_you_go].name<<" 回避了攻击 。\n";
} else {
int fight_num=c[now_turn].G;
//if(!c[now_turn].ay.fire)
cout<<c[names_you_go].name<<" 受到了 "<<fight_num<<"点伤害";
c[names_you_go].HP-=fight_num;
if(c[names_you_go].HP<0) c[names_you_go].HP=0;
if(c[names_you_go].HP==0) {
cout<<" "<<c[names_you_go].name<<"被击倒了\n";
c[now_turn].go_upper++;
c[names_you_go].kill=c[now_turn].name;
}
//if(c[now_turn].ay.fine.find("turn",0)!=-1){
// cout<<","<<c[names_you_go].name<<" 被鬼魅了 ";
// c[names_you_go].turn_num="yes";
//}
//if(c[now_turn].ay.fine.find("wy",0)!=-1){
// cout<<","<<c[names_you_go].name<<" 被感染了 ";
// c[names_you_go].wy_num="yes";
//}
ano();
}
break;
}
}
if(c[now_turn].wy_num=="yes") {
cout<<" "<<c[now_turn].name<<"病毒发作,收到了50点伤害,";
c[now_turn].HP-=50;
if(c[names_you_go].HP==0) {
cout<<c[now_turn].name<<"被击倒了\n";
//c[now_turn].go_upper++;
}
ano();
}
c[now_turn].times++;
Sleep(500);
cout<<endl;
}
return ;
}
void last_out() {
//cout<<turn("100");
ano();
ano();
cout<<"输出格式为名字,杀得人数,他被谁杀。";
ano();
ano();
cout<<"胜者:";
int pos=-1;
ano();
for(int i=1; i<=n; i++) {
if(c[i].HP>0) {
pos=c[i].idx;
break;
}
}
for(int i=1; i<=n; i++) {
if(c[i].idx==pos) {
color(c[i].idx+240);
cout<<(char)(c[i].idx+'A'-1)<<":";
cout<<c[i].name<<" "<<c[i].go_upper<<" "<<c[i].kill<<"\n";
}
}
ano();
ano();
color(0+240);
cout<<"败者:";
ano();
for(int i=1; i<=n; i++) {
if(c[i].idx!=pos) {
color(c[i].idx+240);
cout<<(char)(c[i].idx+'A'-1)<<":";
cout<<c[i].name<<" "<<c[i].go_upper<<" "<<c[i].kill<<"\n";
}
}
color(0+240);
return ;
}
int main() {
while(1) {
give_num_to_how_a_fine_work();
begin();
in();
fight_begin_out();
fight();
last_out();
ano();
}
return 0;
}