2009年11月13日金曜日

プログラミング言語 Go をいじってみました

Googleが新しくプログラミング言語Goを発表したので、
以下の2つのサイトを参考にインストールしていじってみました。

早速 Go 言語を試してみる! - IT戦記
The Go Programming Language

環境はMacOSX 10.5です。

まず作業用ディレクトリを作成する。
$ cd ~
$ mkdir go
$ mkdir bin

次にPATHを設定する。~/.bashrcに以下を追加。
export GOROOT=$HOME/go
export GOOS=darwin
export GOARCH=amd64
export GOBIN=$HOME/bin
export PATH=$GOBIN:$PATH

MercurialをインストールしてMercurialリポジトリからチェックアウトしてくる。
$ sudo easy_install mercurial
$ hg clone -r release https://go.googlecode.com/hg/ $GOROOT

ビルド
$ cd $GOROOT/src
$ ./make.bash

これでインストールは完了。

また~/$GOROOT/misc/emacs/にgo-mode-load.elとgo-mode.elがあるのでelisp(~/.site-lisp)にコピーし、.emacs.elに以下を追加することでEmacsでgo-modeが使えるようになる。
(require 'go-mode-load)

それでは恒例のHello, World!を書いてみます。
Hello.go

package main
import "fmt"
func main(){
fmt.Printf("Hello, World!\n")
}


コンパイル、リンク、実行してみます。
$ 6g Hello.go
$ 6l Hello.6
$ ./6.out
Hello, World!
$

コンパイルコマンドは環境によって変わってきますので注意が必要です。

ついでにFizzBuzzも書いてみました。

FizzBuzz.go

package main
import "fmt"
func main(){
for i := 1; i <= 100; i++ {
if i % 15 == 0 {
fmt.Printf("FizzBuzz ");
} else if i % 5 == 0 {
fmt.Printf("Buzz ");
} else if i % 3 == 0 {
fmt.Printf("Fizz ");
} else
fmt.Printf("%d ", i);
}
}
fmt.Printf("\n");
}


とりあえず、if-elseのとこでわざわざ中括弧が必要なのと
PrintfのPを大文字にするのが面倒でした。

2009年11月8日日曜日

[レビュー] PSP go

そろそろPSP goのレビューでもしておきます。

■ 本体サイズ
本体のサイズは手のひらサイズで非常に気に入っています。
ただディスプレイの下部にPSPの文字が入っていて、この部分も
ディスプレイに含めて欲しかったです。

■ 充電回り
充電回りは不満ばかりです。
まずACアダプターが横長で邪魔なところ。
次にUSBケーブルが短から充電しながらプレイするのは結構つらい。
最後に、これはPSPシリーズ全てにいえることですが
USBをPC等につないで充電する場合、PSPの方をUSBモードにしておく必要があるので充電しながらゲームがプレイできない。しかもACアダプターで充電するよりUSBで充電するほうが充電時間がかかるので外で充電する用に常にACアダプターを持ち歩かなくてないけない。
うーん、充電回りは今後に期待?かな。




■ バッテリー持続時間
ゲームプレイ時では4〜5時間程度持ちます。
動画再生時や音楽再生時についてはまだ行っていないのでわかりませんが、
説明書には3〜5時間と明記してありました。

■ インストール時間
PSP goは完全ダウンロード制なので、ゲームをプレイする際は
PlayStation Storeからゲームをダウンロードしてプレイします。
実際にダウンロードからインストール終了までにかかった時間を
環境と一緒に載せておきます。

対象 : ファイナルファンタジーVII インターナショナル
容量 : 1715MB
回線速度(下り) : 37.534Mbps(4691.83kB/sec)
ダウンロード時間 : 27分
インストール時間 : 30分

■ Media Go
Media GOはPlayStation Storeからダウンロードしたゲームや
PSPでのメディアファイルの管理を行えるPC用ソフトです。
まあiPhoneでいうiTunesみたいなものと思ってもらえばいいと思います。
ただこのソフト、動作環境がWindowsXP SP3(32ビット版のみ)以降、Windows Vista(32ビットまたは64ビット版)となっていてOSXだと使えません。ということで自分は使いたくても使えないという...
OSXで動作しないとか本当にクソだと思います。


今度SCEの会社説明会に行くので、ここら辺の不満点でも言ってみようかな。

2009年11月6日金曜日

go

あ…ありのまま 今 起こった事を話すぜ!
                
