2012年12月31日月曜日

12/12/30(ゲームプログラマーになる前に覚えておきたい技術を読み終える)

○アンドロイドゲーム


触ると壊れるブロックの処理が完成しました。
壊れた後に飛び散った破片にあたるとoutになるようにしました。
当たり判定を別に作ったので、結構苦労しました。
アクションゲームを作るのは大変です。

後は、easyモードのステージ2を作りました。
1よりもいい出来になっていると思います。

今回は、操作を理解してもらうeasyモードとクリアするのが大変なnomalモードに分けて作ろう
と思っているのですが、だんだん分ける必要がないんじゃないかと思ってきました。

分けて作ると2倍時間がかかるし、完成しないのでモチベーションが下がる一方です。
あーーーー


○基本情報(1120,+40)


今日勉強して、データーベースsqlがまったくわからないことに気がついた。
その為に参考書買ったんだからやる。


○ゲームプログラマーになる前に覚えておきたい技術


バグの項目を読み終えてついに、全てを読み終えました。
当然のごとく全てを理解しているわけではありません。

本の中で、ここは自分でやってみなさい、という項目が何度もありましたが、
自分で作らずにソースを読んでいました。

ただ、全て自分で書くまで、読み進めないというやり方をしていたら、
むちゃくちゃ時間がかかると思うので、進め方は、自分のペースでいきました。


約2年前に購入して、大して見ないままホコリをかぶっていましたが、
やってよかったと思います。

やっぱり人のソースコードを真似したり、新しい考え方に触れないといつまでたっても
成長しないんだと、この本を見て感じました。

いままで、人のコードは読まないで来たので、これからはできるだけ本を読んで、
いいところを真似して技術を磨いていきたいと思っています。


必要そうなところは、また読み返したいと思います。

2012年12月30日日曜日

12/12/29(壊れるブロックを作る)

○アンドロイドゲーム

ブロックに触れると壊れるオブジェクトを作ろうと思ったが、まだできていません。
どうゆう風に作ろうかと考え中


○基本情報(1080,+40)

買ってきた参考書の2進数など、計算系の問題をやりました。
全部目を通すつもりです。

2012年12月29日土曜日

12/12/28(つまらない処理に時間を使う)

○アンドロイドゲーム

easyモードの1-2のステージ作りをした。
マップエディターでステージが大体決まった後に、一度倒した敵を復活させる処理を作ろうと思って、やり始めたんですが、この処理に一時間もかかってしまいました。

原因はforで敵の数分だけデバックしていたので、
死んで生き返る敵のメンバー変数の中身が4になるはずが、0,0,0と表示されるので、
なんで0になっちゃうんだと、原因を探していたことにありました。

forで回しているので、他の敵の変数がログに入っていることに気づかなかったのでした。
次は気をつける。


○基本情報(1040,+40)

ネットワークのところをやりました。
細かいところはわかりませんが、大体はわかります。


○ゲームプログラマーになる前に覚えておきたい技術


chapter25,26(付属ライブラリの使い方)(バグとの付き合い方)


バグは今javaを使っていて、c++は今後あまり使いそうにないので、newとかの
メモリ関連のバグはでなさそうです。

なので、あまり意味ないかも。

2012年12月28日金曜日

12/12/27(基本情報午前の参考書を買った)

○基本情報(1000,+50)

とうとう1000分突破。

今日は、午前中ようの参考書を買ってきました。

北見式イラストIT塾基本情報技術者というのを買いました。

イラストが多くて、見やすそうだったので、これにしました。

買っても買わなくてもよかったなという風にならないように気をつけながら勉強を続けたい
と思います。

値段は2000円ほどでした、高、

過去問とあわせて、3500円くらいお金をかけてます。
さらに午後も購入予定なので、5000円は参考書代で飛びます。
で、試験を受けるのに5000円かかるので、10000円はかかります。

勉強にかけた時間とお金を合わせて、ちゃんと対価が返ってくるかは、
数年後にわかるんだろうなー。


○アンドロイドゲーム


背景をやりました。
まあまあいいのができたんじゃないかと思います。
ネオンで作った文字にアルファを効かせて、点滅されているように見えるようにしました。

さらに、引数で文字列を入力したら、ネオン文字が描画される関数などを作って、
背景が華やかになるように努力しました。

効果があるかはわかりません。
個人的にはまあまあです。

2012年12月27日木曜日

12/12/26(背景を改良したかった)

○アンドロイドゲーム


背景を改良して見栄えのいいようにしたかったんですが、
なんかどれもいまいちになってしまった。
さぁどうしようか


○基本情報(950,+50)


表計算とかバックアップに関してやる。
表計算の絶対座標と相対座標の違いが始めてはっきりとわかった気がしました。
セルをコピペしてドラックしたりすると、相対座標も一緒に動いてしまうので、
絶対座標が必要なのだと初めて知った。
勉強になりました。


○ゲームプログラマーになる前に覚えておきたい技術


chapter24

floatの使い方


floatで計算するときの誤差の対処法とかを学びました。
正直全部は理解できなかった。
もう一回ゆっくりやらなければいけない。

もう少しで読破します。

2012年12月26日水曜日

12/12/25(色々あってできなかった)

今日は、イベントが色々あってできなかった。


○基本情報(900,+10)


システムテストのところ、暗記。

2012年12月24日月曜日

12/12/24(背景を書く)

○アンドロイドゲーム


ゲームの背景がさびしいので、また背景を書き始めました。
しかし、やっぱりさびしい気がする。

まぁ前のスクロールしないよりはましかと思う。

とにかく絵は時間がかかります。こんなことしてたら絵描きで終わってしまう。
一番伸びたいのはプログラムなのに....


○基本情報(890,+40)


システム開発のテスト関連の項目をやりました。
ここらへんはある程度問題を見て、答えを想像できるのでやる意味がないかもしれません。
もう少しでこの問題集も終わりそう。

というか終わる前に参考書がほしい。


