Java VS Ruby The Third Impact
Javaで書く基本ループ
public class SampleC {
public static void main(String[] args) {
int i = 0, j = 0;
while(true){
if(i >= 5) break;
System.out.print(” ” + i++);
}
System.out.print(“:”);
do{
System.out.print(” ” + j);
j++;
} while(j < 5);
System.out.println();
for(int m = 0, n = 20; m < n; m += 5,n++){
if(m % 2 == 0) continue;
System.out.println(“m = ” + m + ” n = ” + n);
}}
}
rubyで書く基本ループ
class SampleC
def main
i = j = 0
while true
break if i >= 5
p (” ” + i.to_s)
i += 1
end
p “:”
loop do
p (” ” + j.to_s)
j += 1
break if j < 5
end
p “\n”
m = 0
n = 20
for s in 1..4
m += 5
n += 1
next if m % 2 == 0
p (“m = ” + m.to_s + ” n = ” + n.to_s + “\n”)
end
end
end
x = SampleC.new
x.main
ちなみにRubyは実行環境入れてないのでエラーチェックしてないです。
追記:
チェックしたところ、ダブルクォーテーションが全角なのを除いて
コピペでちゃんと動きました。
Java VS Ruby Returns
JAVAの教科書にあったソース
class Dog {
int weight = 50;
static {
System.out.println(“static inr”);
}
{
System.out.print(“inr “);
}
Dog() {
System.out.println(“ctr”);
}
void meth() {
System.out.println(weight);
}}
class SampleA {
public static void main(String[] args){
Dog x = new Dog();
Dog y = new Dog();
x.meth();
}
}
Rubyに翻訳
class Dog
def initialize
@weight = 50
p “inr ctr”
end
def meth
p @weight
end
endp “static inr”
x = Dog.new
y = Dog.new
x.meth
もういっちょJAVA
import java.util.*;
class SampleB {
public static void main(String[] args){
int[] ds = {1, 2, 3, 4, 5};
for(int d : ds)
System.out.println(d);
System.out.println();
int[][] nns = {{1, 2, 3}, {10, 20, 30}, {100, 200, 300}};
for(int[] ns : nns){
for(int n : ns){
System.out.println(n);
}
System.out.println();
}
List<String> ss = new ArrayList<String>();
ss.add(“abc”);
ss.add(“def”);
ss.add(“ghi”);
for(String s : ss)
System.out.println(s);
}
}
もういっちょRuby
class SampleB
def main
ds = [1, 2, 3, 4, 5]
for d in ds
p d
end
p “”
nns = [[1, 2, 3], [10, 20, 30], [100, 200, 300]]
for ns in nns
for n in ns
p n
end
p “”
end
ss = []
ss.push(“abc”)
ss.push(“def”)
ss.push(“ghi”)
for s in ss
p s
end
end
endx = SampleB.new
x.main
文字を隠すCSS
text-indent: -9999px;
背景画像設定して↑これ入れると文字をいっぱい入力しても画面には表示されなくなる!
SEO対策もバッチリでござる。
パスワード入力テキストボックスあれこれ
サイトにログインする時にパスワード入力するとこありますよね。
その中に薄くパスワードって書いてあったりします。
今作ってるサイトでそれやろうと思って、普通のjqueryを使っても上手くいかない!
テキストボックスのタイプがtextなせいでパスワード入力しても伏字にならなかったり、
タイプをpasswordに変更したところで薄い「パスワード」が伏字になる始末・・・。
そこでどうするかというとcssのdisplay:noneの登場です。
予め「パスワード」表示用のボックスと入力用のボックスを用意し、入力用のボックスをdisplay:noneしておきます。
<input type=”text” id=”pass” size=”10″ value=”パスワード” />
<input style=”display:none;” type=”password” id=”password” size=”10″/>
んで以下のスクリプトを挿入。
$(‘#pass’).css(‘color’,d_color).focus(function(){
$(‘#pass’).css(“display”,”none”);
$(“#password”).attr(“style”,”display:show”);
$(‘#password’).focus();});
//選択が外れたときの処理
$(‘#password’).blur(function(){
if($(this).val() == this.defaultValue | $(this).val() == ”){
this.value = ”;
$(‘#password’).css(“display”,”none”);
$(“#pass”).attr(“style”,”display:show”);
$(‘#pass’).css(‘color’,d_color)
};
});
するとあら不思議、伏字入力らへんがばっちりできちゃいました。
た だ し、まだ入力内容を取得できるかどうかのテストはしてましぇーん(笑)
悪しからず。
追記:バッチリ情報取得できました。
非ターゲットの概念
RPGはお好きですか?
まぁRPGが好きでなくとも、ゲームをしていて
どうしても攻撃が届かなかったり、
攻撃の対象にできない敵が出てきたりしますよね。
非ターゲットってのはそういう
バトルフィールドにいるのにその他のキャラクターからのアクションを
一切受け付けないような奴のことです。
でもそいつからは他のキャラクターに対してアクションができたり。
この概念は非常に優秀です。
普通に使えば単に場外から野次を飛ばすキャラクターを表現できるだけですが、
キャラクターを何かの装置に置き換えて考えると、
バトルフィールドに何らかの影響を与えるギミックを表現できちゃいます。
溶岩の洞窟で戦っている時、一定時間おきに起きるマグマのダメージを表現したい。
そんな時は「溶岩の洞窟」を非ターゲットキャラと捉えると
意外と簡単に表現できる気がしてきます。
次の連休で実装してみよ。
Java VS Ruby
Javaで書くif
int foo = 0, bar;
if(foo == 0){
bar = 10;
}
Rubyで書くif
foo = 0
if foo == 0
bar = 10
end
Javaで書くfor
for(int i = 0, i < 10, i++){
System.out.println(i);
}
Rubyで書くfor
for i in 0…10
print i
end
Javaで書くクラスとメソッド
public class foo extends bar {
public void main(String[] args) {
do_something();
}
public int do_something() {
return 0;
}
}
Rubyで書くクラスとメソッド
class foo < bar
def main
do_something
end
def do_something
return 0
end
end
Javaで書くアクセサ
private foo;
private bar;
private baz;
public String getFoo()
{
return foo;
}
public void setFoo(String foo)
{
this.foo = foo;
}
public String getBar()
{
return bar;
}
public void setBaz(String baz)
{
this.baz = baz;
}
Rubyで書くアクセサ
attr_accessor:foo
attr_reader:bar
attr_writer:baz
あれもするか?これもするか?もっとするか?
作ってるゲームの話。
キャラクターが敵に攻撃を仕掛ける時、炎の剣で攻撃するとかあるじゃないですか。
あとは氷の攻撃だけ防御とか。
そういうのをまとめてステータス画面やらに表示しといた方がいいのかどうなのかで
すごい悩み中。
表示するのは簡単だけど、それだけ今より情報量が増えて
初めて見た人がわけわからんことになったりすると困るし。
他のゲームがどうしてるか考えてみる。
-ドラクエ-
属性表示?んなもんないがな!
メラに強くても炎の息には耐性ないとかどういうことなの。
-FF-
ライブラとかすると見える?
ステータス画面ではアビリティとして見えるかな。
-テイルズ-
あったっけ。
思い出せないってことは無いんだな。
-ポケモン-
あるね。タイプ重要だもんね。
あるけどこれは毛色が違うでしょう。
ふむ、パッと思いつくもので属性表示やってる作品が無い。
と、いうわけで属性表示はしなくていいやー。
PCとゲームは作る物
ひっさびさに自作ゲームの開発を再開した!
ガリガリイベント作るのはやっぱり楽しいね。しんどいけど。
現在の開発度は3割程度?まだまだ先は長いのじゃ。
登場させたてのキャラって人物像定まってないから扱いにくいわー。
Fireworksが大分キテる
なんかもうイラスト以外だったら大体の画像が作れそうなよかーん
しかしパスをビットマップに変換するのがクソめんどうなのはどうにかしてほしい!
ふぁびこん
WEBページを開いた時、アドレスバー左に表示されるちっこいアイコンありますよね。
あいつのことは「ファビコン」と呼ぶらしいです。
ファミコンじゃなくてファビコンです。
今流行りの3D技術を用いた、画面から飛び出すスーパーファビコンとか出たら面白いね。
最近のコメント