magicfile icon وبسایت فایل سحرآمیز - magicfile.ir

تگ های موضوع حل مسله وزیر در سی شارپ

حل مسئله 9 وزیر در سی شارپ


مسئله 9 وزیر یکی از مسائل کلاسیک در دنیای الگوریتم‌ها و برنامه‌نویسی است. این مسئله به معنای قرار دادن 9 وزیر بر روی یک تخته شطرنج 9x9 به گونه‌ای است که هیچ دو وزیری یکدیگر را تهدید نکنند. در اینجا، به بررسی جزئیات و مراحل حل این مسئله با استفاده از زبان برنامه‌نویسی سی شارپ خواهیم پرداخت.
الگوریتم حل مسئله
برای حل این مسئله، یکی از روش‌های موثر استفاده از روش بازگشتی (Backtracking) است. در این روش، ما وزرا را یکی یکی روی تخته قرار می‌دهیم و در هر مرحله بررسی می‌کنیم که آیا قرار دادن وزیر جدید مجاز است یا خیر.

مراحل حل:


  1. تعریف تخته شطرنج:
یک آرایه دو بعدی برای نمایش تخته شطرنج ایجاد می‌کنیم. ابعاد آن باید 9x9 باشد.
  1. تابع بازگشتی:
تابعی برای تلاش برای قرار دادن وزرا تعریف می‌کنیم. این تابع باید سه کار انجام دهد:
- بررسی اینکه آیا قرار دادن وزیر در موقعیت فعلی مجاز است یا خیر.
- اگر مجاز بود، وزیر را قرار داده و به مرحله بعدی بروید.
- اگر نتوانستیم وزیری را قرار دهیم، به عقب برمی‌گردیم و وزیر قبلی را جابجا می‌کنیم.
  1. بررسی مجاز بودن:
برای هر موقعیت، باید بررسی کنیم که آیا وزیر جدید در همان سطر، ستون یا قطرها قرار دارد یا خیر.

کد نمونه


```csharp
using System;
class Program
{
const int N = 9;
static void Main()
{
int[,] board = new int[N, N];
if (!SolveNQueens(board, 0))
{
Console.WriteLine("No solution exists.");
}
else
{
PrintSolution(board);
}
}
static bool SolveNQueens(int[,] board, int col)
{
if (col >= N) return true;
for (int i = 0; i < N; i++)
{
if (IsSafe(board, i, col))
{
board[i, col] = 1;
if (SolveNQueens(board, col + 1)) return true;
board[i, col] = 0; // Backtrack
}
}
return false;
}
static bool IsSafe(int[,] board, int row, int col)
{
for (int i = 0; i < col; i++)
{
if (board[row, i] == 1) return false;
}
for (int i = row, j = col; i >= 0 && j >= 0; i--, j--)
{
if (board[i, j] == 1) return false;
}
for (int i = row, j = col; j >= 0 && i < N; i++, j--)
{
if (board[i, j] == 1) return false;
}
return true;
}
static void PrintSolution(int[,] board)
{
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
{
Console.Write(board[i, j] + " ");
}
Console.WriteLine();
}
}
}
```

نتیجه‌گیری


در اینجا، ما به سادگی با استفاده از سی شارپ، مسئله 9 وزیر را حل کردیم. این الگوریتم به صورت بازگشتی کار می‌کند و با استفاده از بررسی شرایط، از قرار دادن وزرای در معرض تهدید جلوگیری می‌کند. با توجه به این توضیحات، امیدوارم این مطلب به شما در درک بهتر این مسئله کمک کند.
مشاهده بيشتر

لیست فایل های ویژه وبسایت

دانلود-نرم-افزار-تبدیل-txt-به-vcf-:-برنامه-تبدیل-فایل-متنی-تکست-txt-به-وی‌سی‌اف-vcf-(Virtual-Contact-File-مخاطب-موبایل)

دانلود نرم افزار تبدیل txt به vcf : برنامه تبدیل فایل متنی تکست txt به وی‌سی‌اف vcf (Virtual Contact File مخاطب موبایل)


نرم-افزار-ترجمه-خودکار-فایل-های-po-,-pot-بصورت-کامل-برای-تمامی-زبان-ها-از-جمله-فارسی

نرم افزار ترجمه خودکار فایل های po , pot بصورت کامل برای تمامی زبان ها از جمله فارسی


دانلود-دیتابیس-تقویم-1404-در-اکسل

دانلود دیتابیس تقویم 1404 در اکسل


نرم-افزار-تغییر-زبان-سورس-کد-ویژوال-استودیو-(عناصر-دیزاین-طراحی-فرم-ها)

نرم افزار تغییر زبان سورس کد ویژوال استودیو (عناصر دیزاین طراحی فرم ها)


بهترین-سرویس-پوش-نوتیفیکیشن-(Web-Push-Notification)-اسکریپت-مدیریت-اعلان-و-ساخت-پوش-نوتیفیکیشن-سایت-و-ارسال-پوش-از-طریق-php

بهترین سرویس پوش نوتیفیکیشن (Web Push Notification) اسکریپت مدیریت اعلان و ساخت پوش نوتیفیکیشن سایت و ارسال پوش از طریق php


تعداد فایل های دانلود شده

34628+

آخرین بروز رسانی در سایت

1404/1/31

قدمت سایت فایل سحرآمیز

+8 سال

تعداد محصولات برای دانلود

2580+