C++ ハリー・ポッター ゲーム (バージョン 1.0.00.11)

今回は、前回の一度回避と常時スキルがプレイできない問題を改善しました。気に入っていただければ幸いです。

exe を GitHub に置きました。ここをクリックしてダウンロードしてください

#include"3.h"
using namespace std;
int main() {
	srand((unsigned)time(NULL));
	string a[20]={"阿瓦达索命","除你武器","腿立僵停死","武器飞来","火烤热辣辣","门牙赛大棒","咒立停","钻心剜骨","魂魄出窍","倒挂金钟","金钟落地","统统石化","粉身碎骨","一忘皆空","昏昏倒地","神锋无影","尸骨再现","乌龙出洞","障碍重重","火焰熊熊"}; 
	int b[20]={180,1,85,20,75,70,1,86,88,78,79,1,87,87,85,80,95,92,1,68};
	string c[4]={"火弩箭(闪避)","复方汤剂(变身)","凤凰福克斯(闪避+治疗)","纳吉尼(高攻)"}; 
	int d[4]={1,10,1,120};
	string e[2]={"Harry Potter","Lord Voldemort"};
	string f;
	string g;
	cout<<"请选择角色:"<<e[0]<<" or "<<e[1]<<endl;
	getline(cin,f);
	cout<<"你确定吗?请回答“确定”或“不确定”。"<<endl;
	cin>>g;
	int h=1200,i=1200,j,k,l,m,n,qw=0,ch=0,hc=0,o=0,p=0,cw=0;
		
	if(g=="不确定"){
		cout<<"你还有一次机会,请谨慎选择。"<<endl;
	 	cout<<"请选择角色:"<<e[0]<<" or "<<e[1]<<endl;
	 	getline(cin,g);
	 	getline(cin,f);
	}
	cout<<"你的角色为"<<f<<"。"<<endl; 
	for(int q=0;h>0&&i>0;q++){
		qw=0,ch=0,hc=0;
		cout<<"请输入数字"<<endl; 
		cin>>n;
		l=(rand()+n)%20;
		j=b[l];
		if(j==20){
			l=(rand()+n)%4;
			o++;
			if(l==3&&f==e[1])l--;
			if(l==2&&f==e[0])l++;
			j=d[l];
			if(l==2)h+=50; 
			cout<<"你使用了"<<c[l]<<"技能,";
		}
		srand(time(0)*time(0));
		m=(rand())%20;
		k=b[m];
		if(k==20){
			m=rand()%4;
			p++;
			if(m==3&&f==e[0])m--;
			if(m==2&&f==e[1])m++;
			k=d[m];
			if(m==2)i+=50;
			cout<<"对方使用了"<<c[m]<<"技能,";
		}
		if(j==10&&k==10){cout<<"本轮你和对方都变身了,无效!";qw++;}
		else if(j==10){cout<<"本轮你变身了,造成了50点伤害(无论如何也抵挡不住),对方落空!";ch++;} 
		else if(k==10){cout<<"本轮对方变身了,造成了50点伤害(无论如何也抵挡不住),你落空!";hc++;}
		else if(j==1&&k==1){cout<<"本轮你和对方都闪避了,无效!";qw++;}
		else if(j==1){cout<<"本轮你闪避了,下轮开始!";qw++;}
		else if(k==1){cout<<"本轮对方闪避了,下轮开始!";qw++;}
		if(qw)
			; 
		else if(ch>0)
			i-=50;
		else if(hc>0)
			h-=50;
		else{
			h-=k;
			i-=j;
		}
		if(o==1&&p==1) 
			;
		else if(o==1)
			cout<<"对方使用了"<<a[m]<<"技能,";	
		else if(p==1)
			cout<<"你使用了"<<a[l]<<"技能,";
		else{
			cout<<"你使用了"<<a[l]<<"技能,";
			cout<<"对方使用了"<<a[m]<<"技能,";
		}
		cout<<"你还剩"<<h<<"滴血,对方剩"<<i<<"滴血"<<endl; 
	} 
	if(h>i)
		printf("你获胜了!");
	else if(i>h)
		printf("对方获胜了,再接再厉!"); 
	else
		cout<<"平局!";
	 
	return 0;
}

以下は最後のコード (バージョン 1.0.00.01) です。このコードに関してご提案がある場合は、コメント エリアに入力してください。

#include<bits/stdc++.h>
using namespace std;
int main() {
	freopen("666.cpp","r",stdin);//请自己插入文件,不插文件会错误的 
	string a[21]={"阿瓦达索命","除你武器","腿立僵停死","武器飞来","火烤热辣辣","门牙赛大棒","咒立停","钻心剜骨","魂魄出窍","倒挂金钟","金钟落地","统统石化","粉身碎骨","一忘皆空","昏昏倒地","神锋无影","尸骨再现","乌龙出洞","障碍重重","老魔杖","火焰熊熊"}; 
	int b[21]={180,1,85,20,75,70,1,86,88,78,79,1,87,87,85,80,95,92,1,0,68};
	string c[4]={"火弩箭(闪避)","复方汤剂(变身)","凤凰福克斯(闪避+治疗)","伏地魔的蛇(高攻)"}; 
	int d[4]={1,10,1,120};
	string e[2]={"Harry Potter","Lord Voldemort"};
	string f;
	string g;
	cout<<"请选择角色:"<<e[0]<<" or "<<e[1]<<endl;
	getline(cin,f);
	cout<<"你确定吗?请回答“确定”或“不确定”。"<<endl;
	cin>>g;
	int h=1200,i=1200,j,k,l,m,n,ch=0,hc=0,qw=0,wc=0,o=0,p=0,cw=0;
		
	if(g=="不确定"){
		cout<<"你还有一次机会,请谨慎选择。"<<endl;
	 	cout<<"请选择角色:"<<e[0]<<" or "<<e[1]<<endl;
	 	getline(cin,g);
	 	getline(cin,f);
	}
	cout<<"你的角色为"<<f<<"。"<<endl; 
	for(int q=0;h>0&&i>0;q++){
		cout<<"请输入数字"<<endl; 
		srand(time(0));
		cin>>n;
		l=(rand()+n)%21;
		j=b[l];
		if(j==20){
			l=(rand()+n)%4;
			o++;
			if(l==3&&f==e[1])l--;
			if(l==2&&f==e[0])l++;
			j=d[l];
			if(l==2)h+=50; 
			cout<<"你使用了"<<c[l]<<"技能,";
		}
		srand(time(0)*time(0));
		m=(rand())%21;
		k=b[m];
		if(k==20){
			m=rand()%4;
			p++;
			if(m==3&&f==e[0])m--;
			if(m==2&&f==e[1])m++;
			k=d[m];
			if(m==2)i+=50;
			cout<<"对方使用了"<<c[m]<<"技能,";
		}
		if(j==10&&k==10){cout<<"本轮你和对方都变身了,无效!";qw++;}
		else if(j==10){cout<<"本轮你变身了,造成了50点伤害(无论如何也抵挡不住),对方落空!";ch++;} 
		else if(k==10){cout<<"本轮对方变身了,造成了50点伤害(无论如何也抵挡不住),你落空!";hc++;}
		else if(j==0&&k==1){cout<<"老魔杖氪除你武器,对方扣100滴血!";wc++;}
		else if(j==1&&k==0){cout<<"老魔杖氪除你武器,你扣100滴血!";cw++;} 
		else if(j==1&&k==1){cout<<"本轮你和对方都闪避了,无效!";qw++;}
		else if(j==1){cout<<"本轮你闪避了,下轮开始!";qw++;}
		else if(k==1){cout<<"本轮对方闪避了,下轮开始!";qw++;}
		if(qw)
			; 
		else if(ch>0)
			i-=50;
		else if(hc>0)
			h-=50;
		else if(wc>0)
			i-=100;
		else if(cw>0)
			h-=100;
		else{
			h-=k;
			i-=j;
		}
		if(o==1&&p==1) 
			;
		else if(o==1)
			cout<<"对方使用了"<<a[m]<<"技能,";	
		else if(p==1)
			cout<<"你使用了"<<a[l]<<"技能,";
		else{
			cout<<"你使用了"<<a[l]<<"技能,";
			cout<<"对方使用了"<<a[m]<<"技能,";
		}
		cout<<"你还剩"<<h<<"滴血,对方剩"<<i<<"滴血"<<endl; 
	} 
	if(h>i)
		printf("你获胜了!");
	else if(i>h)
		printf("对方获胜了,再接再厉!"); 
	else
		cout<<"平局!";
	 
	return 0;
}

おすすめ

転載: blog.csdn.net/Djyt4102520/article/details/124911100