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をやる。


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