Advanced Search
Search Results
205 total results found
第4回 入力処理
🔁 第4回 プレイヤーの入力を繰り返し受け取ろう 問題が作れるようになったので、次はプレイヤーの入力を受け取ります。 HIT&BLOWでは、正解するまで何度も入力します。 入力メッセージを表示 ↓ プレイヤーが入力 ↓ コンピュータが応答 ↓ もう一度入力メッセージへ戻る 1.入力用の配列を用意する char input[255]; ゲームのルールでは4桁だけですが、プレイヤーが必ず4文字だけ入力するとは限りません。 そのため、入力を受け取る段階では少し大きな配...
第5回 入力チェック
✅ 第5回 入力エラーを調べよう 4桁を何度も入力できるようになりました。 しかし、プレイヤーが必ず正しい形式で入力するとは限りません。 12 12345 1b35 abcd 1123 ゲームで使えない入力は、判定処理へ進む前に止める必要があります。 1.今回確認する入力エラー 次の3種類を確認します。 エラー番号 内容 0 エラーなし 1 文字数が4ではない 2 数字以外の文字が含まれている 3 同じ数字が重複している 入力を調べ、エラー番号を返す関数を作ります。 int Ch...
第6回 HITとBLOWカウント
🎯 第6回 HITとBLOWを数えよう 問題作成と入力エラーチェックまで完成しました。 今回は、正解と入力を比較して、HITとBLOWを数えます。 正解:1 2 3 4 入力:1 3 2 5 結果:1 HIT 2 BLOW 1.HITを数える HITは、数字と位置の両方が一致している状態です。 answer[0] と input[0] answer[1] と input[1] answer[2] と input[2] answer[3] と input[3] 同じ添え字同士を比較すればよいため、1本のfo...
第7回 正誤判定とゲーム化
🏆 第7回 正解判定を入れてゲームを完成させよう HITとBLOWを表示できるようになりました。 最後に、入力が正解と一致したらループを終了し、正解メッセージを表示します。 1.文字列は == で比較しない C言語の文字列は、char型の配列です。 次のように書いても、文字列の中身を正しく比較したことにはなりません。 if (answer == input) { /* 正解 */ } 配列名は、配列の先頭位置として扱われるためです。 文字列の中身を比較するには、strcmpを使います。 2.ここでC言...
付録 今回の補足
付録 C言語の仕組みとゲームプログラムの考え方 この付録では、第2回と第3回の途中で出てくる、少し引っかかりやすいC言語の仕組みをまとめます。 ゲームを完成させるために、すべてを暗記する必要はありません。 コードの意味が分からなくなったときに、このページへ戻って確認してください。 第2回で出てくるC言語の仕組み 1.文字と文字列は別のもの C言語では、文字と文字列は別のものです。 char c = '3'; char text[] = "3"; 見た目はどちらも数字の3ですが、メモリの中身は異なります。 ...
第3回 問題を作る処理を作る問題
🎲 第3回 重複しない4桁の問題を作ろう 今回は、コンピュータが出題する4桁の問題を作ります。 条件は、次のとおりです。 使用する数字は0~9 同じ数字を2回使わない 実行するたびに違う並びになる いきなりC言語のコードを書くのではなく、最初に疑似言語で処理の流れを整理してから、C言語へ置き換えていきます。 1.重複しない乱数をどう作るか rand() % 10を4回実行するだけでは、同じ数字が出る可能性があります。 1 5 5 8 このままでは、「同じ数字を2回使わない」という条件を満たせません。 そこで...
付録2 DxLibテンプレート
付録2 DxLibゲームテンプレート このページでは、新しいDxLib用プロジェクトを作成し、保存しておいたプロパティシートを読み込んでから、ゲーム制作の土台となるテンプレートを作ります。 あらかじめ、前の付録で次の2つのプロパティシートを作成しておいてください。 DxLib_Debug.props DxLib_Release.props このテンプレートでは、次の4つの関数を使ってゲームを作ります。 Initialize(); Update(); Draw(); DeltaTime(); Initializ...
第1回 コンソール版から画面付きゲームへ
第1回 コンソール版から画面付きゲームへ この章では、コンソール版で作ったHIT&BLOWを、DxLibを使った画面付きゲームへ作り替えていきます。 今回は、コンソール版と画面付きゲームの違いを確認し、ゲームテンプレートのDraw()へタイトルを表示します。 この回は、付録2で作ったゲームテンプレートのmain.cppから作業を始めます。 このページの進め方 このページでは、読む部分とソースを書き換える部分を分けています。 説明 仕組みを確認する STEP ○ ここでソースを書き換える! m...
第2回 DxLibに移してゆくぅ
第2回 ゲームのルールをDxLibへ移そう 前回は、画面付きゲームで使用するInitialize()、Update()、Draw()とゲームループを確認しました。 今回は、コンソール版HIT&BLOWの処理をDxLib版へ移します。 この回は、第1回終了時点のmain.cppから作業を始めます。 1.今回やること コンソール版の処理は、次の2種類に分けられます。 ゲームのルールを処理する部分 と コンソールで入力・表示する部分 ゲームのルールを処理する関数は、そのままコピーして使います。 ...
第3回 ゲーム画面の作成
第3回 画像を使ってゲーム画面を作ろう 前回は、コンソール版から次の4つの関数を移し、仮入力"1234"のHIT数とBLOW数を画面へ表示しました。 MakeProblem() CheckAnswerError() CountHit() CountBlow() 現在のゲームは、まだ文字だけで表示されています。 今回は、配布した画像を読み込み、次の部分を画像へ変更します。 4桁の入力欄 0~9の数字ボタン 判定ボタン この回は、第2回終了時点のmain.cppから作業を始めます。 このページの進め方 このペ...
第4回 入力用GUIを作る!
第4回 数字ボタンを押して入力しよう 前回は、画像を読み込み、数字ボタンと4桁の入力欄を画面へ並べました。 ただし、前回の数字ボタンは画像を表示しているだけです。 数字ボタンを表示する ↓ クリックしても何も起こらない 今回は、マウスで数字ボタンをクリックし、押した数字をinputへ追加できるようにします。 この回は、第3回終了時点のmain.cppから作業を始めます。 このページの進め方 このページでは、読む部分とソースを書き換える部分を分けています。 説明 仕組みを確認する S...
第5回 HITとBLOW判定の移植
第5回 HITとBLOWを判定しよう 前回は、数字ボタンをクリックして4桁を入力できるようにしました。 現在は、4桁を入力しても判定ボタンが反応しません。 今回は、判定ボタンをクリックしたときに、 入力内容を確認する ↓ HIT数とBLOW数を求める ↓ 結果またはエラーを画面へ表示する ところまで作ります。 この回は、第4回終了時点のmain.cppから作業を始めます。 このページの進め方 このページでは、読む部分とソースを書き換える部分を分けています。 説明 仕組...
第7回 画面遷移(状態遷移)
第7回 タイトル画面とクリア画面を作ろう 前回までのプログラムは、起動するとすぐにゲームが始まりました。 今回は、次の3つの画面を作ります。 タイトル画面 ゲーム画面 クリア画面 現在の画面に応じて、実行するUpdate()とDraw()の処理を切り替えます。 この回は、第6回終了時点のmain.cppから作業を始めます。 このページの進め方 このページでは、読む部分とソースを書き換える部分を分けています。 説明 仕組みを確認する STEP ○ ここでソースを書き換える! main.cpp...
第6回 解答履歴を表示しよう
第6回 解答履歴を表示しよう 前回は、判定ボタンを押すとHIT数とBLOW数を求められるようにしました。 現在は、次の入力を行うと前の結果が見えなくなります。 今回は、正常に判定できた結果を最大60件まで保存し、画面右側へ15件ずつ表示します。 第5回では、判定直後のHIT数とBLOW数を左側へ表示しました。 第6回からは、正常な判定結果を右側の履歴へ残し、判定後は入力欄を空にして次の入力へ進みます。 左側へ前回のHIT数とBLOW数を残さない仕様へ変更します。 この回は、第5回終了時点のmain.cppから作業...
第8回 最後の仕上げ
第8回 HIT&BLOWを完成させよう 前回は、タイトル画面、ゲーム画面、クリア画面を切り替えられるようにしました。 今回は、60回以内に正解できなかった場合のゲームオーバー画面を追加します。 最後にデバッグ表示を隠し、ゲーム全体を通して確認します。 この回は、第7回終了時点のmain.cppから作業を始めます。 このページの進め方 このページでは、読む部分とソースを書き換える部分を分けています。 説明 仕組みを確認する STEP ○ ここでソースを書き換える! main.cppを実際に変更...