ゲームを作っていくぅ

まずいつもの通り、projectを作ります。
今回はコンソールアプリなので、visual studioでもいいし、replit.comでもpaiza.ioでもできます。
(もう何も見ないでproject作れない人とかいないよね。。。)

今回のルール

これを踏まえて、ゲームを組み立てていきましょう。

入力方法を考える

みんな4桁の整数入力しろって言われたらコンソールプログラムではどう書くかな?

#include <stdio.h>
 
int main() {
    int number;
 
    printf("4桁の整数を入力してください: ");
    scanf("%d", &number);
 
    printf("入力された数は: %d\n", number);
 
    return 0;
}

多分だけど、こう書くんじゃないかな。。。
じゃぁ、問題です、「このプログラムを、Hit&Blowゲームの入力にしたいと思ったときに、どんな問題があるでしょうか?」
こういうのって割と初期の設計段階で大事です!

  1. 入力を「4桁」に限定できていない(4桁より多い、4桁未満でエラーが出ない)
  2. 0から始まる4桁の数字を扱うことができない

などがあります。(以下実行結果参照)

Fig. 1: 実行結果

さてどうしましょうか?
これは、長い文章や、数字、文字交じりの入力を処理するときによく行う方法ですが、一度文字列として入力を受け取ってしまいます。
そして、そのあとで入力文字列を解析して、必要な部分ごとにデータとして変数に入力していく方法です。

#define _CRT_SECURE_NO_WARNINGS
#include <cstdio>
#include <cstring>
 
int main()
{
	char str[255] = "";/* 長かった時のために多くメモリを用意 */
 
	printf("4桁の整数を入力してください: ");
	scanf("%s", str);
 
	if (strlen(str) == 4) {
		printf("入力された数は: %s\n", str);
	}
	else {
		printf("4桁の整数ではありません。\n");
	}
 
	return 0;
}
Fig. 2: 実行結果

後はこれを一桁ずつに分解して、整数でもいいし文字のままでもいいので

をつかって、正解として作り出した文字列と比べて

として判断していけばいい気がする!

結論!

入力するのは数字のデータだけど、エラー処理や比較などいろいろやりやすいので、文字データを使っていく!