○ゲームプログラマーになる前に覚えておきたい技術


chapter23ローディング


この章を読み終えました。
前半は難しくて、後半はマルチスレッドプログラムについて書いてあって内容は簡単です。
スレッドはjavaにも存在するので、今作っているゲームにも適応できそうです。

まぁ素材が小さいので、使う必要がないでしょうが。
ようやく終わりが見えてきました。

12/12/23(ステージ作り)

○アンドロイドゲーム

ステージ1-1作りと背景のマップ作りをした。

最初は背景いいなと思っていましたが、なんかだんだんしょぼく思えてきた。
まぁ背景すこしづつ頑張ろうと思う。

とにかくプログラムのスキルをあげたい。
あと、面白いものを作りたい。それだけです。


○基本情報(850,+20)


参照渡しとか直接渡しとかプログラム関係の項目をやる。
ここらへんは大丈夫

2012年12月23日日曜日

12/12/22(リフトを作る)

○アンドロイドゲーム


リフトを作りました。

左右上下に動いてキャラを動かしてくれるやつです。

ソースは前作ったのをそのままコピペしたのですが、当たり判定を変えたりなんかしたので、
ソースを適用できるように見直しました。

それに30分くらいかかったので、最初から作った方が早かったかもしれない。
半年以上前に書いたプログラムだったので、忘れてました。


今回、リフトを作ったことで、大体マップオブジェクト的なものが完成したので、
いよいよステージ作りに入ろうと思います。
でもまた追加するかもしれません。特に敵に関して。



○基本情報(830,+20)


17章プログラムの実行をやる。

ここは比較的大丈夫です。
どうやってコンパイルされるかなどの項目みたい。



○ゲームプログラマーになる前に覚えておきたい技術


chapter23ローディング


データーの圧縮方法とか、ロードをするときにいかに効率よくするかなどの話です。
容量のでかいゲームは作ったことがないので、いままでは気にしてない内容。
でもいつかはやらないといけない日が来るかもしれない。
内容はとてもむずいです。
まぁ後半の章は全般的にむずいです。



2012年12月21日金曜日

12/12/21(消える床)

○アンドロイドゲーム


消える床の実装や昨日作った大砲の処理に不具合的なものが見つかったので、直しました。
消える床の絵を描きましたが、また変えるかもしれません。

ようやく、部品がそろってきました。


○基本情報(810,+40)


16章のプログラム設計のところをやる。


用語が用語がほとんどわからないので、一から覚える必要がある。

STS分割

TR分割

ジャクソン法

同値分割

などの用語がたくさんでてきました。

実際に現場使っているのかがわからない。



2012年12月20日木曜日

12/12/20(大砲実装)

○アンドロイドゲーム


マップから出る大砲を作りました。
大砲から出る弾について、listを使おうかと思ったけれど、
遅かったりするんじゃないかと思って結局配列にしました。


○基本情報(770,+40)

開発に関しての用語の勉強をしました。


DFD,ERD,HIPOなどをやりました。


ただこれは古い本を参考にしているので、今問題としてでるかどうかがわかりません。
とりえあえずこの本を終わらせようと思います。

2012年12月19日水曜日

12/12/19(ステージ作り)

○アンドロイドゲーム


ステージを作った。
一つのマップを作るのに50分以上もかかってしまった。

絵を描くのが苦痛になってきました。


○基本情報(730,+50)


アローダイアグラム問題をやる。

問題集をやっているからか、説明が飛ばされているところがあるので、わからない。
テキストがいります。

12/12/18(へたくそだけど頑張って絵を描く)

○アンドロイドゲーム


昨日動物のドット絵を書いて、あまりのかけなさに絶望したけれど、
頑張ってなんとか絵を描いて、実装までもっていった。

頑張ってもへたくそですが、なんとか形的にはそうみえるので、現状で考えるとまあいいかと思う。

でも絵で疲れたのか、プログラムがなんだかめちゃくちゃになってしまった。
余裕ができたら見直したいと思う。


○基本情報(680,+50)

RAIDのこととかそこらへんをやりました。


2012年12月18日火曜日

12/12/17(動物が書けない)

○アンドロイドゲーム

敵で犬っぽいキャラクターをドット絵で書こうとしたら、
難しくて書けません。

まーましかと思った絵も、縮小してみてみるとやっぱり変でこれじゃ駄目だ。


少しはドット絵がうまくなったと思ったら、全然上達してなかった。

とにかく難しい。


○ゲームプログラマーになる前に覚えておきたい技術


chapter22,

遅くない衝突判定


ソートを使って、当たり判定の位置を並び替えて、衝突判定を行うという方法を知る。

これを見るまで、ソートしてやるなんて考えたこともなかった。
これも方法か。

ゲームプログラムは大変。


○基本情報(630,+40)


12,13章をやる。

このまま受けたら確実に落ちるなと思った。
午前が完全に知識不足です。

いつか午前の教科書的なものを買わないといけないなとあらためて実感しました。
なるべく安くすませたい。

2012年12月17日月曜日

12/12/16(浮遊敵)

○アンドロイドゲーム


ふわふわと浮いて弾を打つような敵を書いて、処理を書いた。
追加することがありすぎて嫌になってきた。


○基本情報(590,+40)

11章記憶管理

比較的わかった。

2012年12月16日日曜日

12/12/15(トランポリン処理)

○アンドロイドゲーム

頑張ってめんどくさくてやりたくなかったトランポリンの処理をやる。
がんばってなんとか作る。

トランポリンとは、ジャンプ力を増強できるびょんびょんするやつです。
それを実装するのに当たり判定を少し変更しなければいけなかった。
どんどん凡庸化してくればいいことなんですが、なかなかそうはいかなそうです。

場面に応じて作り方を変えないといけないかもしれない。


これで、いよいよステージ作りかと思いましたが、
まだまだギミックが足りないような気がする。

果てしない作業になってきそう。



○ゲームプログラマーになる前に覚えておきたい技術


