众所周知
分院帽是著名小说《哈利·波特》中描述的一个魔法物品。分院仪式(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
仅供娱乐
反正大概也不会有人看见