Skip to content

naoppy/Procon29

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Procon29

プロコン29競技部門のビジュアライザとソルバーです。 Overview

Developer

naoppy(@naoppyj)

ecasdqina(@fyba_, @ecasdqina)

ピッチぃー(@d4wnin9)

Contents

Requirements

JavaFX2

Building

/resource/フォルダ、/src/フォルダ、/test/フォルダ以下の全てのファイルにパスを通してください

Usage and examples

実行、開発にはIntellij IDEAを使用することを推奨します。

・簡単な動かし方

src/procon29/akashi/Mainをコンパイルして実行する

QRコードをコンソールに入力、このとき改行文字ではなく[A-z]が入力終わりを表すことに注意!

舞台に対して右か左か、ターン数を入力するとゲームが始まる。

run1

GUIが起動する。GUI上のグリッドをクリックすることで敵の位置を入力する。 敵の位置を間違えてクリックした場合、もう一度クリックすることで取り消すことができる。

敵の位置を入力できたら、左のSolveボタンを押すと位置が確定され、ゲームのメインループが始まる。

  1. 自動でSolverが走り、味方のプレイヤー2人の動きが矢印で表示される。 run2

  2. 敵の動く方向を入力する。 設定したいプレイヤー(主に敵プレイヤーだが、味方プレイヤーも一応設定できる)をクリックする。 その後、動く方向をクリックする。(8近傍と同じ場所の9箇所が選べる)。 すると、行動に応じて右側に矢印がでる。Sはstay(待機)のS。 run3

  3. Solveボタンを押す。全プレイヤーの行動を入力し終えていた場合盤面とターンが進む run4

以下、繰り返し~

・QRコードを使わずに盤面をランダムに生成する

ソース の約30行目

public ScoreMaker maker = new ScoreFromQR(QRImporter.inputCode()); の右側を

= new ScoreFromRandom(9, 10, true, false, 70);

などに変える。 コンストラクタに渡すパラメータは ソースAPIドキュメント を参照。

Random生成の場合、敵プレイヤーの位置は最初から入力されているので、起動してすぐSolveボタンを押せばよい。

・Solverを変える、新しくSolverを作る

ソース の約55行目

private Solver solver = new DoNothingSolver(); の右側を

= new RandomeSelect();

などに変える。

既にあるSolverは ソースAPIドキュメント を参照。

新しくSolverを作る場合、Solverインターフェースを継承して作ることになる。

・MOVEボタンについて

ゲームのメインループの最中、MOVEボタンを押すことによって盤面編集モードに入ります。

盤面編集モードでは、右クリック、左クリック、マウスホイールクリックでそれぞれの色のタイルを置くことができます。

プレイヤーをドラッグアンドドロップによって好きな位置に動かすことができます。

通常のモードに戻るにはSolveボタンを押します。

この編集モードを使うと残りのターン数などの整合性が取れなくなりますが、好きな盤面を作ることが可能です。

編集モード中、得点計算はされないので、得点を再計算するには一度Solveボタンを押して通常モードに戻る必要があります。

API documentation

API documents

Development and contributing

Feel free to send pull requests and raise issues.

About

競技部門のためのレポジトリ

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages