سورس بازی سودوکو به زبان ++C
در این پست از سایت نوآوران گرمی برای شما کاربران عزیز، سورس بازی سودوکو به زبان ++C را آماده کرده ایم که امیدواریم مورد استفاده قرار گیرد.
بازی سودوکو جدول عددی است که یک سرگرمی در کشورهای مختلف جهان به شمار میآید.
قانون بازی سودوکو (Sudoku)
یکی از رایجترین بازی سودوکو یک جدول ۹x۹ میباشد که کل جدول به ۹ جدول کوچکتر ۳x۳ جداگانه بخش بندی می شود. در این خانه ها چند عدد در حالت اولیه به طور پیش فرض قرار داه می شود که باید اعداد باقی مانده را طبق قوانین زیر بنویسیم.
- قانون 1: در هر سطر جدول عدد های ۱ تا ۹ بدون تکرار قرار گیرد.
- قانون 2: در هر ستون جدول عدد های۱ تا ۹ بدون تکرار قرار گیرد.
- قانون 3: در هر ناحیه ۳x۳ جدول عدد های۱ تا ۹ بدون تکرار قرار گیرد.
روش حل بازی سودوکو (Sudoku)
ابتدا در تمام خانه های خالی جدول، اعداد را از 1تا 9 قرار میدهیم سپس به سراغ عددی که قبلا توسط طراح نوشته شده میرویم و تمام عدد های شبیه آن را که در عرضش (بصورت افقی) قرار گرفتهاند را حذف کرده و سپس یک خط افقی در بالای آن عدد میکشیم که مشخص باشد یعنی به صورت هایلات شده قرار میدهیم.
در مرحله بعدی مثل مرحله گذشته عملیات را انجام میدهیم با این تفاوت که در تمام خونه های عمودی در بالا یا پایین عدد مورد نظر اعداد شبیه هم را حذف میکنیم و بعد با یک خط عمودی در کنار آن عدد آن را مشخص مینماییم. اعداد مشابه عدد مورد نظر را در مربع نه خانهای متناظر، حذف می کنیم و عدد را با یک دایره بر دور آن مشخص می کنیم.
دقت کنید که سه مرحله گذشته را در مورد تمام عدد ها از قبل نوشته شده تکرار کنیم و کشیدن خطهای عمودی افقی و دایره را بر آن عددها نباید فراموش کنیم که این عمل میتواند به شما نشان دهد که کدام یک را انتخاب نکردید و از یاد افتادهاست.
وقتی که همه عدد های چاپی با هر سه علامت مشخص شدند کار ما تا این مرحله تمام می شود. در این مرحله به دنبال خونه های میگردیم که فقط یک عدد در آنها باقییمانده و آن اعداد را پررنگ میکنیم. ما باید در هر ستون عددی را که فقط یکبار درآن ستون آمده است را پیدا کرده و این عدد یقیناً جواب همان خونه خواهد بود و این عدد را هم پررنگ میکنیم. اکنون در هر مربع نه خانهای عددی را که فقط یکبار در این نه خانه آمدهاست را یافته و به عنوان جواب یکجای میکنیم.
اگر این روش سخت باشد از روش زیر می توانید استفاده کنید توجه کنید که هر عدد در هر مربع یک بار استفاده میشود و جدول ما دارای نه تا از مجموعه خانههای مربع شکل است 3*3 به خاطر همین هر عدد علاوه بر اینکه در هر ردیف وهر ستون یکبار استفاده میشود در هر مربع نیز یک بار مورد استفاده قرار میگیرد. پس اگر عددی در یک مربع بزرگ پیدا شد باید بررسی کنید و معادل آن عدد را در مربع بزرگتر را در همان ردیف و یا همان ستون پیدا کنید، اگر آن را پیدا کردید یک خط فرضی از آن عدد از هر مربع بصورت افقی و یا عمودی میکشید با این کار دو ستون و یا دو ردیف از مربعی که عدد در آن موجود نبوده از محاسبات حذف میشوند و فقط سه خونه از آن مربع باقی میماند، همین کار را هم از طرف مقابل از همان عدد انجام میدهید یک خونه خالی باقی خواهد ماند که جای همان عدد است. معمولاً با این کار بیشتر خانههای خالی پر میشوند که مابقی را از طریق اسکن کردن سطر به سطر و یا ستون به ستون میتوان بدست آورد.
سلام توضیح خط به خط کد ها نوشتخ شده یا نه؟
بله کدها به صورت کلی و مختصر کامنت گذاری شده.