Harry Potter Sorting Ceremony(分院帽)

众所周知

分院帽是著名小说《哈利·波特》中描述的一个魔法物品。分院仪式(Sorting Ceremony) 是每年霍格沃茨魔法学校新生都必须进行的重要仪式。

 

在大礼堂全校师生面前进行,由分院帽(Sorting Hat)负责将学生分到格兰芬多赫奇帕奇拉文克劳以及斯莱特林四个学院。分院帽是一顶磨得很旧,打着补丁,而且脏得要命的尖顶巫师帽,原本属于格兰芬多创始人戈德里克·格兰芬多。不过可别小看它,它可是充满智能、会思想的魔帽,能看出学生具备何种才能,从而将学生分到适合他们的学院。

(以上资料来自百度)

那么编一个简单的分院帽程序,

应该也是非常有趣.

OK,现在重点来了

本蒟蒻闲来无事花了那么一点时间编了一个

非常水的

分院帽

(显而易见,仅仅只有五道题而已,算法还非常简陋)

上程序:

#include<bits/stdc++.h>//Sorting Ceremony 
#include<windows.h>
using namespace std;
string name;
int sl=0,gl=0,hq=0,lw=0;//斯莱特林,格兰芬多,赫奇帕奇,拉文克劳
void f(){
	Sleep(2000);
}
void choose(){
	int t;
	cin>>t;
	if(t==3) sl++;
	if(t==4) gl++;
	if(t==1) hq++;
	if(t==2) lw++;
	if(t==5){
		f();
		cout<<"......真是不可思议的选择,看来我已经知道你应该去哪里了......";
		f();
		cout<<"\n(大声地)阿兹卡班!!!!!\n";
		cout<<name<<",或许这里是最适合你的地方了吧?";
		exit(0);
	}
	f();
}
int max(int a,int b,int c,int d){
	if(a>=b&&a>=c&&a>=d) return a;
	if(b>=a&&b>=c&&b>=d) return b;
	if(c>=a&&c>=b&&c>=d) return c;
	return d;
}
int main(){
	bool flag=0;
	printf(
			"你也许属于格兰芬多,\n"
			"那里有埋藏在心底的勇敢,\n"
			"他们的胆识,气魄和豪爽,\n"
			"使格兰芬多出类拔萃;\n"
			"你也许属于赫奇帕奇,\n"
			"那里的人正直忠诚,\n"
			"赫奇帕奇的学子们坚忍诚实,\n"
			"不畏惧艰辛的劳动,\n"
			"如果你头脑精明,\n"
			"或许会进智慧的老拉文克劳,那些睿智博学的人,\n"
			"总会在那里遇见他们的同道;\n"
			"也许你会进斯莱特林,\n"
			"也许你在这里交上真诚的朋友,\n"
			"但那些狡诈阴险之辈却会不惜一切手段,\n"
			"去达到他们的目的.\n"
			"所以,请告诉我你的名字:\n"
	);
	cin>>name;
	f();
	cout<<name<<"?我知道了.\n给我一点时间,我需要好好思考......\n";
	for(int i=1;i<=5;i++) f();
	system("cls");
	cout<<"(你仿佛听到了自己内心深处的低语......)\n";
	f();
	cout<<"你觉得以下哪个咒语最不可饶恕?\n1.杀戮咒 2.钻心咒 3.夺魂咒 4.都不可饶恕 5.都可以接受\n";
	choose();
	cout<<"如果可以选择,你希望自己出生在:\n1.(感到迷茫,不知道选什么好) 2.混血巫师家庭 3.纯血巫师家庭或黑巫师门第 4.普通人(也就是麻瓜)家庭\n";
	choose();
	cout<<"临行前,你必须带上一样东西,你希望它是什么?\n1.金杯 2.冠冕 3.挂坠盒 4.宝剑\n";
	choose();
	cout<<"你希望你的魔杖是什么材质的?\n1.未知 2.黄岑木 3.山楂木 4.冬青木\n";
	choose();
	cout<<"你渴望:\n1.诚实 2.智慧 3.权力 4.正义\n";
	choose();
	cout<<name<<",你的想法是这样的吗?请给我时间仔细思考......\n那么,我的决定是:\n(大声地)\n";
	int sum=hq+lw+gl+sl;
	Sleep(4000);
	if(max(hq,lw,gl,sl)==hq){
		cout<<"赫奇帕奇!!!\n那里的人正直忠诚,\n赫奇帕奇的学子们坚忍诚实,\n不畏惧艰辛的劳动.\n";
		flag=1;
	}
	if(max(hq,lw,gl,sl)==lw&&flag==0){
		cout<<"拉文克劳!!!\n你头脑精明,\n那些睿智博学的人,\n总会在那里遇见他们的同道.\n";
		flag=1;
	}
	if(max(hq,lw,gl,sl)==gl&&flag==0){
		cout<<"格兰芬多!!!\n那里有埋藏在心底的勇敢,\n他们的胆识,气魄和豪爽,\n使格兰芬多出类拔萃.\n";
		flag=1;
	}
	if(max(hq,lw,gl,sl)==sl&&flag==0){
		cout<<"斯莱特林!!!\n也许你在这里交上真诚的朋友,\n但那些狡诈阴险之辈却会不惜一切手段,\n去达到他们的目的.\n";
	}
	f(),f(),f();
	system("cls");
	cout<<endl<<endl<<endl<<endl;
	cout<<"格兰芬多:"<<gl<<"/"<<sum<<endl<<endl;
	cout<<"斯莱特林:"<<sl<<"/"<<sum<<endl<<endl;
	cout<<"赫奇帕奇:"<<hq<<"/"<<sum<<endl<<endl;
	cout<<"拉文克劳:"<<lw<<"/"<<sum;
	cout<<endl<<endl<<endl<<endl;
	return 0;
}
//1he 2la 3si 4ge

仅供娱乐

反正大概也不会有人看见

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值