chapter21

キャラクターが動き出す

を最後までやった。

内容的には、前の内容をちゃんと理解していないと理解できないようになってます。
よくわからないところを流し読みをして、2周目以降に実際に実装できれば言いと思います。

後半に進むにしたがって、難易度が上がっています。



○基本情報(550,+20)

タスク処理のところ、暗記です

2012年12月15日土曜日

12/12/14(魚処理)

○アンドロイドゲーム


昨日魚を書いたので、それを動かすプログラムを書いて実行した。
いい感じにクレイジーです。

後はトランポリンの処理をやろうと思ったけれど、意外と難しそうだし、
実際取りれて面白いかどうかわからないので、辞めるかもしれません。


○基本情報(530,+40)


タスク処理のところをやる、これも暗記です。

2012年12月14日金曜日

12/12/13(まねたほうがいい)

○codler(AOJ)

50.AppleAndPeach

難易度1


appleとpeachを文字列の中で見つけたらそれを交換しろという問題。
たぶんはじめての文字変換の問題でした。

今回から、自分が書いたやつも載せようと思います。
今は恥ずかしいレベルだけど、一年後にレベルアップを感じられたらと切に願う。


int main(void){
 char str1[1000];
 char str2[1000];
 bool bchange = false;
 char apple[6] = "apple";
 char peach[6] = "peach";
 cin.getline(str1,sizeof(str1));  // cinだとスペースまで記録されない
 for(int i = 0;i < 1000;++i){
  bchange = false;
  if(str1[i] == 'a')
  {
   for(int j = 0;j < 5;++j){
    if(j  + i < 1000)
    {
     //違う
     if(str1[j + i] != apple[j])
     {
      break;
     }
     //lastまでいった
     if(j == 4)
     {
      str2[i++] = 'p';
      str2[i++] = 'e';
      str2[i++] = 'a';
      str2[i++] = 'c';
      str2[i] = 'h';
      bchange = true;
     }
    }
   }
  }
  else if(str1[i] == 'p')
  {
   for(int j = 0;j < 5;++j){
    if(j  + i< 1000)
    {
     //違う
     if(str1[j + i] != peach[j])
     {
      break;
     }
     //lastまでいった
     if(j == 4)
     {
      str2[i++] = 'a';
      str2[i++] = 'p';
      str2[i++] = 'p';
      str2[i++] = 'l';
      str2[i++] = 'e';
      bchange = true;
     }
    }
   }
  }
 
  if(!bchange)str2[i] = str1[i];
 }
 cout << str2 << endl;
 return 0;
}


ごらんのとおりそのまんまです。

そのまんまのやつしか書こうとしてません。
最初に思いついた解答をそのまま書いて、どうやったら早くできるとか、
短くできるのかは考えてないです。

時間がもったいないから早くやるという風に考えてしまうのが問題です。


アルゴリズムの本にうまい人のプログラムを真似ろと書いてましたが、
答えがあってたらそのまんまという風にしないで、レベルが高いと思った人のを真似したいと思いました。

そうしないといつまでたっても、このままで終わってしまう。


今まで、誰かのを真似しろとか言われたことがなかったので、
自分で書いて思うように動いたらそのまんま、という感じでしたが、
これからは、人のいいところを盗んでものにしたいと思います。


○アンドロイドゲーム


魚の敵キャラの絵を書く。


○基本情報(490,+40)


記憶装置、レコードとかメンドクサイところをやる。
説明の絵図とかを見ないとわかんないっす。

なんか説明の載っている本とかが必要かもしれない。























2012年12月13日木曜日

12/12/12(12/12/12)

今日は、2012年12月12日でした。なんも変わったことはおきなかったです。


○アンドロイドゲーム

最近はプログラムを書きまくってます。集中できています。

別に難しくないけれど、必要なプログラム上の部品を書いています。
こういうことは、自動化してできないものかといつも思います。
ちょっと面白いんじゃないかと思ってきました。
ブログを更新しました。


○基本情報(450,+30)


4章アルゴリズムをやりました。


ソートの種類とかこの処理はなんていうソートなのかという問題など、
暗記ですね。


2012年12月12日水曜日

12/12/11(code書きまくる)

○アンドロイドゲーム


いろんな処理を書いていったので、なにをやったんだかいまいち覚えていない。
ということはたいしたことはやってないということです。

だんだんゲームっぽくなってきました。


○ゲームプログラマーになる前に覚えておきたい技術


chapter20

光が当たるということ


問題は最後のコードを理解できるかということだと思う。
難しかった。


○基本情報(420,+50)


この間買ってきた、過去問の午前問題をやった。
まだ不十分だと思った。

2012年12月11日火曜日

12/12/10(移動処理と敵の処理)

○アンドロイドゲーム


ステージからステージへと移動する処理を書いた。
本来はもっとかからないはずのところをだらだらとやってしまった。
それに見栄えがよくないというおまけつきである。
効率のいいのをみてまねるしかないけど、そのソースがないです。

後は敵の処理をやった。今日は書きまくった。


○基本情報(380,+20)


4章のアルゴリズムに入る。最初の問題はバブルソートだった。
あわあわわ

2012年12月10日月曜日

12/12/9(また背景)

○アンドロイドゲーム


またひたすら背景を書く作業をしました。
斜めの線とかを書いていたら案の定1時間くらいかかってしまった。
しかも時間のわりに見栄えがよくないし、あとは最初の画面などを決めたりしました。
まだ完全に決まったわけじゃないっす。
そろそろプログラムに移りたい


○基本情報(360,+20)

データー構造のところをやる。
2分木のところで間違えてしまった。
ばかでー


2012年12月9日日曜日

12/12/8(また背景作り)

○アンドロイドゲーム


また背景作りに邁進しました。
その結果ちょっとはましに見えるようになりました。

そして、ゲームのアイデアだしをしました。
だいたい方針が固まってきました。
これからどんどん変わると思うけれども



