ゲームプログラマ志望が福岡で叫ぶ 『絶望』 -53ページ目

ゲームプログラマ志望が福岡で叫ぶ 『絶望』

プログラマーになりたい!!!!! あ、風のうわさで聞いた最近若者で流行っているトゥイッターなるものを始めてみました (・ト・) @toshi_desu_yo

イカ娘終わったァァああああああぁぁああああああああああああああ!!!!

さようなら・・・ イカちゃん・・・ ( ´Д`)ノ~バイバイ



個人的には結構楽しめたアニメでした~。(´∀`∩)↑age↑




荒川アンダーザブリッジも面白い・・・ 


最近さらに面白くなってきたな!!!Σ(; ゚Д゚)


ピー子が結構好き。(・∀・)  こういう子、友達にほしーわー

 


まぁ、女性の友達なんて数えるほどしか!!・・・・・  ・・・いるのか? 




-----------------------------------------------

-----------------------------------------------


で、今回はプログラムもやります。(゚∀゚)

  今先ほど 共用体 を使ってて出たエラーについて書いていこうと思います。



まずは共用体について。




  【  共用体  】


 『 共用体とはメモリを共有するのじゃ!! 

 囲んだ変数の中で一番大きい変数のサイズ分、メモリを確保する のじゃて!! 』

  



     たとえば!!


=========================


struct sTest

{

  int n:


  union

  {

   float f;

   double d;

   char c[ 10 ];

  };

};


=========================



と、宣言した場合、 普通、 sTest のサイズは



int (4byte) + float (4byte) + double (8byte) + char (1byte) * 10

= 26byte



26バイトとなりますが。




float型 と double型 と char型の配列を  union  で囲っているので、

   一番大きい変数のサイズ( 今はchar 型配列が一番大きいので 10byte )しか取らない。



なので、  int ( 4 byte ) + char[ 10 ] ( 10byte ) = 14byte となる。


ゲームプログラマ志望が二日市で叫ぶ 『はい、勉強中です。』



メモリ節約したい人は使うとヨロシ( `ハ´)

っていう物ですかね。




正直言って  あまり使いません。  いや! 全然・・?



でも、ゴクゴクたまに 『 union 使ったほうがいいなぁ・・・ 』 

っていうところもあったりする!!     ・・・かもしれない。






で、俺もこの unionさんを使って



=========================


(例)

struct sVec

{

  int type;


  union

  {

    float f;

    D3DXVECTOR3 vec;

    D3DXMATRIX mat;

  };
};


=========================


みたいなことを宣言するときがあって、



これ、   エラー   でやがった。




【 error内容 】

 

 ” ユーザー定義コンストラクタまたは既定のコンストラクタが用いられています ”



  『 はぁぁああ!!?!!!!!!!!!!!! 

      コンストラクタなんてどこについとんじゃボケェええええ!!!!   《゚Д゚》ゴラァァァァァァァァァァァァア!! 


ってなことがありました。





これ、なぜ エラーだったのかというと、


D3DXVECTOR3D3DXMATRIX はコンストラクタがあるから・・・



  『 え? お兄さん、マジですか・・・ 』  



float の塊としか思ってなかったから、 忘れてた。。・゚・(ノ∀`)・゚・。






DirextX ・・・・   お前ェ・・・・・


    union 使いたい場所で使えない のはきついなーーーー(((( ;゚д゚))))



-----------------------------------------------

-----------------------------------------------





あ、全然関係ないなんですけど、

 

  なんか 東芝さん 世界初、3D眼鏡なし 3Dテレビを販売するらしいですね。




【 お値段 】


  12型 → 12万      20型 → 24万

   

         


 高っ!!! (  Д ) ゚ ゚



俺は 3D TVなんていらんよー。 普通で十分、十分。。

     絶対酔うと思うし・・・ 弱いんだ・・そういうの・・・

本日のブラトン(ブラックトンジ)の部屋は



【 第一回 】

 プログラム始めて間もないころに起こしていたバグを言っちゃおうかな、 いや、やめとこうかな・・・  

 で、でも! せっかくだし・・・ 何も書くこと無いし・・・ボソッ  書いていきます!!!


です~~~。




----------------------------------------------------------------------


【 scanf 】 



この関数を使うときに


int data

scanf( "%d", data );  ← & を付け忘れる。



最初の頃はなんでエラーでるかわからずに (?_?;) 状態でした。


なんで付けなあかんねん・・・ って所が引っかかってて、余計混乱した。



このころはまだアドレスなんてものはわかってなかった・・・ ( ゚∀゚)・∵.




----------------------------------------


【 ポインタ、アドレス 】



こいつはスゲー苦手でした。( ゚Д゚)アライヤダ!!




 と  の違いというか、  はいつ使って、 & は どういう場合に使うの!!?


と、最初はくじけまくってました。( ;´Д`)いやぁぁぁぁぁー!





アドレス住所???? 何いってんだ???? 

         こんなもん使うか( ゚Д゚)ヴォケ!!


とか思ってたけど、今じゃバリバリ使ってます。 (使わないとできない・・・)




でも、いつからかすんなりわかるようになったんすよねー。 


3Dもそうだけど。。






ポインタ と後は リスト  こいつはポインタを理解してないときにやったので ??? 状態でした。

あと 3D。  こいつはぁ・・・ 今でも恐怖を感じる((((;゚Д゚))))ガクガクブルブル



この三つは俺にとって強敵(ライバル)でしたね。  今でも強敵ですがww




----------------------------------------




DirectXを始めて間もない時、よく ””未解決の外部シンボル”” というものが出て、


『はぁぁああ!!? 何も間違えとらんやんけ!! 喧嘩売っとんかぁああ《゚Д゚》ゴラァァァァァァァァァァァァア!!





というものが出て、 よく考えたら。


『 あ、リンカの設定してねぇ・・・・ _| ̄|○ 』

( winmm.lib、d3d9.lib、d3dx9.lib を 追加の依存ファイルに設定してなかった。 )



という結果が出て、よく惨めな思いになってました。(DirectXごめんよぉ(´Д⊂ヽ)






なので、いつからか


WinMain の ヘッダー宣言の下に



-----------


#pragma comment (lib, "winmm.lib")
#pragma comment (lib, "d3d9.lib")
#pragma comment (lib, "d3dx9.lib")


-----------



って書くようになりました。

(こうすると ↑の設定をしなくてすむ( ´∀`))





でも、最初は 『いや、一回ずつ設定するからこそ意味あるんだ!!( ー`дー´)キリッ』


みたいな意味わからないプライドがあって、しばらく #pragma comment  ではやってなかったのですが、




ついに エラーの悲しさに負けて #pragma comment で設定するようになりました。

プログラマーって変なプライドありますよね?  

          ありますよね!!??Σ(; ゚Д゚) )




----------------------------------------



C++を初めてばかりの頃、 ↑ の  ””未解決の外部シンボル”” というエラーがよくでて、


What is this? (英語クソ苦手なのでコレで勘弁して下さい・・・ )  ってのが頻繁にありました。



クラスを  new、 delete  してるのに、 コンストラクタ、デストラクタ書いてなかったり、




class  A

{

private:

public:
};    ← この  をつけるのを忘れることがあった!!!


というカスなエラーだしてました(ノ∀`)



----------------------------------------




ほんと、今でも  if文の条件式間違えたり、 配列の外にアクセスしてエラーでて焦ったり、色々と悲惨ですww






これは今の段階の麻雀です。

土日用事があって全然進んでない・・・ おふぅ・・・つД`)・゚・。・゚゚・*:.。..。.:*・゚


(なんか、山牌無いんですけどwww なんか牌立ってますよwwww

 とか、思うのは分かってますが!!! ・・・すいませんww)



ゲームプログラマ志望が二日市で叫ぶ 『はい、勉強中です。』


これ、牌の絵は自分で書き、(Xファイルです)

下の 初音ミクさんは 【 オリジナル麻雀素材  】 さんから拝借しましたでございまするm(_ _)m




( ゚∀゚)o彡°みっく!みっく!














  プログラムがほしい!!!!



やっぱりゲームを作ってるだけでは知識が止まってまう!!

新しい知識がほしい!!

と言う事で、本日は
本屋に行ってを見てきましたー(´∀`)




ただいま欲しいと思ってる本。




---------------------------------------------

