Aの十乗って書いてテンエー

Aの十乗って書いてテンエー

物書き+プログラマーが必死なんです


   ノベルサイト『螺旋ベーグル』
http://www.rasenbagel.com

Amebaでブログを始めよう!
どうも、A10プログラマーの方です!

今日は、node.jsの豆知識でも書こうかと思います。

最近やっと覚えてきた変数やfunctionの宣言について。



■変数の宣言
var hoge:


■複数の変数宣言
var hoge , huga , foo;

■変数の初期化
var hoge = 1;

■複数の変数初期化
var hoge = 1 , huga = 2 , foo = 3;

■変数初期化 - パターン2
hoge = 1;


変数は var で宣言します。
これは元々のjavascriptと全く同じです。

パターン2のように var で宣言しないとグローバル変数になり、このファイル以外でも参照できる変数となってしまいます。
グローバル変数として宣言してしまうとサーバーのメモリ上に常に保持されてしまうので、極力使わない方がいいでしょう。というか使っちゃだめです。


最初すごい使いづらかったのが、複数の変数をコンマ区切りで宣言・初期化ができること。

よく見るのが

var hoge = 1,
huga = 2,
foo = 3;

みたいに初期化してるコード。

var hoge = 1;
var huga = 2;
var foo = 3;

のが見やすいし分かりやすいと思うのは俺だけ…?



次に、関数の宣言です。
javascriptでは、関数はfunctionとして宣言します。


■function宣言 - パターン1
function hoge(){
var huga = 1:
}:


■function宣言 - パターン2
var hoge = function(){
var huga = 1:
}:

■function宣言 - パターン3
var hoge = new Function ("var huga = 1; return huga;");




ほとんどの場合パターン1、パターン2を使うと思います。
パターン3は特殊で、文字列を関数として定義します。

パターン1とパターン2の違いは、変数として定義されるかどうか、になります。
変数として宣言した場合、宣言するまでは使えません。しかし、関数として定義すると定義されたファイル上であればどこでもその関数を参照できます。

//これはOK
var test = hoge();
console.log(
test);

function
 hoge(){
return 1:
}:

//これはエラー
var test = hoge();
console.log(
test);

var 
hoge = function (){
return 1:
}:




この性質を使えば、複雑で長い処理をfunction内に書いて、メインの処理の流れだけを上の方に記述することができますね。




また、関数名を定義しない無名関数、また記述した時点で実行する即時関数などもあります。

無名関数を変数に代入(先ほどのパターン2)
var hoge = function (){
return 1:
}:

■即時関数
(function (){
console.log("hoge");
})();
//hogeと表示される。






では最後に。
Node.jsで必須となるコールバック関数について。

■コールバック関数とは
処理が終わってから呼び出される関数。
非同期処理を行う際はこれを呼び出すことによって終了後の処理を記述する。

例:


var a = 3;
var b = 5;


//非同期処理を行う関数

function hoge(a , b , callback){
var  c = "huga";
setTimeout(function(){

//三秒後に処理
c = a + b ;
//コールバック関数を実行
callback( c );

},3000);
return c:
}:

//非同期処理を実行、戻り値を受け取る
var test = hoge(a, b, function(c){ //←←これがコールバック関数の実処理

//setTimeoutで三秒後にこの処理が呼ばれる
console.log(c);//8と表示

});
console.log(test);//hugaと表示





こんな感じです。
非同期関数hogeを呼び出し、その戻り値を受け取っても a+b の値は返ってきません。
a+bを処理しているのはsetTimeoutの中なので、三秒後に処理されその前にreturnした値はhugaになります。

Node.jsを使う目的としては非同期処理をしたいということが多いと思うので、この仕組みが理解できていないとつらいと思います。

少しでも参考になれば幸いです。


では、少し宣伝を。

僕らの作っているビジュアルノベル
「ワールドコード」三章第8ページを更新しました。
是非一度ご覧ください。

■8ページ紹介

 学校に乗り込んできた狩野は相も変わらず傲岸不遜な態度で自分勝手に命令を下す。
 それに振り回される真名だが、他人の機微を感じ取ってしまう自身の能力のせいで授業にうんざりしていた彼女にとっては寧ろ願ってもなかった。
 二人の信頼は利害の一致であり、それ以上ではない…のだろうか。




■ワールドコード紹介

「神はいなくても悪魔はいるように、この世に悪は存在してても正義なんてこれっぽっちも存在してねえんだよ」

この世界には人智を超えた能力の持ち主達が存在する。
人の心を読む、瞬間移動、千里眼、未来予知、念動力、透視、念写、etc,etc・・・
いわゆる”超能力”。その力の持ち主達は超能力者と呼ばれ、その常識外の力を用いて世界を裏から操る。
狩野恭一《かりのきょういち》は、超能力者全てを憎み、敵と見なしている。
敵は全ての超能力者、対して彼らの戦力は、研究所で彼と共に仕事をしている二人の人間 ―― 特別な力を持つ女子高生一条真名《いちじょうまな》、異常な演算能力をもつ天才少年ミハエル=ブランケンハイム ―― だけだ。
無謀なる彼らの戦いは、正義を振りかざす追跡者の討伐から始まる――



■サイト
ノベルサイト「螺旋ベーグル」
http://www.rasenbagel.com/




どうもA10です!

まず先週は更新できずに申し訳ないです。
実は日曜にさぁ今日更新するかー!と思ってまずは腹ごしらえにラーメン花月へ向かう途中。うちの派閥のリーダーから「今日は何時にこれそうですかー?」とかメッセが到着……。
え……!?Σ(゚д゚;)
ってなりました。
まぁ今ヤバイ案件があって、それでみんな出社することになってたらしい。俺は多分聞いてなかったんだけど。でも、いかにも「あれ?」みたいな反応をされたので、うわああああやべええ俺なんか忘れてたっぽいごめんなさーいいいいいいってなってそこから会社にダッシュしました。
なので……更新できず。すいませんorz まぁ土曜にやっとけよって話なんですが;



そんな日曜でしたが、それ以外の平日も最近ゲームばっかりしてそれ以外なにっもしてないような気がするけどそんなこと気にしない!!
そう!今だってブログ書いてるし!!

……そうやって自分を納得させるんです。




最近はあるソシャゲやっててイベントのデイリー15位とか取ったりしてたんですが、僕は一応そのゲームの中の人なのでなんのゲームかは言えません……でも、超楽しい!!
中の人と言っても直接開発してる訳でもなく、全くノータッチです。なので普通のユーザーと気持ち的にはなんら変わらないし、システム的には結構好きだなーと前から思ってたとこに相方がハマりだして……おかげで時間を忘れてやってます!!課金無双ひゃっほーい!!
最近割と真面目にハマってて思うのは、やっぱりドラコレとか怪盗ロワイヤル的なソシャゲが売れるのは、みんながやってるからだなー……って思います。
相方が最近始めて、なんかやたらと強くなってて、俺のが先に始めてたのにそれに負けたくないしなんかイベントやってるらしいからちょっとがんばってたらレアとかすげえ手に入って今までより俄然強者に。そしてギルド単位で戦うボス戦とかで荒ぶってたらいつのまにかギルドの人たちともなんか妙な連帯感や仲間意識ができ、その人たちともっと強くなりたいと思い……
時間を忘れてやり込む!!
ソシャゲ廃人が幕を明けました。

まぁでも楽しんでやってる分にはいいのかなーとか思ったり。

最近流行りだし、自分だってそういうの作ってるし、そこの中でのコミュニティで友達ができたり、ってこともあると思うし。

でもまぁゲーム内ではしゃいでる人たちを見ると、常にインしてるし常にイベント限定キャラとか持ってるし、この人大丈夫かな……とは思いますね。ハイ。そうはなりたく……ない。

でも実際売れるゲームは、必ずしもソーシャル性は必要ないんだろうな、とも思う。
ソーシャル性を追求するが故に分かりやすさを重視し、それが氾濫しているせいで似たりよったりのゲームばかり生まれている現状はみんな嘆かわしいと思ってるはずですよね。
だからそんな中でソーシャル性をほぼ排除してゲーム性のみにこだわったパズドラが際立った訳ですよ。
つかむしろソーシャル性なんぞ要らん!
基本ゲーム好きなやつなんて引きこもり体質なやつだろうからね!





あともう一つ!先週くらいに買ってすげえやってるのがゲームボーイアドバンス版(DSでできる)「MOTHER2 ギーグの逆襲」!!