○codler(AOJ)


47.CupGame

難易度1


超久々にやりました。

簡単なはずで、答えがあっているはずなのにwrongAnswerになってしまう。
原因がわかりませんでした。問題を取り間違えているか、入力の仕方が間違っているのかの
どっちか。

他の答えを見たけれど、同じような感じだったので、わかりません。
ここがいけないって教えてくれたらもっといいんですが、

でも、相変わらずそのままなコードを書いてしまった。
でも考えると時間がかかるからすぐこうだと思いついたまま書いた方がいいような気もする。
そこらへんは経験だと思います。


○基本情報(340,+30)


データー構造のところに入りました。
いわゆるスタックとかキューとかの学習です。

問題ないです。

2012年12月8日土曜日

12/12/7(ミップマップを試す)

○アンドロイドゲーム


端の描画がうまくいかないので、用途が違うのでかわらないと思ったけど、
ミップマップを試した。

結果は変わらなかった。

というか、描画している画像の方にミスがあって、プログラムのせいじゃなくて自分のせいだった。
これで、4時間くらい無駄にしてしまった。
確認するべきことが違った。

原因がわかってよかった。


○基本情報(320,+10)

ビットシフトの問題、問題ないっす



○ゲームプログラマーになる前に覚えておきたい技術

chapter18,19,20をやる。


当たり判定の項目は中途半端におわってしまったみたい。
自分で考えろということでしょうか?
ゲームプログラムは奥が深いです。

2012年12月7日金曜日

12/12/6(テクスチャ処理わからず)

○アンドロイドゲーム


自分のゲームをスマホでやっていたら、画面端に白い線が描画されているのに気づいて、
家で直そうと頑張ったが、できなかった。

前にもあったが、前回は、画像の端を変な風に描画していたからだと思うが、今回は違う。

原因はfloatだと思う。doubleで描画したら解決されそう。

テクスチャサイズも2^nだし、問題ないはず。
原因がわからない。検索ワードもわからないし。


○基本情報(310,+10)


論理回路をやる。一問わからんかった。

今日は、過去問を買ってきました。4月までに全部やる

2012年12月6日木曜日

12/12/5(素材作り)

○アンドロイドゲーム


今日も絵を書く作業。

今後アルファベットが必要だと思われるので、前に作ってもらったアルファベットにネオンをかけて
背景にも使えるようにした。
なかなかいい感じになったと思う。


ただまだ背景がさびしいので、なにかしら足さないといけない。

今日はプログラムしてない。絵だけで終わってしまった。


○基本情報(300,+10)

5時間突入、まだ5時間しかやっていない。4月に試験だからそれまでに8割りとれるようにしないといけない。


論理問題をやった。
3問中3問間違えた。

でもこれでやりかたがわかったので、もう間違えないと思う。

2012年12月5日水曜日

12/12/4(ゲームを作りこみ)

○アンドロイドゲーム


取り組んだ背景をゲームにいかすべく、プログラムを書いた。
変には見えないけれど、なんかさびしい感じになってしまいました。

その後、弾のプログラムが画面端で消える処理にとりかかった。

考えられるように、頭を使うようなこともないようなことだったが、
ネットサーフィンしながら適当にやっていたら、なんかの不具合でなかなか
かけなかった。

結局書き上げるのに1時間もかかってしまった。
こんなことで1時間もかかるなんて、人生を無駄にしてしまった。

その後、背景を書き始める。つなげたらいい感じになったぞ。



○基本情報(290,+10)


ビット反転とかの問題。
ゲームプログラムでも良く使う分野だと思いますが、
数えるくらいしか使っていません。

これはレベルの低い証拠でーす。

2012年12月4日火曜日

12/12/3(背景やり直し)

○アンドロイドゲーム


昨日背景のプログラムで考え方をミスったので、修正してすごい見栄えの悪いものにした。
この背景表示方法を変えると当たり判定のやり方も変える必要があるので、
とりあえずしょうがないと思った。

まあ重くなっていないし大丈夫だと思う。


後問題は、ドット絵背景を書く能力だと思う。
実際に表示してみたが、背景っぽく見えません。
すぐそこにあるように見える。たぶん影とかつけないとそれっぽく見えないんでしょう。


○基本情報(280,+10)

演算、ドモルガンなどをいまさら使う

2012年12月3日月曜日

12/12/3(背景失敗)

○colder


「アルゴリズムの基本」という本で、シェルソートを学ぶ。

本に載っているやり方を元に実際にコードにしてみて実行してみた。
グループ化してソートするところがよくわからなかった。
この時のソートはバブルとかでいいのかな。
だれかのサンプルコードを見ないとひとりよがりになりそうです。


○アンドロイドゲーム


背景を実装するプログラムを書いてる途中に、不具合というか駄目な点を見つけて時間が
無駄になってしまった。

昨日考えたときは、これでいいじゃんと思ったけれど、実際にコードを書いてるときに
これじゃ駄目なことに気がついたけれど、とりあえず実装してみた。

それ以前に自分で作った描画関数の使い方を間違えていて、なんでできないんだと
ずっと考えていた。
色々時間を無駄にして馬鹿だと思った。

その後別のやり方を思いついたけれど、効率が悪い。
でも、自分の考えつくやり方なんて全部効率が悪いだろうから、
とりあえずそれでやってみることにします。


○基本情報(270,+5)


演算の項目をやる。

なんか失敗した。


今日は駄目な日だった。昨日エヴァ観に行ったからだ。

2012年12月2日日曜日

12/12/1(evaQを見に行った)

エヴァを見に行った。
予想していた展開とまったくちがってよかった。
話をまったく聞いてなくてよかった。
そうじゃないと面白さが半減してしまう。
最後をみて、なんかもう終わりでいい気がした。
この後どうやって盛り上げるんだろう?
最後も見るけれども


○ゲームプログラマーになる前に覚えておきたい技術


chapter18

立体の衝突判定を読みました。

相変わらず難しい内容でした。久々に読むと前の部分がよくわからなくなってきてしまう。
一回では身につかないので何度か読んで、実際に自分のゲームに組み込んでみないと使いこなせないと思う。

とりあえず、3dで作る予定はないので、当分必要ないのかな。
でもいつかはやりたいです。

というか、2次元でも応用できますね。



○基本情報(266,+10)


ディスクの読み込みとか書き込みのとこ、ここら辺は問題をやって慣れるしかないと思います。

2012年12月1日土曜日

12/11/30(43Puzzle)

codler(AOJ)


43.Puzzle

難易度2


データー入力の仕方がわからなったので、答えをみた。
そうしたら、コードの量が長かったので、自分が考えた方法では駄目なのかもしれないと思った。
いけると思いますが。

いままでの簡単なやつと比べたらちょっと難しいんじゃないでしょうか。


○基本情報(255,+20)


ディスクの書き込みの部分をやる。
ここはしっかり覚えないと得点にならないと思った。
問題をこなそう

2012年11月30日金曜日

12/11/29(背景を書く)

○アンドロイドゲーム


背景のマップ作り、一応納得のいく背景の一つができた。
後は実際に描画して試してみる。


○基本情報(235,+5)

cpuの基本

2012年11月29日木曜日

12/11/28(レコード(基本情報))

○基本情報(230,+30)

今日はレコードのところをやりましたが、覚えられそうにないので
記入しておく。


総ブロック数


コード数 / ブロック化因数


1ブロックの記録に必要な容量


ブロックの長さ + IBG(Inter Block Gap)


1トラックに記録できるブロック数


1トラックの容量 / 1ブロックに必要な容量


必要なトラック数


総ブロック数 / 1トラックに記録できるブロック数


必要なシリンダ数


必要なトラック数 / シリンダ当たりのトラック数


次は.....



△平均アクセス時間の求め方


□平均アクセス時間


平均シーク時間 + 平均回転待ち時間 + データー転送時間


□平均回転待ち時間

 
ディスクが1/2回転する時間


□データー転送時間


ディスクが「データー分」回転する時間



実際に記録されている様子とかを見ると意味がわかるんだと思う。
そうじゃなきゃ暗記地獄です。やる気をそいでくれる。


○codler(AOJ)


20.Capitalize

難易度1
知識問題


入力された文字列が小文字だった際に大文字に変換せよという問題。
文字の並びをしらないと解けない問題ですが、これは常識なのでしょう。

いくつずらすんだっけか、と思いましたがネットで調べてなるほどと思いました。

char s[length]

として、

s[0] += 'A' - 'a';

とすれば文字の長さがいくつかわからなくても変換できることに気づきました。
というか、aからzまでの長さでいいじゃないかと今思った。








2012年11月28日水曜日

12/11/27(ネオン)

○codler

アルゴリズムの基本という本を読んでいる。
とても簡単な本です。

その中ではじめて知ったこと、


グラフ、フィボナッチ数列、ワーク変数、バケットソート


□ワーク変数は値を入れ替えるときに使う変数の総称だそうです。


int a,b,c;
a = 1;
b = 2;

c = a;
a = b;
b = a;


この時のcをワーク変数というそうです。
呼び名があったなんて初めて知った。


□バケットソート


バケットソートはソートの方法です。
なんとソートするにあたって全てのデーター範囲をあらかじめもっておくという方法だそうです。
普通はこんなこと考えないと思う。馬鹿だと思われるだろうから。


○アンドロイドゲーム


今回も素材作り、背景用のマップチップを書きました。
gimp2を使って、ネオンを酷使してなんとか光っているぽいマップを作る。
なのでプログラムはしていません。


○基本情報(200,+15)

200分突入、まだ三時間くらいしかやってない。
4月が本番だからたぶん問題ない。
メモリの仕組みをやる。




2012年11月27日火曜日

2012年11月26日月曜日

12/11/25(背景に乗り出す)

○codler(AOJ)


33.Ball(難易度1)


ボールを積んでいく問題、特に難しいところはなかったけれども、
自分は入れものを二つ使ったが、他の人のコードを見ると一つしか使っていなかった。

自分は問題の解法を直線的にしてしまうので、もっと効率というか容量とかを食わないように
気をつけながら書かないと意味がないと思った。

でも自分でかけないことはしょうがないか。
とにかく人のいいところをまねしないということはわかってます。
なかなかできないけれども。


○アンドロイドゲーム


めんどくさくてやりたくなかった背景を書くことをはじめた。
とりあえず今回は初の2重スクロールにしようと思っているので、頑張ってみようと思う。


○基本情報(175,+20)


10章タスク管理


正直よくわかりません。


2012年11月25日日曜日

12/11/24(背景の取り組む)

○codler

「アルゴリズムC」

木探索の部分を読む、用語がいっぱい出てきてよくわかりません。
実際にサンプルコードを読まないとわからないかもしれない、読んでもわからないかもしれない。

もっとジャンキーな本がないかなーと思う。



○ゲームプログラマーになる前に覚えておきたい技術


chapter18.立体の衝突判定


とうとう内積と外積が登場する。
プログラムにおいての数学の大切さを痛感しました。

こういう内容が使えるようになって初めてゲームプログラマーといえるようになるじゃないだろうか?
でも今は中身がわからなくても、ライブラリーがあればできるし、どうなんでしょうか。
もちろん使えるようになりたいです。


○アンドロイドゲームプログラム

棘のオブジェクトは作りたかったので、そのプログラムを書いた。
後は、背景のアニメーションとか、絵図らのほうをどうしようかと色々考えた。
やっぱりアニメーションしていないとゲームとしての寂しさはぬぐえないし、
取り入れるべきだと思う。


問題は絵に時間がかかることである。そのあたりをどうにかしたい。
とりあえずアイデアを考える。


○基本情報(155,20)

プロセッサの仕組み、暗記物です

2012年11月23日金曜日

