CHaserOnline ローカルサーバ利用方法
2014.7.15
はじめに
CHaserOnline は前シリーズの CHaser の動作を引き継いだオンライン版ネットワ
ーク対戦型プログラミング教材です。サーバはオンライン上で常に起動しており、選手はサーバのコントロールを気にすることなく対戦を行うことができます。
しかし、クライアントプログラム開発当初はエラーの発生箇所が操作ミスなのかプログラミングミスなのか、あるいはネットワークの設定ミスなのかを特定することが難しいということがあります。
そのような開発当初のデバッグに利用していただくためにローカルサーバを利用していただければと思います。また、校内トーナメントなどで CHaserOnline を利用したい場合や、独自マップでの検証などにも活用していただきたいと思います。

１．イメージのダウンロード
全情研プロコンサイトからイメージファイルとイメージ合成ファイルをダウンロードします。
http://www.zenjouken.com/?page_id=533#_961の「キャビネット」「Puppy550JP_System イメージ」に入ります。
ファイルサイズが大きい場合は分割して公開されますのですべてダウンロードし、同じフォルダ内に入れます。
ファイルはすべて zip 形式で圧縮されていますので、解凍してください。

1２．イメージの合成以下の形式の合成用バッチファイルを起動します。
○○～.bat
以下の形式のイメージファイルを作成されます。
○○～.iso

３．メディアへの焼付け
ファイルの容量に応じて CD-R または DVD-R 等を２枚準備してください。
１枚目に「イメージの書き込み」を行います。
※このメディアから起動します。
２枚目には「ファイルの書き込み」を行います。
※起動用ＵＳＢを作成するときに利用します。

４．メディアからの PuppyLinux 起動
パソコンのＢＩＯＳ設定を CD/DVD から起動できるように変更してください。
３で焼き付けた１枚目のメディアをドライブにセットし起動します。
※パソコンによっては毎回「Boot メディア」を明示的に指定する必要があります。
※誤った操作をするとパソコン本体のシステムディスクに悪影響があります。指示以外の操作はしないようにしてください。
「copying to ram」と表示されますので、しばらくそのままお待ちください。
※これは PuppyLinux の仕様で、ディスクイメージをすべてメモリ上へ転送しています。
「パピー クイックセットアップ」が表示されます。
特に変更する必要はありませんので、そのまま「ＯＫ」を押します。

2５．起動ＵＳＢの作成（必要ない場合は６番へ進んでください）「メニュー」「セットアップ」「BootFlash パピーをＵＳＢメモリにインストール」を選びます。
「USB-HDD(ハードディスク)推奨設定」になっていることを確認し、「ＯＫ」を押します。
インストール先になるＵＳＢメモリを刺す前にデスクトップ左下のドライブに何があるかを確認しておきます。
インストール先になるＵＳＢメモリを差します。
追加されたドライブ名（ｓｄｂ１等）を確認します。
「BootFlash」ウィンドウの「ＯＫ」を押します。
「ＵＳＢメディアを選択してください。」の中から先ほどの、インストール先になるＵＳＢメモリのドライブ名を選び「ＯＫ」を押します。
「BootFlash」ウィンドの内容を確認し、良ければ「ＯＫ」を押します。
「パピーをＵＳＢメモリにインストール」ウィンドウの「パピーをインストール」を押します。
「BootFlash: ISO ファイルを選択」ウィンドウが出たら３で焼き付けた１枚目のメデ
ィアを取り出し、２枚目のメディアを入れます。
しばらくするとメディアのドライブアイコンが出ますのでクリック（マウント）します。
「BootFlash: ISO ファイルを選択」ウィンドウの左側の枠から「．．／」をダブルクリックします。次に「mnt/」をダブルクリックし、先ほどマウントした２枚目のメデ
ィアのドライブ名をダブルクリックします。
右の枠にイメージファイルが表示されますのでクリックし「ＯＫ」を押します。
「BootFlash: パピーは無事インストールされました」を表示されたら「ＯＫ」を押します。

3「メニュー」から「シャットダウン」「コンピュータの電源を切る」と進み「保存しない」を押します。
出来上がったＵＳＢメモリから PuppyLinux を起動します。
起動したら個人ファイル設定を行うためシャットダウンします。
「PupSaveConfig」ウィンドウを開いたら「保存する」「ＯＫ」と進めます。
次に「PupSaveConfig」と「カスタマイズ」が現れますので、「ファイルの大きさ」「スワップファイルの大きさ」を調整し「ＯＫ」「電源を切る」と進めます。
再度電源を入れ、ＵＳＢメモリから起動し、６へ進んでください。
※初回はシャットダウン及び起動時に時間がかかりますがこれは設定ファイルを作成しているからです。

６．CHaserOnline 起動確認
「ブラウザ」を開きます。
「アドレス」欄に「localhost:8080」と記入します。
CHaserOnline のイラストが表示されればローカルサーバは起動済みです。
クライアントプログラムを起動させます。
（ルームを後から指定する例）./○○.o http://localhost:8080/CHaserOnline003/user/-u ○○ -p ○○この時点でユーザは「cool」と「hot」が利用可能になっています。
ユーザの追加や、管理メニューの利用がない場合の説明はここで終了となります。

4

