top of page
執筆者の写真ICP Japan

【初級者から!】ICP スマート コントラクト開発のための道場

詳細はこちら👉


簡単なオンチェーンゲームを構築する


プレイヤーがランダムに生成された障害物を飛び越えて飛行する忍者を操作する、独自の 2D 横スクロール ゲームを作成します。ゲームのリーダーボードにハイスコアを記録します。


フライングニンジャとは何ですか?

Flying Ninja は、2D 横スクロール ゲームです。プレイヤーはキーボードのスペースバーを使用して、空飛ぶ忍者のキャラクターを上下に動かし、操作します。目標は、障害物を回避し、回避した障害物ごとにポイントを獲得することです。ゲームが終了すると、ユーザーはスコアをリーダーボードに追加できます。


ゲームのロジックは、ICP キャニスター スマート コントラクトの開発専用に設計されたプログラミング言語であるMotokoで記述されています。Motoko は、JavaScript、Rust、Swift、Java などの他の言語に馴染みのある構文を使用する、ICP スマート コントラクト用のシンプルで便利な言語を目指しています。


すべての ICP スマート コントラクトは、デプロイする前にWebAssembly にコンパイルする必要があります。Motoko のコンパイラは、内部で直接 Wasm へのコンパイルをサポートしています。ICP 機能のシームレスな統合を提供し、WebAssembly の機能を最大限に活用します。


プロジェクト構造 

フォルダー/backendには、Motoko スマート コントラクトが含まれていますmain.mo

この/frontendフォルダーには、アプリケーションのユーザー インターフェイス用の Web アセットが含まれています。ユーザー インターフェイスは、React フレームワークを使用して記述されています。


学ぶ内容


オンチェーンのランダム性

ICP は検証可能なランダム関数を使用して、オンチェーンでランダム性を生成します。各実行ラウンドでは、現在のラウンドの番号を関数の入力として使用して、検証可能なランダム関数が評価されます。

各評価では、ランダム バイトの新しいセットが生成され、これがランダム テープのシードになります。ランダム テープ機能は、ICP のチェーン キー暗号化を使用して、前回の実行ラウンドでランダム性を要求した各キャニスターにランダム値を返します。

Motoko スマート コントラクトでランダム性を使用するには、Motoko Randomライブラリを使用できます。


オンチェーンフロントエンド 

ICP は、ブロックチェーンから Web アセット (HTML、CSS、JS など) を Web ブラウザーに提供できる唯一のブロックチェーンです。これらのアセットをホストするために、キャニスター スマート コントラクトは、HTTP 要求を受け入れて消費し、HTTP 応答で Web アセットを返すメソッドを実装します。

この例では、React フロントエンドがアセット キャニスター スマート コントラクトにコンパイルされ、ICP にデプロイされます。

バックエンドのスマート コントラクトと通信するには、ICP JavaScript エージェントを使用します。


地元で建設を続ける

ICP Ninja プロジェクトを Web ブラウザーから移行してローカルで開発するには、次の手順に従います。


1. 「ファイルのダウンロード」ボタンを使用して、ICP Ninja からプロジェクトをダウンロードします。


2.BUILD.md詳細な手順についてはファイルを開いてください。

BUILD.mdダウンロードに含まれるファイルには、 の使用に関する情報が記載されていますdfx


もっと詳しく知る 

閲覧数:1回0件のコメント

Kommentare


bottom of page