かいはつ!

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
end

p “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
end

x = 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技術を用いた、画面から飛び出すスーパーファビコンとか出たら面白いね。