Home > javaの勉強 Archive

javaの勉強 Archive

インベーダーゲーム

暇な時間でインベーダーゲーム作ってみました.
インベーダーゲーム

.

.

.

.

使ったのはProcessingのみ.

ネットに繋げない環境だったので,リファレンス見ないで記憶だけがたよりでちょっときつかったですが,難しいメソッドとかは全然使ってないのでそれなりに作れました.

残像が残る見た目はsaharanさんのやり方を真似てみました.

簡単なプログラムをちょっと描いてみるだけならProcessingはホント便利だね.

  • Comments (Close): 0
  • Trackbacks (Close): 0

ちょっとだけ修正しました

SimuZero2をちょっとだけ修正しました
SimulationZero2

結局、安定してウェブスターとでhttpを使う方法がよくわからなかったので、いつも通りウェブから起動できるものと、ダウンロードしてから起動するものに分けてみました。

それからちょっとだけバグ取りとか、ヒューマンエラーを回避するために確認を入れる修正。

まだ新しいものを作る計画はたっていないです。

,

,

,

,

<おまけ>

↑こういうことやってます。

ゆとりちゃんです。

全部アニメ中の模写です。

そういえば、ザコ敵でもモシャスされると強敵になるから困る。

めも

html5+canvas+javascript

.

websocketはサーバプログラムが起動できないといけないらしい

.

java applet

.

facebookは強いらしい

  • Comments (Close): 0
  • Trackbacks (Close): 0

新たな問題と今後の某

SimuZero2の待ち合わせ用webページを作ったのはいいのですが、こんどはSimuZero2のアプリケーションで問題が発生しちゃいました。

SimuZero2を起動した際にtwitterにつぶやくようにしているのですが、実際は、待ち合わせ用webページのとあるページにhttpを飛ばして、そこからつぶやくようになっているのです。

しかし、web上からjavaアプリを起動するJWS(javaWebStart)では、こういった外部ページへのアクセスが規制されてしまってるのです。

=========(エラー内容)===========

java.security.AccessControlException: access denied (java.net.SocketPermissionsimuzero2.heroku.com:80 connect,resolve)

===========================

デバッグを行っているときはPC上で起動していただけだったので、こんなエラーは全く想定外でした。

ということで、今度はここの部分をなんとかしないといけないようです。

それから、一時的な対処として、問題のツイート機能の無いバージョンを置いてます。Simulation Zero 2 (ver2.31 仮)

↑ここから

.

.

.

めも

それから、SimuZero2のアプリケーション自身ももうちょっと変えようかと

具体的には

・メインフェイズ終了のための優先権放棄に確認を加える

まちがって優先権放棄して、やりたいことができなかったってことがあったので、その防止に。ヒューマンエラー対策はインタフェースとかシステムに不可欠ですので

・生命の門

の挙動がちょっとおかしい気がする

・バトル中のユニットがやられた際の表示を変更する

・猫飼いたい

・スタックに乗っているカードのプレイとかにマウスカーソルを置いた際、カード情報の表示を行うようにする

.

.

.

このくらいです。

あと、SimuZero2とかまちあわせページとか作って、結局何がやりたかったかっていうと、

・ディメンション・ゼロの普及

は、建て前で(というか、初心者には使いづらいとも思ってる)

実際には、

・D-0をプレイするAIの作成

・web上で出来るオリジナルのカードゲーム作成

とかを考えていたわけです。

AI作成には教師データとして、人がプレイしたデータとか必要そうなのですが、今現在のSimuZero2はそういうことを考えずに、対戦できることを優先して作っちゃったので、もしかしたら1から作り直す可能性も;;

というか、D-0は対戦ツールを作ってみて、かなり複雑だってわかったので、AIを作るとしてももっと単純なゲーム性をもったオリジナルを作って、それに対応したAIを作る方がいいのかな〜って思ってます。

あ、そういえば、待ち合わせページをついった〜連動にしたのも、AIを作った際にbotとしてもなにかつぶやかせたいな〜とか思ってたからです。ただ、webページを動かす無料サーバーの使える容量がすごく少なかったので、ツイッターをデータベース代わりにしたのは正解だったかも。

,

,

とりあえず、今はこういうことを企んでいるわけです。

次回更新するときはどんなことになるのかな?

それでは、

  • Comments (Close): 0
  • Trackbacks (Close): 0

SimuZero2まちあわせった〜 完成!

見えない敵との格闘の末、SimulationZero2の対戦相手探しサイト「SimuZero2まちあわせった〜」が完成しました!

.
SimuZero2まちあわせった〜

↑からサイトに飛ぶことができます。

,

,

これで、対戦相手が見つからずにあんまり使われることがなかったのであろうSimuZero2がちょっと便利になった(はずです!)。