ゲームコーディング・コンプリート 一流になるためのゲームプログラミング/Mike Mcshaffry
¥4,200
Amazon.co.jp

これほしい・・・


様々なレビューを見てみると、

『ゲームを作りたいだけであれば セガの本 だけでいいが、ゲームプログラマーに必要な広い知識を身につけたいならこの本がオススメ 』 

、書いてあり。



( ゚Å゚)ホゥ


是非 いただこうか!!


と 思ってます。




最近はダンジョンゲームシュミレーションゲームとかをを見て作ったりしてるんですが・・・


『 ゲームコーティング。 作る上で工夫すること、賢い作り方 』

を学びたいと思って、を見てました(゚∀゚)



確かにゲームのサンプルが載ってる本を見るのも ・∀・)イイ!! と思うんですけど、構築の部分をもっと固めたいなと。。。






---------------------------------------------


で、後は デザインパターン をもっと勉強しようと思って、

いろいろなところでオススメされている



オブジェクト指向における再利用のためのデザインパターン/エリック ガンマ
¥5,040
Amazon.co.jp



も買おうと思ってます。 

ちょろっと 立ち読みで中身を盗んで帰ろう (  ´,_ゝ`)フヒヒ 思ってたら



『おおっw     何書いてんだwww』 


っていう状態になったので 家に帰ってゆるりと読みたい です。( ー`дー´)




デザインパターン 覚えたいぜー(´Д`)





---------------------------------------------


で、実は内心一番欲しい と思ってる本がこちらの・・



Game Programming Gems/Mark DeLoura
¥12,600
Amazon.co.jp



です!!

Σ(゚∀゚ノ)ノキャー 欲しい!!!


中身を |д゚)チラッ と見たら

ゲームプログラム に関することが たくさん書いてありますこと!! (´・∀・` )アラマァ


すげーほしいーーーーーーーー!!!!




でも、  お値段


   12,000 円


うん! やす・・ 高いわ!!!!!Σ(; ゚Д゚)




しかも、たしか 七冊ぐらいあった と思うので、


12000  x  7  =  84,000 ( ゚д゚)ポカーン




無事、ゲーム会社に就職できたら買おう・・・ ( ´ー`)フゥー...


と思ってる一品でございます。



まぁ、今買っても理解するのは到底無理だと思ってるのですが・・・




この本、うちの校の先生( 尊敬しております(/ω\) ) も何冊かもっており、やはり、いいと!!

( ちなみに学校はヒューマンアカデミーと言いまふ。 評判? う~んw 

  でも!! プログラムの先生はすごいんだ!!! 




でも、先生と俺のレベル俺が100回転生しても到達できるかわからないぐらい離れてるので、


『 これは、様々な知識身についてから読もw 』 と思います  クッ……( ゚∀゚ )






先生曰く、 『 本を読む。 これが勉強する上で大切なこと 』 

とおっしゃってますので、様々な本を貪欲に読んでいきたいです( ´∀`)



---------------------------------------------




で、今日、本買おうと思ったら

      『 お金ねぇや・・・ 』  貧乏状態だったので、友と 図書館行ってみました。






最初は 『 何の本借りようかなぁ~?  

       12000円の本あったらヤヴァいなコノヤロウwww(・∀・)ニヤニヤ

( これは無いとわかってたんですが、テンションが上がってた)


       100冊ぐらい借りて一気に見てやろうかなww  うはっw 

俺マジ勉強中毒ww(  ゚∀゚)ハァーハッハ!! 



とか、マジ意味わからないぐらいテンション上ってたけど、

( まぁ、欲しい本が5冊ぐらいあればいいかなぁ・・ )



     と、控えめ図書館に突入!!

 |入口| ⊂(゚Д゚⊂⌒`つ≡≡≡≡≡≡≡≡≡≡

       

            

      

         粉砕!!!! 

 ≡≡≡≡≡≡≡≡≡≡c⌒っ゚Д゚)っ |出口|





一冊もないんかい・・・_| ̄|○


  バカな!! 【 エクセル 2000年版 】  だと!!? 10年前かよ!!!

  プログラムの本あった!!!    JAVA   ( ゚∀゚)・∵. グハッ!!



古い。 古スギル。





なぜ、コンピューター関係の少ない上に全く更新されていない? 

          windows 2000 入門 】 て・・・  借りる人いんの・・・?(´Д`)



