نقل قول: مشکل در برنامه paint
ببین دوست عزیز برای پر کردن 1 شکل باید از الگوریتم flood fill استفاده کنی . راه حل بازگشتی که شما بکار بردی تا حدودی صحیحه . برای حل مشکل خانه های تکراری میتونی قبل از اینکه آدرس خونه رو به تابع fill بدی رنگشو چک کنی . البته در موارد بزرگتر مثلا رنگ کردن کل صفحه بازم مشکل stack وجود داره . برای حل اون مشکل من 1 راه حل ابداعی (دودره بازی) بکار بردم . میتونی از 1 تابع بازگشتی مدیریت شده استفاده کنی . به این صورت که . مثلا تابع ما وقتی 5000 بار خودشو فراخوانی بکنه با مشکل stack مواجه میشه .. درست ؟ حالا ما با کمک چنتا متغییر کنترلی کاری میکنیم که تابع 4000 بار بیشتر خودشو فراخوانی نکنه و وقتی به این سقف رسید . مقدار آدرس خونه بعدی رو توی 1 متغییر global بزاره و کار خودشو تموم کنه . و وقتی stack به حالت عادی برگشت . دوباره خونه ذخیره شده رو با همون تابع فراخوانی میکنیم (یعنی بجای اینکه 1 بار کل قسمتها رو رنگ بزنیم . کار رو تقسیم بندی میکنیم و در چند مرحله انجام میدیم . 4000 تا 4000 تا ) . البته این کار زیاد اصولی نیست .
اگه میتونستید از gdi استفاده کنید کارتون خیلی راحت تر بود .
در مورد مشکل حرکت ماوس هم . من قبلا با چنین مشکلی برخورد نکردم ولی میتونید از 1 راه حل خیلی ساده استفاده کنید . وقتی برنامتون اجرا میشه توی بخش تنظیمات ماوس ویندوز حساسیت ماوس رو کم کنید تا کاربر نتونه زیاد ماوسشو تکون بده .!