自分でいろいろ試してみて、ランダムな数を取得することができ、喜んでいたのもつかの間
いろいろ作り始めたら問題が起きました
まだランダムに数を作成し、作成された数のキーを押したら「正解!」
違うキーだと「不正解!」とでる。
そして、数字以外のキーが押されたら「文字を入力してください!」とでる。
っていう程度までしかできてません
自分では最善を尽くしてみたのですが
どうもうまく行きません
正解のキーを押したらメインループから出て、ゲーム終了
違うキーを押したら繰り返しでもう一度 ←これはただ不正解という文字を書いて終わりで大丈夫です
ということにしたいのですが
不正解と表示する時count3という変数を作り、ループするたびにcount3をインクリメントしていき
不正解、という文字を下に書いていきたいのですが、そもそも一度も表示されてくれません
他にもアルファベットを入力したら 「数字を入力してください!」というのを表示させたいのですが
それもできません。
Q1
正解の数ではない数字をおした(つまり不正解のキー)時、不正解という文字の表示を繰り返した分だけ表示させたいのですがどうすればいいでしょうか?
Q2
数字以外のキーを押された時、「数字を入力してください!」と表示させたいのですが、どこにどういう処理をかけばいいでしょうか?
&&は||に読み替えてください! ANDじゃなくてORです!
#include "DxLib.h"
#include "stdio.h"
int Green = GetColor(0, 255, 0);
int count = 1;
int count2 = 1;
int target2;
char ans;
int check = 1;
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
// DXライブラリ初期化
if (DxLib_Init() == -1) return 0;
ChangeWindowMode(TRUE);
char KeyBuf[256];
target2 = GetRand(10);
int count3 = 1;
DrawFormatString(0, 48, Green, "今回生成された数%dはです", target2);
while (TRUE) {/*メインループ*/
do
{/*判定While*/
ProcessMessage();
count2++;
if (CheckHitKey(KEY_INPUT_ESCAPE))
{
break;
};
DrawFormatString(0, 176, Green, "文字を入力してください\n");
GetHitKeyStateAll(KeyBuf);
if (KeyBuf[KEY_INPUT_1] == 1)
{
ans = 1;
break;
}
else if (KeyBuf[KEY_INPUT_2] == 1)
{
ans = 2;
break;
}
else if (KeyBuf[KEY_INPUT_3] == 1)
{
ans = 3;
break;
}
else if (KeyBuf[KEY_INPUT_4] == 1)
{
ans = 4;
break;
}
else if (KeyBuf[KEY_INPUT_5] == 1)
{
ans = 5;
break;
}
else if (KeyBuf[KEY_INPUT_6] == 1)
{
ans = 6;
break;
}
else if (KeyBuf[KEY_INPUT_7] == 1)
{
ans = 7;
break;
}
else if (KeyBuf[KEY_INPUT_8] == 1)
{
ans = 8;
break;
}
else if (KeyBuf[KEY_INPUT_9] == 1)
{
ans = 9;
break;
}
else if
(KeyBuf[KEY_INPUT_A] == 1 &&
KeyBuf[KEY_INPUT_B] == 1 &&
KeyBuf[KEY_INPUT_C] == 1 &&
KeyBuf[KEY_INPUT_D] == 1 &&
KeyBuf[KEY_INPUT_E] == 1 &&
KeyBuf[KEY_INPUT_F] == 1 &&
KeyBuf[KEY_INPUT_G] == 1 &&
KeyBuf[KEY_INPUT_H] == 1 &&
KeyBuf[KEY_INPUT_I] == 1 &&
KeyBuf[KEY_INPUT_J] == 1 &&
KeyBuf[KEY_INPUT_K] == 1 &&
KeyBuf[KEY_INPUT_L] == 1 &&
KeyBuf[KEY_INPUT_M] == 1 &&
KeyBuf[KEY_INPUT_N] == 1 &&
KeyBuf[KEY_INPUT_O] == 1 &&
KeyBuf[KEY_INPUT_P] == 1 &&
KeyBuf[KEY_INPUT_Q] == 1 &&
KeyBuf[KEY_INPUT_R] == 1 &&
KeyBuf[KEY_INPUT_S] == 1 &&
KeyBuf[KEY_INPUT_T] == 1 &&
KeyBuf[KEY_INPUT_U] == 1 &&
KeyBuf[KEY_INPUT_V] == 1 &&
KeyBuf[KEY_INPUT_W] == 1 &&
KeyBuf[KEY_INPUT_X] == 1 &&
KeyBuf[KEY_INPUT_Y] == 1 &&
KeyBuf[KEY_INPUT_Z] == 1)
{
DrawFormatString(0, 160 + 16, Green, "数字を入力してください!");
break;
}
} while (target2 != ans);
if (ans == target2)
{
DrawFormatString(0, 144 + 16 * 3, Green, "正解です!");
break;
}
else
{
DrawFormatString(0, 144 + 48 * count3, Green, "不正解!");
count3++;
}
};/*メインループ*/
WaitKey();
// DXライブラリの使用終了
DxLib_End();
return 0;
}