12/11/23(ゲーム弾の処理)

○colder(AOJ)

60.Card Game

難易度1


ブラックジャックのプログラムを書けというものかと思ったら、
前半の前置きはほぼ関係なかったというがっかり問題だった。
相変わらず見栄えのあまりよくないプログラムになってしまったが、これはしょうがないと思う。


○基本情報(135,+15)


6章プロセッサの仕組み

アドレスの指定方式などをやる。覚えることがありすぎる


○アンドロイドゲーム


弾の発射処理のプログラムをする。
マップとの当たり判定をとりあえず取り入れる。
敵はまだやっていません。

12/11/22(t66.TicTacToe)

○codler(AOJ)

66.TicTacToe

難易度1


○×の書いた文字列が与えられて、勝敗を判定するプログラムを書く問題。
とくに難しいところはないですが、短くしたり効率よくするならば色々とやり方があるのでしょう。

自分は、そのまま配列を使って、なにも面白みのないものをそのまま書きました。
これじゃ成長しないな

後、アルゴリズムCを読んだ


○アンドロイドゲーム


アイデアを考える、そしてスクロール処理を入れようかどうか迷う。
さらに、背景を2重にするにはどうしたらいいか考える。絵的な意味で、

普段から考えるようにしようと思う。


○基本情報(120,+30)

コンピュータシステムの部分をやる、わからない単語がかなりでてきた。
なんでも覚えなきゃいけないんだなと落胆。


□命令レジスタ


主記憶から取り出した命令を格納するためのレジスタ。


□フラグレジスタ


演算結果の正負や、比較命令の実行結果の大小関係に応じて値が格納される。


□プログラムカウンタ


現在実行中の命令や、次に実行する命令が格納されている、主記憶上のアドレスを保持する。
命令アドレスレジスタとも呼ばれる。


□アキュムレーター


演算対象となるデーターや演算結果を保持する。


□インデックスレジスタ


インデックスアドレス指定方式で用いるレジスタ。


□ベースレジスタ


ベースアドレス指定方式で用いるレジスタ。



2012年11月22日木曜日

12/11/21(当たり判定直す)

○codler(AOJ)

28(ModeValue)難易度1


最頻値を求める問題、当然すぐできる問題だったが、入力条件を考えてたらすぐできなかった。
どんな状況で終わるかが書いてないからわかりません。
EOFで終了するようにした。

思ったよりもぐだぐだなコードになってしまった。スマートな書き方がしたいけど、
これは本で勉強するしかないなと思った。


○アンドロイドゲーム(当たり判定)


昨日作った当たり判定に穴があったので直しました。
直した結果、if文も減ったし、結果コードの量も減ったわでいいことづくめだわ^-^、
早くこうゆう風に書いてればよかったと思ったけど、いままで作ってきたからこそわかったことなのだとも思った。

絶対にもっと効率のいい書き方があるけれども、どんどん進みたいからとりあえず放置する。


○基本情報(90,+45)

昨日もやっていたが、書き忘れていた。

今日の知らないワードは、


オートマトン、メジアン、相関係数、BNFであった。

一応全部覚えたけれど、また忘れるわ


メジアン:


整列したデーターの中で中央に来る値のこと。



これだけ知ってれば大丈夫


2012年11月21日水曜日

12/11/20(ゲームの当たり判定を見直す)

○codler

アルゴリズムCの本をやった。

今日はおなじみのstackやqueueなどをやる。
いつかこうゆうのを使うときがくるのでしょうか?


○アンドロイドゲーム制作


今回作るのもアクションゲームですが、またまた当たり判定をみなすことにしました。

X軸方向の移動に対する当たり判定を見直しましたが、一年前から作り始めてきた
アクションゲームもだいぶ作り方がわかってきた感じです。

今回は好きな移動量でもめり込まないようなプログラムを書きました。
今までは、移動量が一定量で固定でしたが、今回はすきな移動量でもめり込まないような
プログラムを書いてみました。

まあ一人で考えているから時間がかかるのはしょうがない。
改良を加えて少しづつましになっている感じがします。

やっぱりなんか作るのは楽しい

2012年11月20日火曜日

12/11/19(三角関数)

○codler(AOJ)

三角関数の問題、要約すると。
またtimeoverになってしまった。
原因は、入力の取り方が間違っていて、無限ループに陥っているみたいだった。

この間のtimeoverもたぶんこれが原因だろう。


○基本情報(45,+5)

値のとり方の問題をやる間違えましたので、ここに乗せておきます。


○平均値:


データーの総和 / データー数


○中央値(メジアン):


データを値の大きさの順に並べたとき、
中央に位置するデーター値


○最頻値(モード)


度数(現れる頻度)のもっとも多いデーター値


○分散


(データー値 - 平均値)^2の総和 / データー数


○標準偏差


ルート(分散)


これは常識なのだろうか








2012年11月18日日曜日

12/11/18(アルゴリズムC)

codlerで問題を解いていても新しい知識はなかなか身につかないので、
アルゴリズムCも一日おきに読むことにしました。

○codler(アルゴリズムC1巻)

素数のふるい問題や、循環リストの作り方など


○基本情報(40,+30)

進数問題と確率問題など

12/11/17(基本)

○基本情報(+5)

進数変換問題

2012年11月17日土曜日

12/11/16(原因がわからず)

○codler(AOJ)

15.National budgetをやる。


答えはあっているはずなのに、なぜかtimeOverになってしまう。
forだって100回しか回してないし、自分の環境ではちゃんと実行できるのに原因がまったくわからない。なにか依存しているのかな


○基本情報(10,+10)

進数の変換



2012年11月16日金曜日

12/11/15(基本情報技術者試験を受けることにした)

IT系の資格を何も持っていないので、基本情報試験を受けることにした。
いまさら意味ないんじゃないと思われるけど、最終的にネットワークスペシャリストの資格を取りたいので、そのステップの一つとしたいと思う。
一日15分以上は勉強したい。


