Coding_Gamesメモ_Rock_Paper_Scissors_Lizard_Spock

javaの学習にCoding_Games を知り、学習の記録としてメモ。
To debug:

System.err.println( );

を使うとデバックしやすくなる。(エラー出力は評価に影響しない)

内容

じゃんけん

ルール

f:id:tiridukano_yagigame:20200818224116p:plain
勝利 > 敗北
C > P
P > R
R > L
L > S
S > C
C > L
L > P
P > S
S > R
R > C

あいこで勝者が決まらないなら、数字の小さい方を勝者とする。

インプット

1行目は2のk乗(2~1024)のエントリー数(N)
2行目からは番号(NUMPLAYER)とじゃんけんの手(SIGNPLAYER)

アウトプット

1行目には勝者の番号を
2行目には対戦相手の番号を戦った順に' 'で区切り出力する

使用したクラス

String

(String) = String.substring(x,y)
文字列の一部を切り取る。
x,yはint型
xが切り取り開始位置、yは終了位置、yが指定されていなければ最後まで指定したのと同じ。

(String) = String.valueOf(x);
x をStringの文字列として出力( String.valueOf(123) → "123" )

(boolean) = String.equals(x);
(String == x) String は == では判定できないので代わりに使用する。

考え方
トーナメントを行う関数、勝敗を判断する関数に分ける
トーナメントを行う関数は1回戦毎に自分を呼び出し、結果を出力するように作る(再帰関数)
トーナメントを行う関数に対戦相手の情報もつけておく

注意点

Stringの比較は == ではなく .equals() メゾットを使う

Coding_Games:https://www.codingame.com/
String (Java Platform SE 8) - Oracle Cloud:https://docs.oracle.com/javase/jp/8/docs/api/java/lang/String.html