今まだ全然途中でゲップーという大ボスっぽいのが出てきたくらいなんですが、なかなか面白い!古き良きスーファミゲーム。って感じ。
システム的には戦闘がドラクエで街がポケモン、て感じ。
街の人達に話しかけると、大体下らない答えが返ってくる。

「じゃ、クイズ。「アルプスの少女○○ジ」
 ○○のところになにがくる?」
→はい いいえ

はいだと正解!みたいに言われるんだけど、いいえだとイイエジはないだろう!とか怒られるw

ツーソンって村の看板。

「二番目の村だからTWOSON お気づきでしたか?」
気づかなかったw でもくっだらねえw

とか。
あとゴミ箱とかを探索できるんだけど、そこにハンバーガー入ってて拾っちゃったりとかwwダメだろw


そんな下らない世界観が割と人によって好き嫌いが出るらしく……会社の飲み会では意見が割れてました。僕は割と好きですよ?



昨日はまる一日、二日酔いで寝ていたので、ほんと何もしてない為、ブログくらい書こうとして早この時間……寝て起きては蕎麦を食い、アニメを見、また寝て……また蕎麦……そしてまた眠くなって寝て!!
ダメだ!ダメすぎる!!!!!!!!!


どうも、寝起きにドドリアとか見てしまった
ダメ大人系A10です。


はぁ……休みになにしてんだろう俺感が半端ないです。
でもドドリアはコメント付きとかで見るとマジ面白い。
学校なんてあたしが片づけてあげる!(物理)とかCMでさわやか。って言ってるだけとか、なんかいろいろぶっ飛んでるっすw


それから、一昨日の話ですが、会社で同期くらいに入った人が辞めてしまいました。
Android開発者の中ではすごいできる人だったし、いつも昼飯一緒に行ってたからすげー残念でした……。

で、めずらしくうちのチーム(ネイティブアプリ開発)がほぼ全員集まって
送別会に行ったんですよ。
そこで話題になったのが、昔はまったゲームの話。

PCでFFⅦがダウンロード販売始まったらしいですね!
http://store.jp.square-enix.com/detail/SEDL-1010?sscl=storejack_head_bnr1


しかも1000円となかなかお手頃!これは何度かプレイした自分も久しぶりにやりたくなるぞと。

これが出てた当時は中学二、三年生くらいだったので(もっと下かな?)、周りもみんなやってたし、自分も大好きでした!ただ、家にはゲーム機一個だったので兄貴がずっとやってましたが。見てるだけでもめっちゃ楽しかったなぁ……で、何故か兄貴は進めるのがめっちゃ早くて、学校の奴らがしゃべってる内容よりはるか先まで行ってました。みんなまだミッドガルド出てないのに、レッドXIIIの故郷とか着いちゃってるくらい。



そして昔ハマってたゲームの話に花が咲き、やっぱスマブラ最高よね、とかドンキーコング結構ハマってたわーとか言いつつ、最後にすごいお勧めされたのが「MOTHER2」

オリジナルはスーパーファミコンソフト。
英語だと「EarthBound」って言うらしい(Wiki)
そこで聞いた話だと、マザー2のシステムはポケモンの土台として引き継がれてるんだとか。
自転車システムとか、モンスターがそこらへんうろついてたりとか。

とにかくすげー面白い!とお勧めされ、僕と後輩君とまざつーやったことない二人でこりゃちょっとやるっきゃないでしょうという話になり、
Amazonさんのお世話になりました……!!
むしろ昨日はまざつー購入しか生産的行為してないorz

でも来るのは次の土曜日……!待ってるぜこんちきしょおおおーーー!


最後に宣伝っす。
サイト更新したので是非見て下さい!
IndulgentiaサイドA第八章その三を更新しました。




 罰を金に換えて罪を消せる世界
 財政難、治安悪化による収容施設の飽和状態を解決するために“罪罰換金法”が制定された。
 刑事罰を金銭で支払う事により前科すらつく事無く無罪となる事ができる――
 規律は金に、道徳は金に、命は金に価値を変えていく――
 持つものは権力の象徴として、持たざるものは格差の象徴として皮肉を込めて――


 ――この法律を、“免罪符”と呼ぶ。


ノベルサイト「螺旋ベーグル」
http://www.rasenbagel.com/