سورس مسئله n وزیر به زبان C++
در این بخش سورس مسئله n وزیر به زبان C++ را برای شما آماده کرده ایم که در محیط برنامه نویسی Code::Blocks و زبان برنامه نویسی سی پلاس پلاس نوشته شده است. در ادامه می توانید توضیحات، تصاویر و همچنین فیلمی از نحوه اجرا شدن پروژه را مشاهده کنید.
توضیحات پروژه
در این پروژه بعد از اجرا شدن برنامه تعداد وزیر ها از کاربر گرفته می شود و سپس برنامه حالت های ممکن برای قرار گیری آن تعداد وزیر را محاسبه کرده و در خروجی نمایش می دهد. در بازی شطرنج مهره وزیر می تواند در جهات عمودی، افقی و مورب به تعدا دلخواه و ممکن حرکت کند. از این رو قدرتمندترین مهره این بازی محسوب می شود و شطرنج بازها بیشتر از این مهره برای مات کردن و بردن بازی استفاده می کنند.
در این پروژه به منظور حل مسئله n وزیر از الگوریتم عقبگرد استفاده شده است. مسئله چند وزیر یک معمای شطرنجی و ریاضیاتی است که بر اساس آن باید n وزیر شطرنج در یک صفحه n×n شطرنج بهگونهای قرار داده شوند که هیچ یک زیر ضرب دیگری نباشند. با توجه به اینکه وزیر بهصورت افقی، عمودی و اُریب حرکت میکند، باید هر وزیر را در طول، عرض و قطر متفاوتی قرار داد. مسئله n وزیر، نسخه توسعه یافته مسئله معروف 8 وزیر است که می توان آن را با هر تعداد وزیر (حداقل ۴) اجرا و حالت های ممکن را مشاهده کرد.
قسمت های از سورس کد
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | #include <conio.h> #include <iostream> #include <iomanip> #define n 8 using namespace std; int v[n + 1], board[n][n], counter; int nqueens; void clearBoard() { int row, col; for (row = 0; row < n; row++) for (col = 0; col < n; col++) board[row][col] = 0; } void drawBoard() { clearBoard(); for (int i = 1; i < nqueens + 1; i++) board[i - 1][v[i] - 1] = 1; cout << "\n[" << ++counter << "]" << endl << endl; for (int row = 0; row < nqueens; row++) { for (int col = 0; col < nqueens; col++) if (board[row][col] == 1) cout << setw(3) << 'X'; else cout << setw(3) << '-'; cout << endl << endl; } } int isSafe(int row, int col) { int i; for (i = 1; i < row; i++) { if (v[i] == col || i - v[i] == row - col || i + v[i] == row + col) return 0; } return 1; } int main() { cout << "Please enter number of Queens[n>=4]: "; cin >> nqueens; findQueen(1, nqueens); getch(); return 0; } |
هیچ نظری ثبت نشده است