حل مسئله هشت وزیر با PHP و الگوریتم Backtracking
این قطعه کد پایتون توسط یکی از کاربران در کامپایلر آنلاین PHP نوشته و اجرا شده است. شما هم میتوانید کدهای خود را به صورت آنلاین تست کنید.
زبان: PHP
این کد PHP مسئله معروف N وزیر را با استفاده از الگوریتم Backtracking حل میکند. در این مسئله، باید N وزیر را روی صفحه شطرنج N×N قرار داد به طوری که هیچ دو وزیری به یکدیگر حمله نکنند. تابع solveNQueens(8) تعداد وزیرها را ۸ تنظیم کرده و تمام راهحلهای ممکن را چاپ میکند.
الگوریتم به این صورت عمل میکند که ستون به ستون پیش میرود و در هر ستون سطرهای مختلف را امتحان میکند. تابع isSafe بررسی میکند که آیا قرار دادن وزیر در خانه فعلی با وزیرهای قبلی تداخل ندارد. این بررسی شامل چک کردن سطر، قطر اصلی و قطر فرعی است. اگر خانه امن باشد، وزیر قرار داده میشود و به ستون بعدی میرویم؛ در غیر این صورت برمیگردیم (Backtracking) و خانه بعدی را امتحان میکنیم.
خروجی برنامه، نمایش گرافیکی صفحه شطرنج برای هر راهحل است که در آن هر خانه با . یا Q مشخص شده است. برای تغییر تعداد وزیرها، کافی است عدد داخل solveNQueens() را تغییر دهید.