You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Web-Dev-For-Beginners/translations/ja/6-space-game/6-end-condition/assignment.md

10 KiB

サンプルゲームを作成しよう

課題概要

スペースゲームでゲーム終了条件や再スタート機能を習得した今、これらの概念をまったく新しいゲーム体験に応用する時が来ました。異なる終了条件パターンや再スタートの仕組みを示す独自のゲームを設計・構築してください。

この課題では、ゲームデザインについて創造的に考えながら、学んだ技術的スキルを実践することが求められます。さまざまな勝利や敗北のシナリオを探求し、プレイヤーの進行を実装し、魅力的な再スタート体験を作り出します。

プロジェクト要件

コアゲーム機能

あなたのゲームには以下の必須要素を含める必要があります:

終了条件のバリエーション: ゲームが終了する少なくとも2つの方法を実装してください

  • ポイントベースの勝利: プレイヤーが目標スコアに到達する、または特定のアイテムを収集する
  • ライフベースの敗北: プレイヤーがすべてのライフまたは体力を失う
  • 目標達成: 敵をすべて倒す、特定のアイテムを収集する、または目標を達成する
  • 時間制限: 一定時間が経過する、またはカウントダウンがゼロになる

再スタート機能:

  • ゲーム状態のクリア: 以前のゲームオブジェクトをすべて削除し、変数をリセットする
  • システムの再初期化: 新しいプレイヤーステータス、敵、目標で再スタートする
  • ユーザーフレンドリーな操作: ゲーム再スタートの明確な指示を提供する

プレイヤーへのフィードバック:

  • 勝利メッセージ: プレイヤーの達成を祝うポジティブなフィードバックを提供する
  • 敗北メッセージ: 再挑戦を促す励ましのメッセージを提供する
  • 進行状況の表示: 現在のスコア、ライフ、または目標の状態を表示する

ゲームアイデアとインスピレーション

以下のゲームコンセプトから選ぶか、独自のアイデアを作成してください:

1. コンソールアドベンチャーゲーム

戦闘メカニクスを備えたテキストベースのアドベンチャーを作成:

Hero> Strikes with broadsword - orc takes 3p damage
Orc> Hits with club - hero takes 2p damage  
Hero> Kicks - orc takes 1p damage
Game> Orc is defeated - Hero collects 2 coins
Game> ****No more monsters, you have conquered the evil fortress****

実装すべき主な機能:

  • ターン制戦闘で異なる攻撃オプションを提供
  • プレイヤーと敵の体力ポイント
  • コインやアイテムを収集するインベントリシステム
  • 難易度が異なる複数の敵タイプ
  • 敵をすべて倒したときの勝利条件

2. コレクションゲーム

  • 目標: 障害物を避けながら特定のアイテムを収集する
  • 終了条件: 目標の収集数に到達する、またはすべてのライフを失う
  • 進行: ゲームが進むにつれてアイテムが収集しにくくなる

3. パズルゲーム

  • 目標: 難易度が徐々に上がるパズルを解く
  • 終了条件: すべてのレベルをクリアする、または移動数/時間が尽きる
  • 再スタート: 進行状況をクリアして最初のレベルにリセット

4. 防衛ゲーム

  • 目標: 敵の波から基地を守る
  • 終了条件: すべての波を生き延びる(勝利)または基地が破壊される(敗北)
  • 進行: 敵の波が難易度と数を増加させる

実装ガイドライン

始め方

  1. ゲームデザインを計画する:

    • 基本的なゲームプレイループをスケッチする
    • 終了条件を明確に定義する
    • 再スタート時にリセットする必要があるデータを特定する
  2. プロジェクト構造を設定する:

    my-game/
    ├── index.html
    ├── style.css
    ├── game.js
    └── README.md
    
  3. コアゲームループを作成する:

    • ゲーム状態を初期化する
    • ユーザー入力を処理する
    • ゲームロジックを更新する
    • 終了条件を確認する
    • 現在の状態を描画する

技術要件

モダンJavaScriptを使用する:

  • 変数宣言にconstletを適用する
  • 適切な場所でアロー関数を使用する
  • テンプレートリテラルや分割代入などのES6+機能を実装する

イベント駆動型アーキテクチャ:

  • ユーザー操作のイベントハンドラーを作成する
  • イベントを通じてゲーム状態の変更を実装する
  • 再スタート機能のためのイベントリスナーを使用する

クリーンコードの実践:

  • 単一の責任を持つ関数を書く
  • 説明的な変数名や関数名を使用する
  • ゲームロジックやルールを説明するコメントを追加する
  • コードを論理的なセクションに整理する

提出要件

提出物

  1. 完成したゲームファイル: ゲームを実行するために必要なすべてのHTML、CSS、JavaScriptファイル
  2. README.md: 以下を説明するドキュメント:
    • ゲームの遊び方
    • 実装した終了条件
    • 再スタートの手順
    • 特別な機能やメカニクス
  3. コードコメント: ゲームロジックやアルゴリズムの明確な説明

テストチェックリスト

提出前に、以下を確認してください:

  • ブラウザコンソールでエラーなく実行できる
  • 指定された通りに複数の終了条件を実装している
  • クリーンな状態で再スタートできる
  • ゲーム状態についてプレイヤーに明確なフィードバックを提供している
  • モダンJavaScriptの構文とベストプラクティスを使用している
  • README.mdに包括的なドキュメントを含んでいる

評価基準

評価基準 優秀 (4) 良好 (3) 発展途上 (2) 初歩的 (1)
ゲーム機能 複数の終了条件、スムーズな再スタート、洗練されたゲームプレイ体験を備えた完全なゲーム 基本的な終了条件と機能的な再スタートメカニズムを備えた完全なゲーム 一部の終了条件が実装され、再スタートに軽微な問題がある部分的なゲーム 限られた機能と重大なバグを持つ未完成のゲーム
コード品質 モダンJavaScriptの実践を使用したクリーンで整理されたコード、包括的なコメント、優れた構造 モダンな構文を使用した良好なコード構成、適切なコメント、明確な構造 一部モダンな実践を使用した基本的なコード構成、最小限のコメント 古い構文を使用した不十分なコード構成、コメントや構造が欠如
ユーザー体験 明確な指示、優れたフィードバック、魅力的な終了/再スタート体験を備えた直感的なゲームプレイ 適切な指示とフィードバックを備えた良好なゲームプレイ、機能的な終了/再スタート 最小限の指示とフィードバックを備えた基本的なゲームプレイ 不明瞭な指示と不十分なユーザーフィードバックを備えた混乱したゲームプレイ
技術的実装 ゲーム開発の概念、イベント処理、状態管理の習得を示す ゲーム概念の確固たる理解と良好な実装を示す 基本的な理解と許容可能な実装を示す 限られた理解と不十分な実装を示す
ドキュメント 明確な指示、十分に文書化されたコード、徹底的なテスト証拠を備えた包括的なREADME 明確な指示と適切なコードコメントを備えた良好なドキュメント 最小限の指示を備えた基本的なドキュメント 不十分または欠如したドキュメント

評価スケール

  • 優秀 (16-20点): 創造的な機能と洗練された実装で期待を超える
  • 良好 (12-15点): すべての要件を満たし、堅実な実行を示す
  • 発展途上 (8-11点): ほとんどの要件を満たし、軽微な問題がある
  • 初歩的 (4-7点): 一部の要件を満たしているが、大幅な改善が必要

追加学習リソース

💡 プロのヒント: シンプルに始めて、徐々に機能を追加してください。バグのある複雑なゲームよりも、洗練されたシンプルなゲームの方が良いです!


免責事項:
この文書はAI翻訳サービスCo-op Translatorを使用して翻訳されています。正確性を追求しておりますが、自動翻訳には誤りや不正確な部分が含まれる可能性があります。元の言語で記載された文書を正式な情報源としてお考えください。重要な情報については、専門の人間による翻訳を推奨します。この翻訳の使用に起因する誤解や誤解について、当社は責任を負いません。