/* 簡単なプログラムをウプしよう */at GAMEDEV /* 簡単なプログラムをウプしよう */ - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト112:111 02/07/13 23:00 おっと、#include <stdio.h> がないとだめかも。 gccで動作確認しますた。 113:大学1年生 02/07/14 01:47 6shM2PBs >>108 すいませんでした。 Bool == bool, True == true, False == false, Sint32 == int Table[] == 消える対象(CElementのポインタ)がはいってるテーブル RETU == 列, GYOU == 行, SELLNUM = Table[]のサイズ == RETU * GYOU ぷよぷよみたいな感じで。 処理の流れ EraseBall() idxbox[] == 削除予定のTable[]のIndexを保存するための配列 SetSearchFlagとSetEraseFlagで検索したか、削除対象かのフラグをFalseで初期化 Table[]をすべてEraseSearchで何個つながってるか数を検索 つながってた個数が一定数(eraseline)以上なら削除決定 idxbox[]を使い削除対象のインデックスを習得 SetEraseFlagを使いTrueに設定 Table[] = NULLでテーブルから削除 EraseSearch(列の座標,行の座標,ぷよの色みたいな感じ,何個つながってるか,検索したIndexを入れる配列) テーブルに存在するか、検索済みか、同じ属性かの判定 SetSearchFlag(True)で検索済みに設定 上下左右で再帰して検索 idxbox[]に検索したアイテムのTableのIndexを設定 自分がつながってたことを表すようにnumに1つ足してreturn つまり3D太郎さんと同じアルゴリズムです。 動く形で全部(一部でも)アップするのはいっぱいファイルがいるので無理です。 かなりわかりにくい説明だと思いますけど、これが限界なんで。 分からなかったらすいません。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch