UnityエンジニアがRubyで戸惑った #3
Unityでゲーム開発がメインな私ですが、Rubyを勉強してみてC#との違いに戸惑ったり便利だと思った備忘録集です。
1.【例題】FizzBuzzの説明
2.RubyでFizzBuzzを書いてみる
3.UnityでFizzBuzzを書いてみる
今回は、プログラミングの練習問題として有名なFizzBuzzプログラムをRubyとUnityで書き比べてみました。
1.【例題】FizzBuzzの説明
FizzBuzzはプログラミングの練習問題としては有名ですよね。
<FizzBuzzの仕様>
・3で割り切れる数値を引数に渡すと「Fizz」を返す
・5で割り切れる数値を引数に渡すと「Buzz」を返す
・15で割り切れる数値を引数に渡すと「Fizz Buzz」を返す
・それ以外の数値はその数値を文字列に変えて返す
2.RubyでFizzBuzzを書いてみる
Rubyで書いたコードが以下です。
# FizzBuzzメソッド
def fizz_buzz(n)
if n % 15 == 0
'Fizz Buzz'
elsif n % 3 == 0
'Fizz'
elsif n % 5 == 0
'Buzz'
else
n.to_s
end
end
puts fizz_buzz(1)
puts fizz_buzz(2)
puts fizz_buzz(3)
puts fizz_buzz(4)
puts fizz_buzz(5)
puts fizz_buzz(6)
puts fizz_buzz(15)
elseifじゃなくてelsifにびびった!
あとは、やっぱり戻り値に関する情報をいっさい書かない点がいまだに慣れない。。
3.UnityでFizzBuzzを書いてみる
Unity(C#)で書いたコードが以下となります。
// RubyとUnity(C#)の比較
public class RubyTest : MonoBehaviour {
void Start () {
Debug.Log(Fizz_buzz(1));
Debug.Log(Fizz_buzz(2));
Debug.Log(Fizz_buzz(3));
Debug.Log(Fizz_buzz(4));
Debug.Log(Fizz_buzz(5));
Debug.Log(Fizz_buzz(6));
Debug.Log(Fizz_buzz(15));
}
// FizzBuzzメソッド
private string Fizz_buzz(int n ){
if(n % 15 == 0) {
return "Fizz Buzz";
} else if(n % 3 == 0) {
return "Fizz";
} else if(n % 5 == 0) {
return "Buzz";
} else {
return n.ToString();
}
}
}
Unity知らない人からみたら、Start( )って「なんや!」って思うのかな?
Start( )メソッド
初回に一度だけ処理されるメソッドで初期化などに用いられる。
Javaのコンストラクタみたいなものと覚えても差し支えないかな。
まとめ
昔、一世風靡を巻き起こした「世界のナベアツ」のギャグは、FizzBuzzと同じ考えなんだね(・∀・)!
最後までお読みいただきありがとうございます。
スキして頂いたり、フォローして頂けると励みになります。
引き続き、よろしくお願い致しますm(_ _)m