それから、これを作っている際にもみつけてしまったSimuZero2のバグも修正しておきました。

本当にバグってしつこいですね。これで直したの何回目だろう。(全部自分のせいですが;;)

,

,

,

今回はRuby on railsを使ったwebアプリケーション作成とtwitter api とjavaからのhttp通信を扱いました。

これで、流行のtwitterを使いこなせる!

とか思ったのですが、作り終わってみて、いろいろと無駄なことをしちゃった部分や回りくどいことをした部分があるな〜って思いました;;

まだ慣れていないからしょうがないんだろうけど、こういうのはできるだけシステムの構想段階で奇麗になるようにしたいです。

.

.

.

最後に、

<参考にしたサイトまとめ>

・http://heroku.com/

railsアプリを動かせるサーバ(無料もあり)

・https://github.com/

herokuを使う時に必要

・http://kuranuki.sonicgarden.jp/2009/05/rubypaasherokurails.html

herokuの主な使い方

・http://jugyo.org/blog/3061

rubytterの使い方

・http://jugyo.org/blog/tag/rubytter

rubytter と oauth認証

・”http://d.hatena.ne.jp/shibason/

rubytter と oauth認証

・http://twitter4j.org/ja/index.html

twitter4j使い方

・http://www.hpc.cs.ehime-u.ac.jp/~aman/java/http/

javaでhttp通信

・http://ao-system.net/favicon/index.php

ファビコン作り

・http://www.mywebcron.com/

定期的にHPを訪問してくれるwebcron(無料)

・http://net-newbie.com/linux/commands/vi.html

viエディタの使い方

・http://www.dbonline.jp/mysql/

mysqlの使い方

SimuZero2用の待ち合わせ掲示板

ご無沙汰してます。

最近、まったくゲーム作りはしてませんが、↑こんなもの作ってます。

SimuZero2の待ち合わせ掲示板です。

これを使って対戦相手を見つけやすくなれば、対戦ツールが使われる機会もふえるかな〜と。

.

ちなみに、これは、Ruby on Railsで作成しており、同じくRailsをつかって開発されたというtwitterのデザインをマネしてます。

ですので、掲示板っていうよりつぶやき板みたいな感じです。

.

掲示板的な機能はほとんど出来ていますが(というか、railsのパワーで一瞬で出来ちゃいますが)、SimuZero2のアプリケーションを誰かが起動した際に、その情報もこの掲示板上に表示できたらいいな〜と思ってます。

「3分前 ○○さんがロビーに入りました」

みたいな感じに。

たぶん、アプリケーションを終了した情報をとるのは面倒そうなので、現在いるかどうかというのは無理そうですが。

.

.

<追記>

寝る前にちょっと考えたのですが、

javaとかrubyで使えるtwitter api関連の便利なヤツを使えば、もっと利便性が上げられそうだな〜って思いました。

具体的には、simuzero用のtwitterアカウントを一つ作って、apiを使ってそのアカウントに誰でもつぶやくことが出来るようなページを作成。

これによって、simuzeroのtwitterページで待ち合わせ情報の交換が可能。ログはtwitterに溜まってくれるので問題無し。

また、そのアカウントをtwitterアカウントを持っている人がフォローすれば、待ち合わせ情報を自身のtwitterでも確認できる。

それから、javaからのtwitter api利用もけっこう簡単に出来そうなので、誰かが対戦ツールを起動したら、その情報をsimuzeroのtwitter上につぶやくってことも出来るかも。

ただ、またちょっと忙しくなって来てすぐに手を付けることはできなさそうなので、完成はもうちょっと遅くなるかも。

またもやJarファイル作成で、よくわからないけどうまくいった話

とりあえず、できたプログラムをjarファイルにしようとしていたんですが、そこでちょっと問題が発生しました。

どのようなものかというと、

.

.

jarファイルは作成できるのに、jarを実行すると

Could not find main class メインクラス名. Program exit~

のようなエラーメッセージが出てきて起動できなくなるっていう問題です。

まえまえからマニフェストファイルの書式はシビアなものだったので、そこが原因なのかと思い、すごく注意しながら何度も書き直したのですが、それでもダメでした。

同じ方法で今までに作った他のjarはどうともなかったのに、今回だけです;;

.

.

で、いろいろと試した結果、よくわかりませんがうまく起動できるjarファイルの作り方がわかりました。

今までは、eclipse上でエクスポートから「jarファイル」を選んでいたのですが、

「jarファイル」ではなく、「実行可能jarファイル」を選んでやったらしっかり起動できました。

.

.

「jarファイル」のほうはマニフェストファイルを指定しているのですが、「実行可能jarファイル」はとくにマニフェストファイルは指定しないでjarファイルを作るという違いがあるみたいです。

