Sei sulla pagina 1di 2

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.IO;

namespace WindowsFormsApplication22
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
int n = 8;
int x, y,p1,q1;
int[,] a;
bool nasli = false;
int k=0;
int[,] put;
private void button1_Click(object sender, EventArgs e){}
void oznaciput()
{
for (int i=0;i<k;i++)
{
dataGridView1[put[i, 1], put[i, 0]].Style.BackColor = Color.Red;
}
}
private void dataGridView1_CellContentClick(object sender,
DataGridViewCellEventArgs e){ }
void trazi(int i,int j,int x,int y)
{
a[i, j] = 2;
put[k, 0] = i;
put[k, 1] = j;
k++;
if (i == x && j == y)
{
nasli = true;
oznaciput();
}
else
{
if (moze(i - 1, j))
trazi(i - 1, j,x,y);
if (!nasli && moze(i + 1, j))
trazi(i + 1, j,x,y);
if (!nasli && moze(i, j - 1))
trazi(i, j - 1,x,y);
if (!nasli && moze(i, j + 1))
trazi(i, j + 1,x,y);
}
if (!nasli)
k--;
}
bool moze(int i, int j)
{
return i >= 0 && j >= 0 && i < n && j < n && a[i, j] == 0;
}
private void Form1_Load(object sender, EventArgs e)
{
StreamReader f = new StreamReader("niz.txt");
a = new int[n, n];
put = new int[n * n, 2];
dataGridView1.RowCount=8;
dataGridView1.ColumnCount=8;
for (int i = 0; i < n; i++)
{
dataGridView1.Rows[i].Height = 25;
dataGridView1.Columns[i].Width = 25;
}
for (int i=0;i<n;i++)
{
string s = f.ReadLine();
string[]r= s.Split(' ');
for (int j = 0; j < n; j++)
{
a[i, j] = Convert.ToInt32(r[j]);
dataGridView1[j, i].Value = a[i, j];
}
}
}
bool prviklik = true;
private void dataGridView1_CellClick(object sender,
DataGridViewCellEventArgs e)
{
int i = e.RowIndex;
int j = e.ColumnIndex;
if (prviklik)
{
p1 = i;
q1 = j;
prviklik = false;
}
else
{
trazi(p1, q1, i, j);
}
}
}
}

Potrebbero piacerti anche