PDA

View Full Version : راحت ترین روش حل 8 وزیر



ghasemloo
سه شنبه 18 آذر 1393, 22:28 عصر
سلام :لبخندساده:
دنبال راحترین روش حل معمای 8 وزیر هستم
به نظر شما راحترین روش کدومه؟؟
اگه سورسی هم دارید که توضیحات خط به خط داره رو لطفا بذارید
ممنون

ghasemloo
سه شنبه 25 آذر 1393, 11:50 صبح
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;


namespace chessfull
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}


private void button1_Click(object sender, EventArgs e)
{

for (int i = 1; i < 9; i++)
{
for (int j = 1; j <9; j++)
{
if (i != j)
{
for (int x = 1; x < 9; x++)
{
if (x != i && x != j)
{
for (int y = 1; y < 9; y++)
{
if (y != i && y != j && y != x)
{
for (int g = 1; g < 9; g++)
{
if (g != y && g != x && g != j && g != i)
{
for (int h = 1; h < 9; h++)
{
if (h != g && h != y && h != x && h != i && h != j)
{
for (int m = 1; m < 9; m++)
{
if (m != h && m != g && m != y && m != x && m != j && m != i)
{
for (int n = 1; n < 9; n++)
{
if (n != m && n != h && n != g && n != y && n != x && n != j && n != i)
{
int []a={i,j,x,y,g,h,m,n};
tabe(a);
}
}
}
}
}
}
}
}
}
}
}
}
}


}
}
}
public void tabe(int[]b)
{
bool d = false;
bool t = false;
int count=b.Count();
for (int i = 0; i < count;i++)
{
for (int j = 0; j < count; j++)
{
if (i != j)
{


if (Math.Abs(b[i] - b[j]) == Math.Abs(i - j))
{
d = true;
break;
}
}

}
if (d == true)
{
t = true;
break;
}


}
if (t == false)
{
string cnv = "";
foreach (var mgh in b)
{
cnv += mgh.ToString();
}
dtv(b);

MessageBox.Show(cnv);
}
}
public void dtv(int[] c)
{


dataGridView1.Rows.Clear();
dataGridView1.Columns.Clear();
int count = c.Count();
for (int i = 1; i <= count; i++)
{
dataGridView1.Columns.Add(i.ToString(), i.ToString());
dataGridView1.Columns[i-1].Width = 20;


}
for (int x = 1; x <= count; x++)
{
dataGridView1.Rows.Add();
for (int y = 1; y <= count; y++)
{
if(y%2==0)
dataGridView1.Columns[y-1].DefaultCellStyle.BackColor = Color.Yellow;
}
}
for (int p = 1; p <= count; p++)
{
for (int k = 1; k <= count; k++)
{


if (k == Convert.ToInt32(c[p-1]))
{
dataGridView1.Rows[p-1].Cells[k-1].Value = "{i}";
break;
}
}
}



}








}
}

hamid_hr
سه شنبه 25 آذر 1393, 12:01 عصر
یه بخش داره این سایت به نام الگورییتم
http://barnamenevis.org/search.php?searchid=3201407
اونجا بهتر به جواب میرسی

ghasemloo
سه شنبه 25 آذر 1393, 22:18 عصر
به جواب رسیدم ....
گذاشتم اینجا که اگه کس به دردش خوردبرداره........
همین :)