Slot | サンプルソース | |
---|---|---|
コマンドラインで遊ぶスロットマシーン。文字が回転してるっぽい演出にこだわってみました。 |
Slot.java |
/** * 愛のJava256本ノック for Java 5.0 * Javaサンプルソース ver0.2C "Slot" * Slot.java 「乱数でスロットマシーン」 * * 2005/09/23 制作:安永ノリカズ * * 【コンパイル&実行方法】 * >javac Slot.java * >java Slot * 【キーワード】 * ミリ秒(millisecond), エスケープシーケンス(escape sequence:拡張表記), * 乱数(random), 標準入力(standard input) * 【試してみよう】 * 当たりのパターンを増やす、当たる確立に変化をつけるなど、もっと面白くする。 * 当たったときに、派手な演出を加える。 */ import java.io.InputStreamReader; import java.io.IOException; import java.io.BufferedReader; import java.lang.Math; import java.lang.String; import java.lang.System; public class Slot { public static void main(String[] A00) { int L00 = 100; BufferedReader L01 = new BufferedReader( new InputStreamReader(System.in)); while (L00 > 0) { int L02 = 0; try { System.out.println("--------------------------"); System.out.println("所持金:" + L00); System.out.print("いくら賭けますか?:"); L02 = Integer.parseInt(L01.readLine()); if (L00 < L02 || L02 <= 0) { System.out.println("お客さん、冗談はやめてくださいよ。"); continue; } L00 -= L02; } catch (IOException L03) { System.out.println("入力エラーが発生したので終了します。"); System.exit(1); } catch (NumberFormatException L04) { System.out.println("数字を入力してください。"); continue; } System.out.print("スロットの数字:000"); long L05 = System.currentTimeMillis() + 1000; int L06; do { L06 = (int)(Math.random() * 1000); System.out.printf("\b\b\b%03d", L06); } while (System.currentTimeMillis() < L05); System.out.println(); if (L06 == 777) { L00 += (L02 * 1000); System.out.println("大当たり!"); } else if (L06 % 111 == 0) { L00 += (L02 * 100); System.out.println("当たり!"); } } } } /* ■ クラスの外でちょっと一言 ■ コマンドラインで遊ぶスロットマシーンです。掛け金を決めて、Enterキーを押 すと、スロットが回って数字が出ます。777で1000倍、7以外のゾロ目で100倍と いう配当になってます。 mainメソッド一本でやっちゃったんで、ローカル変数が多く、変数名解析が案外 難しいかも。まず始めに「所持金」と「掛け金」の変数を特定するといいでしょ う。 スロットの回転は、バックスペースで前の数字を消しながら、新しい数字を表示 することで表現しました。回転の時間は1秒間。システムの現在時間を利用して 計測してます。このシステム時間はエポックタイムなどと呼ばれ、1970年1月1日 0時0分0秒からの経過時間が、ミリ秒(1秒=1000ミリ秒)で表されます。 ちなみに自分は1969年生まれ。コンピュータ的には「紀元前生まれ」って感じな のかな。ちょっとショック。 */