using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ExamQ
{
class Program
{
enum Yon { None, Asagi, Yukari, Saga, Sola }
static void Main(string[] args)
{
string[] aranan = { "ON", "ZOR", "ZİL", "KAR","AN" };
char[,] sozcuk = {
{ 'R', 'O', 'Z', 'Y' },
{ 'A', 'Z', 'L', 'I' },
{ 'L', 'I', 'İ', 'O' },
{ 'A', 'M', 'Z', 'N' },
{ 'N', 'K', 'A', 'R' }};
foreach (string aranacak in aranan)
{
Bul(sozcuk, aranacak);
}
for (int i = 0; i < sozcuk.GetLength(0); i++)
{
for (int j = 0; j < sozcuk.GetLength(1); j++)
{
if (sozcuk[i, j] != '*')
Console.Write(sozcuk[i, j]);
}
}
Console.ReadKey();
}
private static void Bul(char[,] sozcuk, string aranan)
{
Yon yon = Yon.None;
int x = 0, y = 0;
bool bulundu = false;
for (int i = 0; i < sozcuk.GetLength(0); i++)
{
for (int j = 0; j < sozcuk.GetLength(1); j++)
{
if (sozcuk[i, j] == aranan.ToCharArray()[0])
{
if (i < sozcuk.GetLength(0))
for (int k = i + 1; k - i < aranan.Length && k < sozcuk.GetLength(0); k++)//aşağı doğru arama
{
if (sozcuk[k, j] != aranan.ToCharArray()[k - i])
{ bulundu = false; break; }
else
{
bulundu = true;
yon = Yon.Asagi;
x = i; y = j;
}
}
if (bulundu == false && i > 0)
for (int k = i - 1; i - k < aranan.Length && k > 0; k--)//yukari doğru arama
{
if (sozcuk[k, j] != aranan.ToCharArray()[i - k])
{
bulundu = false; break;
}
else
{
bulundu = true;
yon = Yon.Yukari;
x = i; y = j;
}
}
if (bulundu == false && j < sozcuk.GetLength(1))
for (int k = j + 1; k - j < aranan.Length && k < sozcuk.GetLength(0); k++)//sağa doğru arama
{
if (sozcuk[i, k] != aranan.ToCharArray()[k - j])
{ bulundu = false; break; }
else
{
bulundu = true;
yon = Yon.Saga;
x = i; y = j;
}
}
if (bulundu == false && j > 0)
for (int k = j - 1; j - k < aranan.Length && k > 0; k--)//sola doğru arama
{
if (sozcuk[i, k] != aranan.ToCharArray()[j - k])
{ bulundu = false; break; }
else
{
bulundu = true;
yon = Yon.Sola;
x = i; y = j;
}
}
}
}
}
switch (yon)
{
case Yon.None:
break;
case Yon.Asagi:
for (int i = 0; i < aranan.Length; i++)
{
sozcuk[i+x, y] = '*';
}
break;
case Yon.Yukari:
for (int i = 0; i < aranan.Length; i++)
{
sozcuk[x-i, y] = '*';
}
break;
case Yon.Saga:
for (int i = 0; i < aranan.Length; i++)
{
sozcuk[x, y+i] = '*';
}
break;
case Yon.Sola:
for (int i = 0; i < aranan.Length; i++)
{
sozcuk[x, y-i] = '*';
}
break;
default:
break;
}
}
}
}
Hiç yorum yok:
Yorum Gönder