『PSPgoはUMDのゲームが出来ないから買うわけねーじゃんと思ってたら
 いつのまにか2万6千円払って購入していた』
       
な… 何を言ってるのか わからねーと思うが

おれも何がおこったのかわからなかった…

頭がどうにかなりそうだった…

催眠術だとか超スピードだとか

そんなチャチなもんじゃあ 断じてねえ

もっと恐ろしいものの片鱗を味わったぜ…


2009年11月5日木曜日

風邪がなかなか治らない

先週の金曜から風邪を引いてるんですが、いっこうに治りません。

熱はないのですが、喉が痛いのと咳がひどいのがつらいです。

一昨日ぐらいから一気に寒くなったし、体調管理はしっかりしないといけないなと思った。

来年は就活なのでいっそう体調管理には気を使わないといけないな。


話は変わるんですが、また今年も学祭中庭でアニソンとか演奏することになりました。

本番は再来週だというのにまだ曲とかコピーしてないやら練習不足やらで不安だらけです。

大丈夫かな〜??

2009年10月17日土曜日

iPhoneSDKでノベルゲームは大変なのだ。

iPhoneSDKでノベルゲームを作っていて、これはノベルゲーム開発用のフレームワークがないとほんとつらいなといろんな場面で思う。たとえば背景画像やキャラ画像、また音楽ファイル分インスタンスを生成してるときや、シナリオ(文章)をいちいち配列に入れてるときです。他にももっといい方法があるとは思いますが、僕は今のところこのやり方しか知らないので本当にコピー&ペーストの連続です。

一番やっかいなとこは、ボタンを押してシナリオを読み進めていくとこで、ボタンを押した回数によって場面場面を切り替える処理を全てswitch文で書いてるとこですかね。このままいくとswitch文が何千行となってしまう。

誰かいい方法しってたら教えてください!たのみます!

2009年9月26日土曜日

しばらくぶり

ここ一ヶ月twitterにばっかり書き込んでたのでしばらくぶりに

こっちに書き込んでみる。


といっても何も書く事ねーわw



そーいえば、最近コミケに向けてゲーム開発を始めた。

前と同様ノベルゲームです、はい。

今はとりあえずシナリオとBGMをいくつか仕上げて

絵師を探すことが先決となってる。


研究に就活、その他もろもろやることがあって忙しいと思うが

これから気合いをいれてがんばっていきますかー


2009年8月7日金曜日

病気

twitter病にかかってしまった。

twitterに接続できなくて落ち着きません。

2009年7月31日金曜日

今期見るアニメ

  • 青い花
  • 大正野球娘
  • ファントム
  • バスカッシュ
  • うみものがたり
  • はがれん
  • かなめも
  • canaan
  • 化物語
  • ハルヒ
  • 宙のまにまに
  • うみねこのなく頃に
  • GA
  • 狼と香辛料
  • シャングリラ
  • よくわかる現代魔法
こんな感じかな。これは暫定であって、他に面白いのがあれば
適宜追加していく予定。

2009年7月10日金曜日

firefoxからsafariへ

現在自分が主に使っているブラウザはFirefoxなんですが

そろそろsafariに移ってもいいかなっと思って移行しました。

Firefoxを使っていた一番の理由はAutopagerizeがあるからなんですが

safariもgreasekit入れれば難なくできたので、よかったです。

safariでautopageしたい場合はこちらを参照してください。

2009年7月3日金曜日

バブルソートを覚えた。

最近アルゴリズムの勉強はじめたので、少しずつアウトプットしていこうかと思います。

今回はバブルソートについて。

バブルソートはリストにおいて最後尾の要素を基点として、隣同士の要素の値を比較して条件に応じた交換を行う整列アルゴリズムです。

条件とは値の大小関係です。「値の大きい順(降順)」か「値の小さい順(昇順)」にリストを並び替えます。

このソートを実行すると値の大きいまたは小さい要素が浮かびあがってくるように見えることから、バブル(bubble: 泡)ソートと呼ばれているそうです。

例として、ある数値の集合を降順にソートします。


int x[7] = {5, 4, 3, 0, 10, 15, 6};
int i, j, tmp;

for (i = 0; i < 7-1; i++){
for (j = 7-1; j > i; j--){
/* 前の要素の方が小さかったらswapする */
if (x[j] > x[j-1]){
tmp = x[j]; 
x[j] = x[j-1];
x[j-1] = tmp;
}
}
}


(結果)
x[7] = {15, 10, 6, 5, 4, 3, 0}

となる。