なんとなくだらだらと。方向性はまだ決まってない。
当方のプログラムでは、山田巧さん作成のDXライブラリを利用させていただいてます。
本サイト http://homepage2.nifty.com/natupaji/DxLib/index.html
DX Library Copyright (C) 2001-2008 Takumi Yamada.
× [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
ひどい話です。
ぼく悪くないもん。 って言っても、公開した時点でバグ出した責任は引き受けないといけないと思う。 原因は、DXライブラリのGetRand() 関数。 けっこうみんな通る道みたい。 知ってたけどすっかり忘れてた。 C言語的にはというか、プログラマの常識的に、GetRand(10) と書けば、 0~9の10通り返すのがスジ。 気をまわして「1~10までの10通り返す」ように作ることはあっても、 「0~10までの11通り返す」という作りは、どう考えてもありえない。 これが原因で player[10] の範囲外参照が発生し、連続領域にあった他の変数が レイプされたというわけ。 ついついカラフルに強調してしまうほどの不満・怒りが出てしまったぜな。 そろそろマジックナンバー山盛りの糞プログラムになる兆候が見えつつあるが、 GetRand(9); の9がどこから来たのか自分でもわからなくなる。 GetRand(PLAYER_MAX - 1); とか書けるけど美しくないよなあ。 main.cpp void GamePlay() { : : // もし誰も動いてなければ、誰かひとりランダムで決めてボールに走らせる if(m>=10){ player[GetRand(9)].GoLocate(CHASE_BALL,ball.getBx(),ball.getBy()); } プログラムは1行数字いっこ変更しただけなので、今回のアップロードは無しよん。 PR |
カレンダー
カテゴリー
フリーエリア
最新記事
(01/29)
(01/28)
(01/26)
(12/28)
(12/27)
(12/25)
(12/20)
(09/09)
(09/09)
(09/09)
(09/08)
(09/08)
(09/08)
(09/06)
(09/05)
(08/27)
(08/27)
(08/27)
(08/25)
(08/23)
ブログ内検索
P R
アクセス解析
カウンター
|