サイト内検索

詳細検索

ヘルプ

セーフサーチについて

性的・暴力的に過激な表現が含まれる作品の表示を調整できる機能です。
ご利用当初は「セーフサーチ」が「ON」に設定されており、性的・暴力的に過激な表現が含まれる作品の表示が制限されています。
全ての作品を表示するためには「OFF」にしてご覧ください。
※セーフサーチを「OFF」にすると、アダルト認証ページで「はい」を選択した状態になります。
※セーフサーチを「OFF」から「ON」に戻すと、次ページの表示もしくはページ更新後に認証が入ります。

e-hon連携キャンペーン ~5/31

目次

    目次●小一時間でゲームをつくる──7つの定番ゲームのプログラミングを体験

    本書の概要
    収録タイトル
    C++コンソールアプリの開発環境をセットアップする
    C++プログラムの記述と、本書の読み進め方
    レトロゲーム調の「美咲フォント」を利用する

    第1章:王道RPGの戦闘シーンを作成する──コマンド選択とメッセージ表示によるターン制バトル
    # テキストベースで進行するRPGの戦闘シーン
    # プログラムの基本構造を作成する
    ## プログラムのベース部分を作成する
    ## コンソールの設定
    # キャラクターのステータスを表示する
    ## プレイヤーのステータスを作成する
    ## プレイヤーのステータスを初期化する
    ## プレイヤーのステータスを表示する
    ## モンスターのステータスを作成する
    ## モンスターのステータスを初期化する
    ## モンスターを表示する
    # 戦闘の流れを作成する
    ## 戦闘開始のメッセージを表示する
    ## コマンドのデータを作成する
    ## 各キャラクターに攻撃をさせる
    # コマンド選択インターフェイスを作成する
    ## コマンドを選択する処理を呼び出す
    ## コマンドの一覧を表示する
    ## コマンドを選択するカーソルを追加する
    ### カーソルを描画する
    ### カーソルをキーボード入力で操作する
    ## 選択したコマンドを決定する
    # 戦うコマンドを実装する
    ## 攻撃対象を設定する
    ## 相手に与えるダメージを計算する
    ## 相手にダメージを与える
    ## 敵を倒したときの処理を実装する
    # 魔王降臨!──敵をラスボスに差し替える
    ## ラスボスのデータを追加する
    ## モンスターをラスボスに差し替える
    ## プレイヤーが死んだときのメッセージを表示する
    ## 勇者の能力を書き換えて強くする
    ## 逃げるコマンドを実装する
    # 回復呪文コマンドを実装する
    ## 呪文を発動させてHPを回復させる
    ## 呪文を唱えたらMPを消費する
    ## MPが足りなければ呪文を唱えられないようにする
    # 最終決戦──打倒魔王!

    第2章:ライフゲームを作成する──単純なルールから生成される、複雑な生命シミュレーション
    # ライフゲーム──単純なルールから展開される、複雑な生命シミュレーション
    ## ライフゲームの誕生と発展
    ## ライフゲームのルール
    # プログラムの基本構造を作成する
    ## プログラムのベース部分を作成する
    ## コンソールの設定
    # フィールドを描画する
    ## フィールドのデータを作成する
    ## フィールドを描画する
    # 対象のセルがいくつの生きたセルと隣接しているかを数える
    ## マスごとに隣接するマスの状態をチェックする
    ## フィールドの範囲外の座標を無視する
    ## フィールドが無限にループしているものとする
    ## 隣接する生きたセルの数を数える
    # 世代を進行させる
    ## キーボード入力でシミュレーションを進行させる
    ### シミュレーション処理を呼び出す
    ### 各セルの次の世代での生死判定を行う
    ### シミュレーションの結果を画面に反映させる
    ## シミュレーションを一定時間ごとに自動進行させる
    # 任意のパターンをフィールドの中心に配置する
    ## フィールドを広くする
    ## パターンをフィールドに書き込む関数を作成する
    ## パターンをフィールドに書き込む関数をテストする
    # パターンの例
    ## 固定物体
    ## 振動子
    ### 固定物体(周期2)
    ### パルサー(周期3)
    ### 八角形(周期5)
    ### 銀河(周期8)
    ### ペンタデカスロン(周期15)
    ## 長寿型
    ### R-ペントミノ
    ### ダイ・ハード
    ### どんぐり
    ## 移動物体
    ### グライダー
    ### 軽量級宇宙船
    ### 中量級宇宙船
    ### 重量級宇宙船
    ## 繁殖型
    ### グライダー銃
    ### 小さいパターン
    ### シュシュポッポ列車
    ### マックス
    ### 直線から神秘的な模様
    ### 十字から神秘的な模様

    第3章:リバーシを作成する──マス目単位のデータ処理とAIの実装
    # 2人対戦ボードゲームの定番「リバーシ」
    # プログラムの基本構造を作成する
    ## プログラムのベース部分を作成する
    ## コンソールの設定
    # 盤面を描画する
    ## 盤面を初期化する
    ## 盤面を描画する
    ## 盤面の初期配置を設定する
    # キーボード入力でマスを選択できるようにする
    ## カーソルを描画する
    ## カーソルをキーボード入力で操作する
    ## カーソルの位置を初期化する
    # キーボード入力で石を置く
    ## 現在のターンを表示する
    ## カーソルの座標に石を置く
    ## 石を置いたらターンを切り替える
    # 石を置けるかどうかの判定を行う
    ## 石を置けなかった場合の処理を実装する
    ## すでに石が置かれているマスには置けないようにする
    ## 指定したマスに石を置けるかどうかを判定する
    # 挟んだ相手の石をひっくり返す
    ## 石をひっくり返す処理を追加する
    ## 石をひっくり返す
    # どこにも石を置けない場合はパスする
    ## 石を置ける場所があるかどうか判定する関数を作成する
    ## どこにも石を置けなければパスする
    # 勝敗の結果を表示する
    ## 結果の表示へ遷移する
    ## 勝敗を判定して結果を表示する
    ## ゲームが終了したら初期化する
    # ゲームモードの選択画面を作成する
    ## ゲームモードの選択処理に遷移する
    ## ゲームモードを一覧表示する
    ## ゲームモードをキーボード入力で選択する
    ### カーソルを表示する
    ### キーボード入力で選択を切り替える
    ## 選択を決定してモード選択画面を抜ける
    ## モードごとにAIの担当を設定する
    # 石を置くマスを自動で判断するAIを実装する
    ## AIの処理に遷移する
    ## 置けるマスのリストを作成する
    ## 置ける場所の中からランダムで置く
    ## AIのターンではカーソルを消す
    # AIどうしの対戦による観戦モードを追加する

    第4章:落ち物パズルゲームを作成する──落ちてくるブロックをそろえて消すリアルタイムパズル
    # パズルゲームの定番、落ち物パズル
    # プログラムの基本構造を作成する
    ## プログラムのベース部分を作成する
    ## コンソールの設定
    # フィールドを作成する
    ## ゲームを初期化する関数を追加する
    ## 画面を描画する関数を追加する
    ## フィールドのデータを作成する
    ## フィールドを描画する
    # 落下ブロックを追加する
    ## 落下ブロックの種類を定義する
    ## 落下ブロックの形状を定義する
    ## 落下ブロックのデータを作成する
    ## 落下ブロックを初期化する
    ## 落下ブロックを描画する
    # 落下ブロックをキーボードで操作する
    ## キーボード入力をする
    ## 落下ブロックを移動させる
    ## 落下ブロックを回転させる
    # ブロックをリアルタイムに落下させる
    ## ゲームをリアルタイムに進行させる
    ## ブロックを落下させる
    # 落下ブロックとフィールド上のブロックとの当たり判定を行う
    ## 落下ブロックとフィールドの当たり判定の関数を作成する
    ## 落下ブロックとフィールドの当たり判定を行う
    ### 落下ブロックをキーボード入力で操作するときの当たり判定
    ### 落下ブロックが自動落下するときのフィールドとの当たり判定
    # 落下ブロックをフィールドに積み上げる
    ## 新しい落下ブロックを発生させる
    ## ブロックが天井まで積み上がったらゲームオーバーにする
    # 横にそろった行のブロックを消す
    ## そろった行のブロックを消す関数を作成する
    ## ブロックが横にそろったかどうかを判定する
    ## そろった1行を削除する
    ## 消した行の上のブロックを下に1マスずらす

    第5章:ドットイートゲームを作成する──リアルタイムアクションと4種のAI
    # ビデオゲーム黎明期に大ヒットした「ドットイート」
    # プログラムの基本構造を作成する
    ## プログラムのベース部分を作成する
    ## コンソールの設定
    # 迷路を作成する
    ## 迷路のデータを作成する
    ## 迷路を初期化する
    ## 迷路を描画する
    # プレイヤーを作成する
    ## プレイヤーのデータを作成する
    ## プレイヤーを描画する
    ## プレイヤーの初期座標を設定する
    ## プレイヤーを操作する
    ## プレイヤーと壁の当たり判定を行う
    ## プレイヤーを上下左右にループ移動させる
    ## プレイヤーがドットを食べるようにする
    # 気まぐれモンスターを作成する
    ## 気まぐれモンスターのデータを作成する
    ## 気まぐれモンスターを描画する
    ## 一定時間ごとに実行される、リアルタイム処理を実装する
    ## モンスターの種類によって、AIの処理を分岐させる
    ## 気まぐれモンスターの移動先を取得する
    ## 気まぐれモンスターを動かす
    ## 気まぐれモンスターが壁を通り抜けないようにする
    ## 気まぐれモンスターが後戻りしないようにする
    # 追いかけモンスターを作成する
    ## 追いかけモンスターのデータを追加する
    ## 追いかけモンスターを描画する
    ## 経路探索アルゴリズムの解説
    ## 2点間の最短経路を探索する処理を作成する
    ### 探索開始地点から各マスへの最短距離を取得する
    ### 探索者のマスから、各マスへの最短経路を取得する
    ## 追いかけモンスターを動かす
    ## 追いかけモンスターが壁を通り抜けないようにする
    ## 追いかけモンスターが後戻りしないようにする
    # 先回りモンスターを作成する
    ## 先回りモンスターのデータを追加する
    ## 先回りモンスターを描画する
    ## 先回りモンスターの移動先を取得する
    ### プレイヤーの向きを取得する
    ### プレイヤーの3マス先の座標を取得する
    ## 先回りモンスターを動かす
    # 挟み撃ちモンスターを作成する
    ## 挟み撃ちモンスターのデータを追加する
    ## 挟み撃ちモンスターを描画する
    ## 挟み撃ちモンスターを動かす
    # ゲームオーバーの処理を作成する
    ## プレイヤーとモンスターが重なったかどうかを判定する処理を作成する
    ## ゲームオーバーになったらゲームをリセットする
    ## モンスターがプレイヤーに突っ込んできた場合もゲームオーバーにする
    ## ゲームオーバーのメッセージを画面中央に表示する
    # エンディングの処理を作成する
    ## ドットをすべて食べ尽くしたかどうかを判定する処理を作成する
    ## エンディング画面を作成する
    ## ゲームをクリアしたらエンディング画面を表示する

    第6章:擬似3Dダンジョンゲームを作成する──アスキーアートによる擬似3D描画のギミック
    # ビデオゲーム黎明期のRPGのスタンダード、擬似3Dダンジョン
    ## コンピュータRPGの原点『ウィザードリィ』の誕生
    ## 『ウィザードリィ』の国内への影響
    ## 疑似3D視点のギミックに迫る
    # プログラムの基本構造を作成する
    ## プログラムのベース部分を作成する
    ## コンソールの設定
    # デバッグ用のマップを描画する
    ## 迷路のデータを作成する
    ## 迷路のマップを描画する
    # 迷路をランダムで生成する
    ## 迷路を生成するアルゴリズム
    ## 迷路をランダムで作成する処理を呼び出す
    ## 迷路のすべてのマスを壁で塞ぐ
    ## 壁を掘る関数を作成する
    ## 壁を掘ってよいかどうかを判定する
    ## 最初の通路を生成する
    ## 掘るべき壁をすべて掘り尽くす
    # 迷路を移動できるようにする
    ## マップにプレイヤーを表示する
    ## キーボード入力でプレイヤーを操作する
    ### 方向転換する
    ### 進行方向に前進する
    # 迷路を擬似3D描画する
    ## 擬似3D描画用のデータを作成する
    ### 迷路のアスキーアートを作成する
    ### アスキーアート参照用のテーブルを作成する
    ### 視界内の相対座標のテーブルを作成する
    ## 迷路を擬似3D視点で描画する処理を呼び出す
    ## 描画用のアスキーアートを合成する
    ## 迷路を描画する
    # クエストを追加する
    ## プレイヤーがゴールに到達したかどうかを判定する
    ## エンディングのメッセージを表示する

    第7章:戦国シミュレーションゲームを作成する──秀吉も仰天! 一夜で戦国シミュレーション
    # 「進軍」コマンドしかない、シンプルな戦国シミュレーションゲーム
    # 本章の戦国シミュレーションゲームの時代背景
    ## 年代設定
    ## 戦国大名列伝
    ### 織田信長
    ### 武田信玄
    ### 上杉謙信
    ### 徳川家康
    ### 北条氏政
    ### 足利義昭
    ### 毛利元就
    ### 伊達輝宗
    ### 島津義久
    ### 長宗我部元親
    # プログラムの基本構造を作成する
    ## プログラムのベース部分を作成する
    ## コンソールの設定
    # 地図を描画する
    ## 大名のデータを作成する
    ## 城のデータを作成する
    ## 年のデータを作成する
    ## 地図を描画する処理を呼び出す
    ### 地図を描画する
    # 各城の行動ループを作成する
    ## 行動順をランダムにする
    ## 各城にターンを回していく
    ### ターンの順を描画する
    ### 各ターンの共通メッセージを表示する
    # プレイヤーの大名を選択できるようにする
    ## プレイヤーの大名の選択フェイズに移行する
    ## プレイヤーが担当する大名を選択する
    # 進軍コマンドを作成する
    ## 城どうしの接続データを作成する
    ## 進軍先の城をキーボード入力する
    ## 進軍兵数をキーボード入力する
    # 攻城戦を作成する
    ## 攻城戦を発生させる
    ## 最初のメッセージを表示する
    ## 攻城戦の戦闘を実装する
    ## 攻城戦の戦闘を終了する
    ## 攻城戦の結果を表示し、戦後処理をする
    ### 攻撃側が勝ったときの処理を実装する
    ### 守備側が勝ったときの処理を実装する
    # 敵の大名のAIを実装する
    ## 隣接した敵の城のリストを作成する
    ## 一番弱い敵の城に攻め込む処理を作成する
    ## 味方の前線の城に兵を送るAIを実装する
    ### 敵と隣接する味方の城のリストを作成する
    ### 兵を送る先の城を決定する
    ### 送る兵数を決定する
    ### 兵を味方の城に送る
    # イベントを追加する
    ## 1年経過したときに兵数を変動させる
    ## プレイヤーの大名家が滅亡したときの処理を作成する
    ## ゲーム終了時に年表を表示する
    ## ゲームオーバーで年表を表示する
    ## ゲームが終了したらゲームをリセットする
    ## プレイヤーが天下統一したときの処理を作成する
    ## 歴史イベント「本能寺の変」を追加する
    ### 明智光秀
    ### 豊臣秀吉

    Appendix 1:戦国シミュレーションゲームを三国志に改造する──データの書き換えで、戦国を三国に!
    # 戦国シミュレーションゲームのデータを書き換えて、三国志のゲームに改造する
    ## そもそも『三国志』とは何か──四大奇書の一つ『三国志演義』
    ## 三国志武将列伝
    ## このAppendixの三国志のシナリオ
    # ゲームデータを書き換える
    ## コンソールの設定
    ## 君主のデータを書き換える
    ## 州のデータを書き換える
    ## サンプルの地図を描画する
    ## 文字化けを修正する
    ## 正式な地図を描画する
    ## 州の接続情報を書き換える
    # 戦国時代固有の設定を三国志向けに変更する
    ## 兵数の単位を変更する
    ## メッセージを修正する

    Appendix 2:王道RPG 完全版──戦闘シーンにフィールドシーンを追加して、完全なRPGに仕上げよう!
    # 王道RPGの世界を完全再現したい!──第1章の戦闘シーンを拡張して、完全なRPGにしよう
    # プログラムの基本構造を作成する
    ## 第1章のプログラムを拡張する
    ## コンソールの設定
    # フィールドを追加する
    ## フィールドのデータを作成する
    ## フィールドを描画する
    # マップ上にプレイヤーを追加する
    ## マップ上にプレイヤーを描画する
    ## プレイヤーをキーボード入力で操作する
    ## プレイヤーが侵入不可のマスに移動できないようにする
    ## プレイヤーの移動に合わせて画面をスクロールする
    # 王様の城を実装する
    ## 王様の城のデータを追加する
    ## プレイヤーの初期位置を設定する
    ## 王様の城を描画する
    ## 王様の城からフィールドに出る
    ## フィールドから王様の城に入る
    ## 人物との会話イベントを実装する
    ### 王様との会話イベントを実装する
    ### 姫との会話イベントを実装する
    # 魔王の城を実装する
    ## 魔王の城のデータを追加する
    ## 魔王の城に入れるようにする
    ## 魔王の城を描画する
    ## 魔王の城からフィールドに出る
    ## 魔王との会話イベントを実装する
    # 戦闘を発生させる
    ## フィールドで雑魚モンスターと遭遇する
    ## 姫にステータスを回復してもらう
    ## 魔王との戦闘を発生させる
    ## プレイヤーが死んだら王様のところに戻される
    # エンディングを実装する

    索引
    著者紹介

攻略本・ファンブック ランキング

攻略本・ファンブックのランキングをご紹介します攻略本・ファンブック ランキング一覧を見る
×

hontoからおトクな情報をお届けします!

割引きクーポンや人気の特集ページ、ほしい本の値下げ情報などをプッシュ通知でいち早くお届けします。