○codler(AOJ)

integral

つまりは積分の問題、恥ずかしながら答えを見るまで問題の意味がわからなかった。
理解力が足りません。どうしようもない


○ゲームプログラマーになる前に覚えておきたい技術

chapter17が終わって、chapter18立体の衝突判定に入った。

なんか、最初から難しいです。覚悟しないと理解できないな。



○基本情報

2進数の簡単な問題



2012年11月15日木曜日

12/11/14(アルゴリズムCを借りた)

図書館でアルゴリズムCという本を借りた。
アルゴリズムを説明した、基本的な本らしいです。

ぱらっと見ると章末に問題が載っていますが、答えのソースが書いていない。
ネットにソースが載っているみたいです。
とりあえず読み進めようと思う。


○codler(AOJ)

videoTapeの問題、難易度1の問題だが、勘違いして間違えた。

アルゴリズムCの本をぱらっと見る。


2012年11月14日水曜日

12/11/13(スタック問題)

○codler(AOJ)

AOJとはAize Online Judge のことだそうです。

今日は問題番号93,13をやりました。

13はスタックの機能を説明するような問題で難易度1、
93はうるう年のプログラムを書く問題でこちらも難易度1。

問題が先に進むにつれて、難しくなるのかと思っていたらそんなことはないようです。
後は、STLにもstackクラスがあることをはじめて知りました。


○アクションゲーム作り

自キャラの設定やクラスの関数を整理するなどの作業をした。
とりあえず動かしてみて、気に入った動作を取り入れようと思う。

2012年11月13日火曜日

12/11/12(三角形の中に点があるかどうか)

○codler


見出し通りのプログラムの問題をやった。

図に描いてやってみてもうまい解法が見つからなかったので、ネットで検索したら
非常に簡単に求められる式を発見した。
それはcodeに直すのが簡単だったので、codeに直して解きました。

三角形以外にも多角形にも対応できる方法があるみたいです。
数学を知っている人のほうが確実に有利だと思いました。


○ゲームプログラマーになる前に覚えておきたい技術


chapter17

遅くないコードを書くために


stlの使い方や、inlineのメリットデメリットなどを学習。

stlのmapはプログラムの問題でも使っているのを良く見るので、覚えておいたほうがいいかもしれない。


行数を短くするには、vectorもいりますね。遅いですけど

2012年11月11日日曜日

12/11/11(あみだくじ問題)

○codler

今日は、あみだくじ問題をやった。
やり方はわかるのですが、なぜか解答が合わずに色々やっていたら、50分も経ってしまって
解いたのが1時間後だった。

正答率80%くらいの簡単な問題のはずなのに、なにやってんだか。
頭が悪い


○ゲーム制作


新しい部分の入力部分などを、分業化したりした。
まだ最終的なコントローラー処理を決めたわけではありません。

いまのところジャンプと移動だけのシンプルなやつを作ろうと思っています。
後死にげーであること。

本来はこっちを優先しないとけない

2012年11月10日土曜日

12/11/10(2次方程式)

○codler

プログラムの問題で、2次方程式を使う問題をやった。

どうやって2次方程式を求めてめればいいのかよくわからない。
自分の頭でやればすぐ出てくるのに、

そういえば、そんなこと考えたこともありませんでした。

学ぶことがいっぱいあります。

12/11/9(素数)

○codler

今日は素数に関する問題をやった。

入力した数字が10だったら、0,1,2...10の間にいくつの素数があるかを出力する問題でした。

まあforで全部調べればそれで終わりなのだけれど、当然TimeOverになってしまうので、
それは駄目です。

それで、素数を調べてみると求める方法がいろいろあることがわかりました。
でも、疲れたので効率のよい方法はおいておいて、とりあえず自分で作りました。

そしたらよくわからないけど、wrong answerになってしまう。
原因がわからないので、答えのソースを見さしてもらったら、中で処理がよくわからないことをしていた。
たぶん調べればわかるようになるはず、
自分の知らないことがいっぱいあった。

世の中と同様に

2012年11月9日金曜日

12/11/8(切り上げ問題)

今日は、頼んでいたjavascriptでゲームを作る本が届きました。
今は、androidでゲームを作ることにしたので、ちょこちょこみていきたい。

○codler

1000未満の数字を切り上げるという問題をやりました。
まず、切り上げるという言葉の定義があいまいだったので、調べることにした。
そうしたら、自分の考えてる切り上げるという言葉の定義とは違っていて、
問題を何度か間違ってしまった。

あいまいにやっていたことがわかってよかった。
プログラムの問題を解くのは、色々いい方向に働きそうだ。


○ゲームプログラマーになる前に覚えておきたい技術


chapter17

キャッシュメモリの考え方とか、実際にどういう風にメモリが使われるかの学習をした。
そんなこと考えたことがなかったので、勉強になった。


○自作ゲーム


絵が出るようにした。アイデアだしをした。

2012年11月8日木曜日

12/11/7(最小公倍数、最大公約数)

○codler


問題で、最大公約数と最小公倍数を扱ったものやった。

まず、両者の意味をわすれてしまったので、調べた。

/*
 2つ以上の正の整数の共通な倍数(公倍数)のうち最小のものを最小公倍数といいます.
 例 2 と 3 の公倍数は,6,12,18,24,... で, 6 が最小公倍数
*/
/*
 2つ以上の正の整数に共通な約数(公約数)のうち最大のものを最大公約数といいます.
 例 12 と 18 の公約数は,1,2,3,6 で, 6 が最大公約数
*/
ということで、codeはforでやったら、時間オーバーではじかれた。
素因数分解すればいいだけなのに、プログラムにすると直感的にできないから難しいです。

答えを見て納得して、書きました。


2012年11月7日水曜日

12/11/6(スタック)

○codler


この日もスタックというかリスト系の処理をやった。

そして、C言語によるはじめてのアルゴリズム入門という本で、スタックの部分を勉強したが、
説明が少なくよくわからない。
もともとわかっているけれど、説明が少ないと思う。
あとちょっと変な気がする。

