27-09-2007, 11:12
|
|
|
חבר מתאריך: 05.10.05
הודעות: 850
|
|
מבקש עזרה בבניית סודוקו - C#
שלום!
המורה בכיתה ביקשה שניצור סודוקו, אבל למעשה כמעט ולא נתנה לנו כלים איך לעשות זאת.
בחיים שלי לא עבדתי עם array אז אני נתקל בקשיים...
היא ביקשה שתנחיל עם בדיקה של לוח 3x3 (תשע תאים), אבל אני נתקל במלא בעיות.
אני בניתי טבלת asp ונתתי ערך לכל תא בטבלה. לאחר מכן הכנתי כפתור שבלחיצה עליו הוא יבדוק את נכונות הסודוקו ואם הוא נכון הוא יכניס לערך של Lable1 אם הסודוקו תקני או לא.
הרעיון שלי היה להכניס את כל התאים לתוך מערך, ואז להעתיק אותו ולהשוות בין המערכים.
אך ללא הצלחה:
קוד:
int [] list1; \\creation of the first list
list1 = new int[9]{
int.Parse(Suduku_Table.Rows[0].Cells[0].Text),
int.Parse(Suduku_Table.Rows[0].Cells[1].Text),
int.Parse(Suduku_Table.Rows[0].Cells[2].Text),
int.Parse(Suduku_Table.Rows[1].Cells[0].Text),
int.Parse(Suduku_Table.Rows[1].Cells[1].Text),
int.Parse(Suduku_Table.Rows[1].Cells[2].Text),
int.Parse(Suduku_Table.Rows[2].Cells[0].Text),
int.Parse(Suduku_Table.Rows[2].Cells[1].Text),
int.Parse(Suduku_Table.Rows[2].Cells[2].Text)};
int[] list2;
list2 = new int[9];
Array.Copy(list1, list2, 9); \\copy of one list to another. i searched it on google
int i = 0;
int j = 0;
int tmp = 0;
int tmp2 = 0;
bool flg = true;
while (flg = true && i <= 8) \\compars one element of the array to all the elements of the other array
{
tmp = list1[i];
tmp2 = list2[j];
while (flg = true && j <= 8)
{
if (tmp == tmp2)
{
flg = false;
}
else
{
j++;
tmp2 = list2[j];
}
}
i++;
j = 0;
}
if (flg==true)
{
Label1.Text = "Ok";
}
else
{
Label1.Text = "False";
}
}
אשמח אם תעזרו לי להבין למה זה לא נכון, ואיך אני מתקן את זה.
בנוסף, אשמח לרעיונות איך ליצור אלגוריתם שיפתור סודוקו (כרגע אני עובד על זה, ואשמח לרעיונות שלכם)
תודה רבה!
_____________________________________
|