今からはじめるプログラミング24

ノベルゲーム、RPGときたので、アクションはとても理論がわからないので、カードゲームをつくってみようと思って、実際にオンラインのカードゲームを遊んでみたw

ムズ!!!

理論も何もシステムが難しすぎて、僕の頭では理解できずに、勝率0%を叩き出していますw

RPGよりは簡単そうな気がしているのです、、、けれども。

なんというか僕はカードゲーム世代ではないからか、正直なところ、興味がモテないんだけれども、息子はポケモンカードゲームとか普通にやっていたので、たまに誕生日などにちょっと大切なカードをもらったりしてました。

ムシキングとかね。

でも今はカードゲーム全盛?なのか、アニメブームもあって?息子も遊んでいたカードをメルカリで売ったりしているみたい。

そしてメルカリは禁止になったとか。

そんなわけでカードゲームはお預けかな?今回は、使いそうで使わない?Systemクラスのいろいろ。。。というほどの中身もないけど、ちょっと知っておくと便利かもしれないくもない?ぐらいのプログラムです。

ようはSystem.getProperty("キー文字列");で取得できる要素のリストを画面表示しました。

ViewPropertySample

------------------------------------

package sample12;package sample12;
import java.util.StringTokenizer;
import javax.swing.JFrame;import javax.swing.JScrollPane;import javax.swing.JTable;
public class ViewPropertySample {
public static void main(String[] arguments) { // Systemクラスの現在時間を取得するメソッドで、処理時間を測定できる

long start = System.currentTimeMillis();
// Systemクラスの属性を取得する String systemProp = System.getProperties().toString();

// Stringをカンマで分割する

StringTokenizer st = new StringTokenizer(systemProp, ",");
// トークンんの数だけ行数をもつテーブルをつくる

int cnt = st.countTokens();

// テーブルの作成 JTable table = new JTable(cnt, 2);

// テーブルの列名を設定 table.getColumnModel().getColumn(0).setHeaderValue("プロパティのキー"); table.getColumnModel().getColumn(1).setHeaderValue("プロパティのあたい");

// 行数を指定しながら?キーの情報と値をテーブルに設定していく

int row = 0;
while (st.hasMoreElements()) {

String token = st.nextToken();

// System.out.println(token);//画面にださなくてもよければ

int idx = token.indexOf("="); //=の位置で文字列を分割

String key = token.substring(0, idx);

String value = token.substring(idx + 1);

//=の手前をキー

table.setValueAt(key, row, 0);

//=の後ろを値

table.setValueAt(value, row, 1);

//次の行へ

row++;

}

//画面の構築

JFrame frame = new JFrame();

JScrollPane scroll = new JScrollPane(table); frame.getContentPane().add(scroll); frame.setTitle("すすてむぷろぱてー"); frame.setSize(400, 300); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

// 処理時間を測定できる

long end = System.currentTimeMillis();

long proc = end - start; System.out.println("proc time(" + proc + "ms)");

//システム属性の使い方?例えば、言語を取得して英語と日本語の切り替えをしたり。(user.languageの方がいい?) System.out.println("user.country=" + System.getProperty("user.country") + "");

if("JP".equals(System.getProperty("user.country"))) {

System.out.println("japanese process");

}else if("EN".equals(System.getProperty("user.country"))) {

System.out.println("english process");

}

frame.setVisible(true);

}

}

------------------------------------

実行結果は以下のようになります。

f:id:yo2an:20210506161418p:plain

システムプロパティのリスト

まぁこんな画面を作る必要はないですが、どんなものがあるかを眺めてみるのも面白いですね、一応、画面を表示する手前にプロパティの直で、分岐するサンプルを書いてみてますが、languageの方がいいですかね?

コメントでも同様なことを書いてます。

ところで、RPGといえば、Wizerdryです?というかここで作ったRPGなどより数倍、数十倍、数万倍すごいものがすでにあるので、ガチなゲームプログラムはこっちのほうがためになると思います。

酔生夢死 [Javardry]

すごい人がいるもんです。

 

ちなみに僕が好きなシナリオは「Vのhaert of the maelstrom」です。

アマゾンだとスーファミ版が売ってますね。

6以降はやってないです。正確にはWizerdry onlineを少しやってみましたが、なかなか僕には難しかったです。終わってしまったのが残念です。オンラインゲームは運営さん次第でゲーム世界が閉じられてしまうのが、難点ですね。お金と時間が手に入ったら6以降もプレイしたいです。