そんな感じでアルゴリズムを勉強中。


○ゲームプログラマーになる前に覚えておきたい技術


 chapter17遅くないコードを書くために


ちょうどアルゴリズムとかデータ構造をやっているのでどんぴしゃの内容で大変勉強になります。
先の本と比べて解説も詳しいし、サンプルコードにもコメントが記載されているので、
理解に困ることはありません。

その中で2分検索のやり方が出ていたが、そういえば学校で前習って、実際にコードを書いたことを思い出した。その頃は気づかなかったが早いのか。

codlerの探索問題につかえますな。


○自作ゲーム


主人公のデザインなどを考えた。少し内容が決まった。
ちょこちょこ書いている。

2012年11月6日火曜日

12/11/5(風邪気味)

○codler


スタックの問題をやる。というよりも、問題文の入力の仕方がわからなかったので、
答えを見てしまった。

プログラムがわからないわけではないので、良しとしました。
わからないのもあったけれど、


○game


新しいゲームをandroidで作ることにした。
アイデアなどを考えた。

2012年11月4日日曜日

12/11/4(stackなど)

○codler


スタックを使う問題やソートの問題などをやった。

スタックは最初にプログラムを勉強して以来やっていないし、使ってもいないので、
使い方を忘れていた。
そうゆう風に考えるといろいろなところが抜けていると思い初めてきて、いままでなにをやってきたのかと思いたくなった。
ちょうどいい機会なので、こういうことに強くなりたいと思いました。
いまさらやるのでなくて、今からやるのである。

後、一日一問を最低ノルマにして、2問くらいは毎日やろうと思った。


○ゲームプログラマーになる前に覚えておきたい技術


chapter16が終わって、chapter17の遅くないコードを書くためにに入った。

ちょうど今codlerでアルゴリズムとかをやっているので、いい勉強になると思います。
頑張ろう

12/11/3(ソートなど)

○Codler


今日は新しいことがいっぱいあった。

まずは、バブルソートをやって、その後にSelecionSortをやった後に逆ポーランド方式の問題などをやった。

問題の解き方がわからないといういうよりも、cinやstringを使う場合のやり方がわからなくて困ることが多かった。たぶん問題ではstringを使うことが多くなるから、しっかり使いこなせるようにならないといけない。
そう思ったけれど、stringは遅いからあんまりつかったらいけないのかもしれない。
後は、100円でCのアルゴリズムの本を買ってきた。
問題のパターンを覚えて、解ける問題を増やして、早く解けるようになりたいです。


○javascript


関連の本を注文していますが、洋書なので届くのに半月くらいかかるみたいです。
失敗しました。
なにやろうかな

2012年11月3日土曜日

12/11/2(ソートに入った)

○ゲームプログラマーになる前に覚えて起きたい技術


chapter16:xmlもどきを読むの章

こういうことをひたすらやった記憶がよみがえってきた、退屈だしうまくいかなかった時の脱力感といったら、言葉では表せません。

とはいえ勉強になった、むずかしいですけど。


○codler


今日はソートのところに突入した他、いろいろな問題をやった。
ほとんどは考えるというよりも、C++の機能を知れば簡単に解けるけど、知らないと時間がかかるよ、という問題だった気がする。

後、範囲制限はほとんど気にしなくていいということがわかりました。
例外処理はしなくていいみたいです。


ソートはバブルソートくらいしか、名前と方法が一致するものがわからない。
この程度でどれくらいわかるようになるか。

2012年11月1日木曜日

12/11/1

○codler


会津大学の問題をひたすら解いた。
とりあえずの目標は高校生用のプログラムコンテストの問題が軽くとけるようになること、

ソートとか、プログラムの問題とかは、初めてプログラムを覚えはじめてちょっとやったくらいなので、そういう経験を身につけたい。楽しいし

12/10/31

○javascript


ネットで文法などを確認した。
最初はクラスが作れて、基本的なことがわかればいいと思っていましたが、
garbageが意外なところで発生することを知ったら、うすっぺらではいけないことに気づいた。
あーメンドクサイ、つくれない


○ゲームプログラマーになる前に覚えておきたい技術


chapter15ライブラリーの作り方を読み終えた。


今のところライブラリーを作ることはないだろう思う。
でも参考になりました。
これは他の色々なプログラムの本と比べても良書です。
一番いいです。


○codler


会津大学のプログラムテストサイトに登録して、
色々プログラムを打ちました。


c++はなかなか使う機会がないけれど、これで使うことになりそう。
やっているだけで楽しいです。
もっと早く出会えばよかった。


とりあえず、しらみつぶしに問題をやって、レベルを上げていきたい。
でも、ゲームプログラムに役立つかどうかは不明、あまり効果はない気がする。

2012年10月30日火曜日

12/10/30

○javascript

webで調べるのがめんどくさくなってしまったので、javascriptでゲームを作る本を購入することにした。2600円です。高いです。
この言語はゲーム作りに向いていません。(私見)

12/10/29

○javascript

webglのゲーム上で発生してしまう、garbage collectionを解消するためにjavascriptを調べる。
requestAnimaionFrameでも書き方によっては、garbageが発生してしまうらしい、funciton()で呼んだだけで発生してしまうそうだ。
実際にメモリが毎フレームで発生していた。

結局書き方がわからなかった。色々書き方があってメンドクサイ。
javascriptはちょっとなー


○algorithm

「プログラミングコンテストチャレンジブック」

ちょっとやった。


○ゲームプログラマーになる前に覚えておきたい技術


423p-436p

chapter15ライブラリーの作り方に突入した。
丁寧に全てを理解するつもりでやるというよりも、一通り理解するというつもりでやる。

初投稿

オールランドゲームプログラマーを目指すプログラムの勉強日誌を書いていきたいと思います。
毎日書くのが目標ではなくて、成長するのが目標です。