「実行可能jarファイル」の方のjarの中身を見てみたら、パスで追加している別のjarが展開されて中に入ってました。

そこら辺はあまり関係ないと思いますが、やっぱり原因はマニフェストファイルなんですかね?

まぁ、原因はよくわからないけどちゃんと起動できるようになってよかったです。

javaのListをソートする方法(メモ書き)

ちょっと前から、SimulationZeroのほうのアップグレードを進めていました。

最終目標は、ターンの進行やカードの効果の処理をプログラムで行う、オンライン二人対戦ができるツールを作ることです。

今現在は、とりあえず、カードの使用、対象の決定を行う処理を書いてました。

やはり、カードゲームのルールの実装ってめんどくさいですね。

めんどくさそうってわかっていながらも、結局やり始めて、やっぱりめんどくさくて挫折しそうですw

/

/

/

<プログラミングのメモ>

JavaでのListのソートの仕方

自分の場合はCardクラスっていう自前のクラスをエネの種類(int型のフィールド)に対してソートしたくて、やり方を探していたんですが、

Collections.sort();

のメソッドを使うとかなり簡単にソートできることがわかりました。

で、ソートをする方法は2通り。

/

/

(1)ソートしたいクラスに implements Comparable をする。

class Card implements Comparable{

@Override

public int compareTo(Object object) {
return 0;
}

}

↑compareToをオーバーライドして、その中で、比較したいものを記述し、

自分のほうが小さければマイナスの値を返し、

相手のほうが小さければプラスの値を返し、

一緒なら0を返す。

という風にすればいいらしいです。

これで、

Collections.sort(LinkedList<Card> hogehoge);

とすればソートしてくれます

/

ただ、この方法だと、一つのクラスでいくつかソートに使いたいものがあったばあい(たとえば、パワーでソートする場合と、コストでソートする場合とがある時)は処理できないという問題があります。

/

/

(2)ソート方法を記述するComparatorをextendsしたクラスを作る

class EneComparator implements java.util.Comparator{

@Override
public int compare(Object object1, Object object2) {
return 0;
}

}

↑(1)と同じように、比較の処理をcompare内に書けばOKです。

ちなみに、object1が自身だと考えて、object1のほうがobject2より小さければ負の値を返すようにします。

これを、

Collections.sort(LinkedList<Card> hogehoge,new EneComparator());

と使えばソートできます。

これなら、Comparatorを拡張したクラスを用途に合わせてたくさん作ってソートの度に使い分けることができます。

/

/

/

以上

  • Comments (Close): 0
  • Trackbacks (Close): 0

トランプゲーム「ピラミッド」試作機

一日でどのくらいのゲームが作れるのかちょっとチャレンジしてみました。

夜の10時頃から作り始め、今現在午前2時45分くらい・・・5時間の制作時間でできたのがこれです。

pyramid

↑クリックで起動。

だいぶやっつけ仕事ですが、一応、トランプのピラミッドを作ってみました。

/

/

簡単にルールを説明すると、

・足して13になるようにカードを選んでいき、ピラミッドを全部消せばクリア!

・一定回数まで山札をめくってもピラミッドが崩せなかったらゲームオーバー!

っていうゲームです。

/

/

操作方法は、

・左クリックでカードを選ぶ

・右クリックでカードの選択を解除

その他の細かいことは察してください。

/

/

もうすぐ帰省してゲーム制作を進めることができなくなりますが、戻ってきたらちゃんとトランプの柄でもつけてあげる予定です。

/

/

/

個人的なメモ

jarファイルを作るときのマニフェストファイルの書式はとってもシビア!!

Manifest-Version: 1.0
Main-Class: Pyramid
Class-Path:

:の後は必ず半角スペースが必要

最後の行の後に一回改行しておかないといけない

まさか、未だにこいつにやられるとは思わなかった;;

パズルシューティング「KiU!」制作中

パズルシューティングの基礎部をプログラミング中です。

↑これが現在の状況

開発状況は5%程度です。

とりあえずシステムの動きだけ作っているので見た目はまだまだですが、画像からどんなゲームなのかはけっこうわかると思います。

ブロックのラベル付けがだいたいうまくいってはいるのですが、完ぺきではないので改良する必要がありそうです。

.

.

今後、行う予定↓

・ブロックのラベル付けの見直し

・自機とブロックの当たり判定

・弾の発射角度指定

・各種動きの追加

.

.

このくらいまで実装できたら、イベントとかの方にも手を出していきたいと思います。

.

.

.

.

.

.

.

.

お ・ ま ・ け

↑昨日描いていた女の子。

ちょっと自身のファッションセンスから磨く必要がありそうですww

Home > javaの勉強 Archive

Search
Feeds
Meta

Return to page top