feature image

2016年10月29日 | 作品紹介

CodeColosseum

初めに

CodeColosseumはプレイヤーが人工知能(AI)を書き、2人のキャラクター同士で戦わせて勝敗を競うゲームです。

勝利条件はターン数最大1000の間で相手のHPを0にすること、もしくは1000ターン後により多くのHPが残っていることです。

リンク : http://codecolosseum.trap.games


ゲーム紹介

どのようなゲームかを軽く紹介します。

①対戦相手を選びます(別のキャラとも対戦できるので、最初は全弱を選ぶといいと思います)

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-29-1-05-35
②ステータスを設定し、スキルを作り、自分だけのキャラクターを作ります
名前や画像、スキル名なども自分で設定できます。(画像は自分で用意することもできます)

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-29-1-08-25

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-29-1-10-31

③どのタイミングでスキルを選択するのかを設計します。

この際、C言語に近い見た目のスクリプト言語"ChinoScript"で記述します。

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-29-1-52-34

④"サーバーに提出"を押すと、戦闘画面に映ります。

(場合によってはちょっと時間がかかります)
%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-29-10-29-54

"さらに挑戦する"から別のキャラと対戦することもできます

特定のキャラに勝つことで、自分のキャラクターが対戦される側のキャラクターに登録されます。


ちょっと詳しいルール

パラメーター

それぞれのキャラクターにはプレイヤーが指定したパラメーターが存在します。

ステータス: それぞれの和は1以上100以下の整数となります。

○ヒットポイント(HP): この値の大小で勝敗が決まります。HPが0以下になると負けです。体力5倍の値になります。
○物理力(PHY): 0以上。物理スキルの強さを表します。
○魔法力(MAG): 0以上。魔法スキルの強さを表します。

○スキル(S): キャラクターは4つのスキルを扱えます。それぞれのスキルのパラメーターは以下のとおりです。
○属性(TYE): 物理、魔法、カウンターの3つが存在します。
○攻撃力(ATK): (物理属性、魔法属性のみ) 発動時に与える攻撃のパワーを表します。
○倍率(ATK): (カウンターのみ) 相手の物理攻撃を何倍にして返すかを表します。次のスキル発動時まで有効です。
○防御力(DEF): 相手の攻撃をどれだけ防ぐかを表します。次のスキル発動時まで有効です。
○待ち時間(WAI): スキルを発動するまでに必要な時間です。物理力/魔法力/攻撃力/防御力によって変動します。

それぞれの属性には以下のような特徴があります。
○物理
発動時またはその直前に相手が発動したスキルの属性が魔法である場合、攻撃力が1.5倍。
○魔法
カウンター属性に影響しない。
○カウンター
発動してから次のスキルを使うまで相手の物理攻撃を跳ね返す

ChinoScript

基本文法

ChinoScriptでは文の末尾にセミコロン;を付ける必要があります。

また、幾つかの文を{}でまとめたものをブロックと呼びます。

井桁#から同じ行の末尾まではコメントとして扱われます。

変数や関数の識別子で使える文字は英数字(大文字小文字)とアンダーバーです。ただし、初めの文字は数字以外である必要があります。

例:

  556のように整数リテラルは0から9までの数字で表されます。

  'p'のように、シングルクォーテーション'で囲まれた文字は文字リテラルとして扱われます。

 "pyonpyon"のようにダブルクォーテーション"で囲まれた文字列は文字列リテラルとして扱われます。

演算子

サポートされている演算子は以下のとおりです。

注意: インクリメント、デクリメント、ビット演算、シフト演算などはできません。

制御構造

ChinoScriptでは制御構造としてif, for, whileをサポートしています。

フロー

CodeColosseumではキャラクターは次のように行動します。

開始 -> ループ { スキル宣言 -> スキルの待ち時間だけ待機 -> スキル発動 }

このうち、スキル宣言の時点でプレイヤーの入力したスクリプトが実行され、そのスクリプト内で発動するスキルを決定して出力します。

スクリプト内でのゲームの状態の取得について

ChinoScript内では定義された変数および関数でゲームの状態を取得できます。

例:

ちょっとマニアックなゲームですが、ハマる人はハマると思うのでぜひぜひプレイして見てください!

リンク : http://codecolosseum.trap.games


クレジット

サーバー:@ponya
クライアント:@hukuda222
スクリプト実装:@long_long_float
イラスト:@KNJ
調整:@Its_me,@ahiru
スペシャルサンクス:@kaz,@nonsako

hukuda222 icon
この記事を書いた人
hukuda222

主にプログラムを書いてます。

この記事をシェア

このエントリーをはてなブックマークに追加
共有

関連する記事

2023年11月21日
School Breakin' Tag -新感覚おにごっこ-
s9 icon s9
2023年12月11日
DIGI-CON HACKATHON 2023『Mikage』
toshi00 icon toshi00
2022年4月7日
traPグラフィック班の活動紹介
annin icon annin
2021年3月19日
traPグラフィック班の活動紹介
NABE icon NABE
2023年7月15日
2023 春ハッカソン 06班 stamProlog
H1rono_K icon H1rono_K
2024年1月16日
2023年冬ハッカソン参加記 チーム2 20%電電 "Orbit"
onkyi icon onkyi
記事一覧 タグ一覧 Google アナリティクスについて 特定商取引法に基づく表記