記事ディレクトリ
序文
これは大学の C 言語プログラミングコースで設計した最初のプロジェクト ((●'◡'●)) ですが、今でもとてもうれしいです (笑)。このプロジェクトの作成は難しくなく、コードの量もそれほど多くありませんが、十分なスキルがあれば、どんな単純なものでも複雑にすることができます。
1. ゲームルール
マインドリーディングとは、その名前が示すように、あなたの心に何があるかを知ることができることを意味します。もちろん、これはそれほど魔法のようなものではありません。手放すことを考えていることをどうやって知ることができますか? ここでの心の読み取りは、単に私たちがだまされたということです。
具体的なルール: 0 から 7 までの数字を選択し、心の中で瞑想します。選択後、3 つの質問に答える必要があります。それぞれの答えに 1 または 0 を入力します。他の数字や文字を入力すると、再入力を求められます。 3つの質問に答えた後、頭の中で番号がわかり、オリジナルに基づいてユーザーログインシステムを追加しました。つまり、正しい口座番号とパスワードを入力するだけでログインできます。アカウント番号は正しく入力されていますが、パスワードが間違っている場合は、アカウント番号も再入力する必要があります。アカウントパスワードの入力を合計3回間違えるとアカウントに入力できなくなり、次回ゲームを起動するときに再入力する必要があります。
2. 原則
実は読心術の本質は基数変換の問題で、まず0から7までの8つの数字を10進数から2進数に変換しますが、一番大きな数字の7の2進数は111なので、2進数は3桁で十分です。足りない場合は0を記入してください。0:000、1:001、2:010、3:011、4:100、5:101、6:110、7:111。次に、これら 8 つの数値の 2 進数の下位ビットから上位ビットまでを調べて、どの数値が 1 と同じビットを持つかを確認します。つまり、最初の質問は 1、3、5、7、2 番目の質問は 3、5 になります。 、6、7、3問目は4、5、6、7です。そうすれば、質問に対する答えの 1 か 0 に基づいて、あなたの頭の中にある数字がわかります。つまり、この数字は私たちが計算したものです。
3. コード
#include <bits/stdc++.h>
using namespace std;
int main()
{
int num[3][4] = {
{
1, 3, 5, 7}, {
2, 3, 6, 7}, {
4, 5, 6, 7}};
int sum=0,t=1;
printf("\t\t\t\t\t\t欢迎来到读心术游戏\t\n");
string s="jiruan6ban";
int password = 123456789;
for(int i=1;i<=3;i++)
{
cout<<"请输入您的用户名:"<<endl;
string username;
cin>>username;
int password1;
if(username==s)
{
cout<<"用户名正确,请输入密码:"<<endl;
cin>>password1;
if(password1==password)
{
cout<<"密码正确!登入成功!"<<endl<<endl;
cout<<"接下来将进行读心术的游戏了哦!"<<endl;
cout << "请从下面的数字(0~7)中选择一个默念在心中" << endl;
cout << "0、1、2、3、4、5、6、7"<<endl;
cout<<"心里有数了叭!接下来我只需要询问您三个问题就能知道您想的那个数是什么,怎么? 不信吗?那么咋们走着瞧吧哈哈"<<endl<<endl;
for(int i=0;i<=2;i++)
{
printf("第%d个问题~下面的数字是否有你所想的:",i+1);
for(int j=0;j<=3;j++)
{
cout<<num[i][j]<<" ";
}
char a ;
cout<<"请输入1(有) 或 0(没有)"<<endl;
while(1)
{
cin>>a;
if(a!='0'&&a!='1')
{
printf("输入非法,请重新输入:\n");
continue;
}
else
break;
}
if(a =='1')
{
sum+=t;
t*=2;
}
else
t*=2;
}
printf("见证奇迹的时刻到啦!你心里想的那个数字是 %d 吧嘿嘿\n",sum);
return 0;
}
else
{
cout<<"密码错误!"<<endl;
continue;
}
}
else
{
cout<<"用户名错误!"<<endl;
continue;
}
}
cout<<"抱歉!您已输入错误三次,无法再次进行输入,为确保账号的安全,请在下次打开时进行尝试!"<<endl;
}
コードテスト:
私が思っていたのは確かに 7、くそー、予想通りでした。私の言うことが信じられないなら、試してみてください!
要約する
一般に、読心プロジェクトであろうと他のプロジェクトであろうと、ルールがあります。ルールはユーザー指向であり、ユーザーが操作方法を理解するのに役立ちます。プロジェクトの原則により、コードを通じて実装する必要があります。コード自体は私たちが作成したものであるため、その原理は、コンピューターが理解して実行できるように、私たちがよく知っていることをコードに記述することと同じです。拡張とは、ゲームのプレイアビリティを向上させるために、オリジナルのベースに他の機能を追加することです。プログラム全体のフローチャートを描くと、このプロジェクトの枠組みが明確にわかるので、プログラムの特定の部分でバグが発生した場合でも、フローチャートに従って問題のある箇所を素早く見つけ、適切な対処を行うことができます。薬。コードを分析するプロセスにより、フレームワークの考え方が改善され、プロジェクトをより深く理解できるようになります。