他のコーナーも見て回ったら、  

        ビデオコーナーは いまどき VHS・・  それも、戦争の時の話とかで、全く興味が出ない・・・

        CDはクラシック or 落語のみ。

        でも、小説とかラノベ等も充実してた のは ちょっとビックリ(*_*)

        


勉強してる学生が多かったので Σ( ゚Д゚) スッ、スゲー!! ってなりましたw

       




期待してたのに!!! 220円(バス代 : 片道かかったのに!!


市立図書館のばかやろぉぉぉぉっぉぉぉおお!!!!!




図書館  二度とくるものか  あー図書館  (字余り) 









その後は近くにあった  西南学院大学    ドキドキ(;゚∀゚)=3ハァハァ  しながら入って見て回りました。





大学スゲー・・・ 



来年こそはこいつらに勝ってやる(`・ω・´)!!! なう!













今日はプログラムでも、マンガでもなく、


映画です。




----------------------------------------------------------------------



ちょっとレンタルビデオ屋さんで映画を借りてきまして、 この



     【 第9地区 】



という映画が 『 人気第二位!! 』 と ドでかくあったので借りてみました。 (´∀`∩)↑age↑




ちなみに一位は 【 アバター 】 でした。

アバター、途中1時間ぐらい寝てしまって、最初30分とクライマックスのほぼ終わりしか見れなかった・・・(´Д⊂ヽ


くっそぉぉ!! 

なので個人的にはアバター面白くないと思ってます。(だってほとんど見てない・・・)


ゲームプログラマ志望が二日市で叫ぶ 『はい、勉強中です。』


で、この 【 第9地区 】 と言う作品。

大雑把に言うと。。。


あ、ちなみにネタバレ含むかも。。

(気にする人はみないほうが・・・)




============================================



突如エイリアンの飛行船が到来!!!

         

           ↓


人間焦る!! アワワ ヽ(´Д`;≡;´Д`)丿 アワワ


           ↓


そこの近くに住む住人から苦情殺到!!!


           ↓


主人公エイリアン化!!!


           ↓


焦る!!! アワ((゚゚дд゚゚ ))ワワ!!


           ↓


宇宙人と協力して主人公戦う!!!



============================================



みたいな!?  ( ´ー`)フゥー... 頑張った・・・

まぁ、短くしたらこんな感じ?


え? はしょりすぎ? 『 ・・・』  知らない。( ゚д゚ )




まぁ、 簡単に言うと、


主人公 : 人間戻りたいよぉぉぉおおおお!!!


みたいな話です。





・・・ 感想


    おもしろさ

          【 中の下 】

期待してた分、反動が大きい。



なんか物足りない・・・

これは2時間で終わる内容じゃない。


続編あるのか・・・? あるんだったらわからなくはないが・・・( ´_ゝ`) 

って作品だった。



---------------------


 宇宙人が来た理由がわからない



 エイリアンテクノロジー高すぎワロタw → なぜ侵略しない!?

   共存すんのかい!!! ( しかも下手に出る。エイリアンにとっては住みにくい     世界にもかかわらず )



 人間、エイリアンに大してあまり驚いていない。( ´_ゝ`)フーン   

   ここは面白かった。



 戦闘シーン微妙だったなぁ。  

  普通、最大目標がいるならば大部隊送れと・・・
  なぜ あんなに少数精鋭で地味な攻撃?  上空から狙い撃てやし。


主人公、お前・・・

  最後、挽回できてないよ・・・ ほとんどおまえのせいだよ・・


---------------------



終わり方もちょっと、あれ?

   って感じだったので、なんか消化不良 ( ゚д゚)ポカーン





映画は有名だからおもしろい!! ってわけじゃないですよね=。

よく見るから、わかってたはずだったのに・・・

(ついついSF物で人気の作品は手を出してしまう)



あと、これから見たい映画は 


   【 ボーン・レガシー 】        ← ジェイソンボーンかっけぇええ!!!


   【 トランスフォーマーの第三作目 】 ← ロボかっけぇええええ!!!

 

   【 ターミネータ5 】        ← ターミネーターかっけぇぇえええ!!!


   【 バイオハザード 】       ← ジョリィー! かっけぇええええ!!!


   【 ジャンパーの続編(でるのかな?) 】 ← 瞬間移動かっけええええ!!!   




とかまだまだ先ですけど、 +(0゚・∀・) + ワクテカ + してます。

最近、映画館にいってまで見る映画がない・・・





あと、 

   【 ソルト 】

      と 

   【 アドレナリン2 】 ← 1 俺的には面白かった。 俳優が好き





も一緒に借りてきたので、明日以降見たい!!(`・ω・´)

麻雀プログラム

② 役判定、やっとおわりました・・・・


簡単かなぁ~ と思ってたら 甘かった。



でも、まだ リーチ、ツモ、ドラ、鳴き など判定していないので未完成です。(´Д⊂ヽ


今回は綺麗に書くことを目標!!

と、していたのですが・・・・


もう、ね。



考えて考えて考えた考えた( たまに逃げた )のに、もうめちゃくちゃになった。

    


   見やすくするために考える。

          ↓

    くそぉ・・・ ここがどうしても・・・

          ↓ 

       ( ゚∀゚)・∵. グハッ!!

          ↓

         諦めた


って感じですかね。





で、一番苦労した点は



----------------------------------------------------------------------



① 平和 ← こいつが一番難しかった

② 平和 ← コノヤロウ・・・

③ 平和 ← カーッ(゚Д゚≡゚д゚)、ペッ


平和の野郎ォォォォォオオオオオオオオオオオ!!!!




【 平和 】

   メンゼン待ち( 鳴いてたらダメ )

   すべて順子( ①②③ みたいな、刻子は ①①① みたいな)

   頭が 三元牌、風牌、以外

   両面待ち 

     ①① ②④ ⑥⑦⑧・・・  ← これで ③ 待ち(単騎)だとダメ

     ①① ③④ ⑥⑦⑧・・・  ← これだと ②、⑤待ち(両面)なのでおk

  


条件多い・・・

こやつには殺意を覚えました。




役判定は

役ひとつに付き一個フラグを持たせます。

最初にすべてのフラグを立たせ、役判定をした後に、最後まで立っていたら役として成立させる。

(立てるんじゃなくて、下ろす)



というふうにしてました。 なぜそうしたかというと。



(例)   

   -----------断ヤオ----------


  【 フラグを下げていく方法 】


  for ( 手牌の数だけループ )

  {

    if ( 1 or 9 or 字牌 以外? )

      断ヤオフラグを下げる。

  } 

      ↑ これだけでいい



  【 フラグを立てていく方法 】

  

   bool  tanyao = true;

  for ( 手牌の数だけループ )

  {

    if ( 1 or 9 or 字牌 以外? )

    {

      tanyao = false;

      break;

    }

  }

if ( tanyao == true )

断ヤオフラグを立たせる


  ↑ ちょっと長い



『ふむ、 短くなるか・・・』 と思い、していったところ、

フラグを立たせていくほうが良かった。 ( ゚д゚)!!


やっぱり、立たせていくほうがフラグっぽいし、

プラグラム的にも見やすい( ー`дー´)キリッ




俺は、引き返せなくなっていたので もう・・・つД`)・゚・。・゚゚・*:.。..。.:*・゚



で、今回フラグ管理方法として、 ビット演算 を使いました。

ので、復習のためこいつを書いていこうかなと。




-------------------------------------------------------------------


【 ビット演算 】


RPGなどで、状態異常として、  どくやけどまひねむり石化・・・・・

など、あると思いますが、

『こいつら一つに付き フラグ用変数一個設けるのは無駄じゃないのかね!?』

思ったやつが ビット演算 使っているのかと。 



フラグなんて、立ってるか立ってないかさえわかればいいので0 or 1 だけ入ればいいんだと。

それなら 1ビットでできるやない? と。

1ビットは 0 or 1 しか入らない入れ物。(ここは二進数知ってるといいかも)



で、よく その変数として  unsigned int( 4バイト ) が使われる。

1バイト = 4ビット。 4バイト = 32ビット


ということで、32個ものフラグ管理が可能となる (; ・`д・´) ナ、ナンダッテー!! (`・д´・ ;)



たいていそんなにいらないと思うので unsigned char( 1バイト = 8ビット ) を使っていく。



ゲームプログラマ志望が二日市で叫ぶ 『はい、勉強中です。』-びっと


ビット演算子 で最低限覚えておくもの、  

   

    & : and,   | : or,    ~ : not


あとは シフト

    >> :  右シフト、 << :  左シフト


だけでイケル。 イケルイケル。 



 例として 1バイト( 4ビット ) を使う。 



------------------------


まず、   & : and  これは、 【どちらとも 1 の時、1にする。】

(例) 

  1011 & 1001 = 1001

 

1 かつ 1 の時、 1にする。 って覚える   ・・・のかな?



------------------------



次、   | : or   これは、【どちらか 1 の時、1にする。】


(例)

  1011 | 1001 = 1011





------------------------



最後に  ~ : not  【 0 と 1 を入れ替える 】


(例)

  ~1011 → 0100


これは 1 と 0 を反転させる


------------------------




【 シフト 】


左シフトを n回 すると  2のn乗 をかけることと一緒。



------------------------


(例)

  1  <<  2  = 4

 0001      0100  ← 二進で見ると、 2つ左に行っていることが分かる



------------------------



右シフトも同じで、 右にずらすと 2 で割ることになる。


(例)

  6  >>  2  =  1

 0110       0001    ← 2つ右に行っている。



------------------------





これらを使って フラグ管理をする。



まずは 状態異常の列挙型と状態を表す変数を作ってみる



--------------------------------------


// 状態列挙型

enum STATE

{

// 変な名前ですいません。 DOKU  → POISON とかにした方がいいです。

  STATE_DOKU    = ( 1 <<  0 )  // 毒

  STATE_YAKEDO  = ( 1 <<  1 )  //  やけど

  STATE_SEKIKA   = ( 1 <<  2 )  // 石化

  STATE_MAHI     = ( 1 <<  3 )  // 麻痺

  STATE_NEMURI   = ( 1 <<  4 )  // 眠り
};


// 状態

unsigned char stateFlag  = 0;    0 は 00000000 


--------------------------------------



これで、それぞれ  8ビット だと、

         → 00000001

   やけど   → 00000010

   石化    → 00000100

   麻痺   → 00001000

   眠り    → 00010000


という風になる。









で、もし 毒状態になったときは、

  stateFlag |= STATE_DOKU;

  00000000 | 00000001 = 00000001  となり、これで毒フラグが立ったということにできる。





ためしに 他のフラグも立てる

  stateFlag |= STATE_YAKEDO;

  00000001 | 00000010 = 00000011  

ちゃんと毒状態のフラグも残っている。






複数操作するときは

stateFlag  |=  ( STATE_MAHI | STATE_NEMURI )

00000011 | 00011000 = 00011011

こうすると、いっぺんに マヒ眠り フラグを立てれる。





確認するときは





if ( ( stateFlag & STATE_DOKU ) != 0 )

{

   // 毒状態にかかっている。
}



00011011 & 00000001 = 00000001 で、1となり、0ではないので 、条件にあっている





と書ける






逆にフラグを下げるときは

stateFlag &= ~STATE_DOKU;




00011011 & 11111110 = 00011010 と、毒のフラグをすべて反転して、それと & をすることによって、周りのフラグには迷惑をかけずに、指定したフラグだけ下げれる。



確認の時も、下げる時も、 ↑のフラグ立てるときのように複数いっぺんに操作できる。


------------------------------------------------------------------



すげー簡単に説明しました(;´Д`)ハァハァ

まだまだ一部ですが、なんとかなるかなと・・・


コレを使って フラグクラス をいうものを作ったらかなり便利かな。。。






ああああああああああああああああああああああああ

二時間以上wwww


書いてる途中に一回戻るボタン押してしまって消えた・・・_| ̄|○

マジショック・・・w( ゚∀゚)・∵. グハッ!!





くそぉぉぉぉっぉおおおおおおおおお!!!




これからはちょくちょく保存することにしようと誓いました。





一応今の段階のソース載せときます。

参考にならねぇww

【 麻雀② 訂正②  】  なおしました。。。


てか、バグあると思います。。。 

今から直していくので、 かなり 仮仮 です。


もうしわけない・・・m(_ _)m





あ、役判定全部終わってなかった・・・Σ(゚д゚lll)