７．データベースマネージャの起動
デスクトップ中央やや左寄りの「CHaserOnline003」「WEB-INF」「db」と進みます。
その中から「runmanager.sh」をクリックします。
すると、「HSQL Database Manager」が起動します。
※HSQLDB の操作については http:// http://hsqldb.org/等を参考にしてください。
※データベースを直接操作する場合にはデータを破壊しないように注意してください。

８．管理ユーザの作成・登録
次の手順で管理ユーザを作成します。
・登録済みユーザの確認
Select * From UserAccount・登録済みユーザ権限の確認
Select * From UserRole
・管理ユーザ作成
Insert Into UserAccount (Name, Password) Values ('kanri', 'admin');
Select * From UserAccount・管理者権限の登録
Insert Into UserRole (Name, Role) Values ('kanri', 'admin');
Select * From UserRole

5９．管理画面の使い方
CHaserOnline トップメニューから「管理」を選びます。
８で追加した「kanri」ユーザのユーザ名とパスワードを入力し「ログイン」を押します。
管理メニューの主な機能には以下のものがあります。
・ユーザアカウント・ゲームオプション
・初期マップ・対戦ログ
・対戦マップ・対戦結果・ユーザ予約
それでは詳しく説明していきます。
「ユーザアカウント」
ユーザアカウントの一覧表示、登録作業を行うメニューです。
「ユーザアカウント」「一覧」と選ぶと登録済みユーザを一覧表示します。
一覧表示されたユーザ名をクリックすると詳細表示となり、さらに「このページを更新」をクリックすると登録データを変更・削除することができます。
「ユーザアカウント」「登録」と選ぶと新規にユーザを追加登録することができます。
「新規作成」画面でユーザ名を入力し「次へ」とし、ユーザ情報を登録します。
ユーザ情報は「パスワード」「学年」以外は必須入力ではありません。

6

「ゲームオプション」
ルームの一覧表示、登録、変更、削除を行うメニューです。
「ゲームオプション」「ルーム開始」「ルーム終了」「フラグ」「サーバ表示可否」と選ぶと、一括してルームのゲーム画面をクライアントから見ることができるかどうかを変更することができます。
「ゲームオプション」「ルーム開始」「ルーム終了」「フラグ」「ルームアクティブスイッチ」と選ぶと、一括してルームの有効・無効を変更することができます。
例えば校内対戦などで対戦ぎりぎりでルームを公開するときに利用できます。
一覧表から「ルーム番号」をクリックすると、ルームの詳細が表示されます。
さらに「このページを更新」をクリックするとルームの詳細を変更することができます。
一覧表から「サーバ表示可否」または「ルームアクティブスイッチ」をクリック
するとそれぞれの状態を反転させることができます。

「初期マップ」
システムに登録されているマップを一覧表示します。
昨年の予戦マップも見ることができます。

「対戦ログ」
絞り込む情報を入力し「Ｇｏ」をクリックするとログを表示します。
ログ表示は自動的にリロードしますので最新のログから順に表示されます。
クライアントプログラムの発行コマンドを確認するために利用できます。

7

「対戦マップ」「MapNumber」にルーム番号、「LineNumber」にログの行数（全クライアント合わせた行数）を入力し「作成」をクリックすることで対戦画面を表示させることができます。対戦画面は自動的にリロードしますのでクライアントの動きを細かく見ることができます。また、画面中のログも全クライアント分表示されます。
対戦画面を途中で止めたい場合はＥＳＣを押してください。
マップが画面からはみ出してしまう場合は表示サイズをズームすることで調整可能です。Puppy550JP 付属のブラウザ（SeaMonkey）ではゲーム画面のちらつきは気になりませんが、他のブラウザではちらつきが出る場合があります。

「対戦結果」
絞り込む情報を入力し「Ｇｏ」をクリックすると対戦結果を表示します。
絞り込み情報の入力は関係なしに「コマンド間隔標準偏差計算」をクリックするとランキング準備用の計算を行うことができます。
「ランキングデータ手動更新」の絞込み情報を入力し「Ｇｏ」をクリックするとコマンド間の標準偏差を計算することができます。
データベースに「コマンド間隔標準偏差計算」未処理のレコードがある場合は月ごとにその件数が一覧表示されます。
※「コマンド間隔標準偏差計算」は非常に長い時間がかかります。400 対戦で 24時間前後かかりますのでご注意ください。
※ローカルでの対戦結果はオンライン集計へ反映することができません。オンラ
インに結果を反映する場合は、オンライン対戦を行ってください。

8

「ユーザ予約」「ゲーム管理画面」と「ユーザ予約一覧」がありますが、標準では「ゲーム管理」画面が表示されます。
「一覧」をクリックすると、クリックした時点でのユーザ予約一覧が表示されます。自動更新はされませんので必要に応じてリロードしてください。
「ゲーム管理画面」をクリックすると約５秒毎に最新のユーザ予約一覧及び対戦状況を表示します。
「roomNumber=」に続けて表示したいルーム番号を入力し「Ｇｏ」をクリックします。ルーム番号に「０」を入力すると、すべてのルームのユーザ予約情報を表示します。
１０．最後にローカルサーバでは未完成の部分も多くありますが、クライアントプログラム開発の一助になればと思います。大変申し訳ございませんがローカルサーバの更新予定については未定となりますがご了承ください。

9