دانلود برنامه هشت وزیر با جستجوی عمقی در سی شارپ

جستجوي عمقي – جستجوي اول عمق
اين استراتژي، يکي از گرهها را در پائينترين سطح درخت بسط ميدهد
در صورتي که جستجو به يک گره غير هدف بدون امکان بسط ميرسد آنوقت به سراغ گره هايي در سطوح کم عمق تر ميرود.
مسئله هشت وزیر :
این مساله شامل یک جدول شبیه جدول شطرنج است که در آن هشت سطر و هشت ستون قرار دارند.
حال باید 8 تا وزیر را طوری در این جدول چید که هیچ کدام همدیگر را قطع نکنند.
حرکت وزیر در شطرنج به گونه ای است که هم به صورت عمودی و افقی و هم به صورت ضربدری می تواند حرکت کند.
پیاده سازی:
نحوه کار این برنامه به این صورت است که ، یک ماتریس دوبعدی 8 در 8 به عنوان فضای حالت تعریف شده است . و با استفاده از 2 حلقه while ماتریس پیمایش می شود.
به صورت پیش فرض همه خانه ها صفر می شوند که منظور خالی بودن آنهاست. سپس در خانه فعلی 1 ست می شود که منظور این است وزیر در آنجا قرار گرفت.
پس از آن توسط یک تابع ماتریس بررسی می شود تا اگر وزیر ها با هم برخورد دارند آن خانه صفر شود و خانه بعدی 1 شود.اگر خانه بعدی وجود نداشته باشد طبق استراتژی جستجوی عمقی یک قدم به عقب بر می گردد و کار را از آنجا ادامه می دهد.
هر قدم که برداشته می شود ، ماتریس در یک ListBox چاپ می شود .
و در آخرین قدم نتیجه نهایی و تعداد قدم ها چاپ می شود.
سورس برنامه را در پایین صفحه پس از پرداخت اینترنتی دانلود کنید
حجم فایل :58 KB
اینم بخشی از سورس کد برنامه که در محیط ویژوال استودیو می توانید از آن بهره بگیرید:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections;
namespace _8vazir
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
int[,] x = new int [8, 8];
int ibonbast = -1, jbonbast = -1;
Stack stki = new Stack();
Stack stkj = new Stack();
private void showx()
{
string s = "";
//listBox1.Items.Clear();
for (int i = 0; i < 8; i++)
{
for (int j = 0; j < 8; j++)
{
if(x[i,j]!=0)
s += x[i, j].ToString() + " | ";
else
s += " | ";
}
listBox1.Items.Add(s);
// listBox1.Items.Add("________________________");
s = "";
}
listBox1.Items.Add("=====================");
}
private bool checkx(int ii, int jj)
{
///////////////////////////++++++++++++++++++++++++++++++///////////
int c = 0;
for (int j = 0; j < 8; j++)
if (x[ii, j] == 1)
c++;
if (c > 1)
return false;
c = 0;
for (int i = 0; i < 8; i++)
if (x[i, jj] == 1)
c++;
if (c > 1)
return false;
//////////////////////////////*******************//////////////
c = 0;
for (int i = ii+1,j=jj+1 ; i < 8 && j<8; i++,j++)
if (x[i, j] == 1)
c++;
if (c > 0)
return false;
c = 0;
for (int i = ii - 1, j = jj - 1; i >= 0 && j >= 0; i--, j--)
if (x[i, j] == 1)
c++;
if (c > 0)
return false;
c = 0;
for (int i = ii - 1, j = jj + 1; i >= 0 && j <8; i--, j++)
if (x[i, j] == 1)
c++;
if (c > 0)
return false;
c = 0;
for (int i = ii + 1, j = jj - 1; i <8 && j >= 0; i++, j--)
if (x[i, j] == 1)
c++;
if (c > 0)
return false;
return true;
}
private void button1_Click(object sender, EventArgs e)
{
int i,j;
for ( i = 0; i < 8; i++)
for ( j = 0; j < 8; j++)
x[i, j] = 0;
listBox1.Items.Clear();
int count = 0;
i = 0; j = 0;
while (i<8)
{
while(j<8)
{
x[i, j] = 1;
count++;
if (checkx(i, j))
{
showx();
stki.Push(i);
stkj.Push(j);
break;
}
else
x[i, j] = 0;
j++;
if (j >= 8)
{
//MessageBox.Show(i.ToString() + " f " + j.ToString());
while (true)
{
i = int.Parse(stki.Pop().ToString());
j = int.Parse(stkj.Pop().ToString());
x[i, j] = 0;
j++;
if (j < 8)
break;
}
// MessageBox.Show(i.ToString()+" "+j.ToString());
}
}
i++;
j = 0;
}
MessageBox.Show(count.ToString());
}
private void button2_Click(object sender, EventArgs e)
{
System.Diagnostics.Process.Start("http://www.sourcecodes.ir");
}
}
}
خرید محصول
قیمت این محصول: 10000 تومانخرید محصول از طریق پرداخت اینترنتی
- ← پرداخت از طریق درگاه شاپرک با همه کارت های بانکی انجام خواهد شد .
- ← پس از پرداخت مبلغ به این صفحه ارجاع داده می شوید و میتوانید فایل مورد نظر را با لینک مستقیم دانلود کنید.
- ← لطفا در صورتی که مرورگر شما بروز نیست برای خرید ، آن را بروز کنید.
- ← عدم به روز بودن مرورگر باعث می شود، بجای صفحه درگاه بانک، خطای عدم تایید SSL را مشاهده نمایید.
- ← در صورت بروز مشکل ، در قسمت تماس با ما از تیم پشتیبانی کمک بگیرید.
فقط میتونم بگم دمتون گرم:))))))))
خیلی عالی و واضح بود ممنون