Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Игра Кролевский квадрат 
:(
    Опции темы
Abbath1349
Дата 11.6.2011, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 214
Регистрация: 16.6.2010

Репутация: нет
Всего: нет



Пишу игру королевский квадрат.Имеется двумерный массив лейблов 3*3. Подскажите с алгоритмом как лучше сделать. Нужен алгоритм,чтоб при клике на ячейке квадрата(Label) он определял можно ли записать в неё букву(Если рядом есть квадрат с буквой то можно если нету то нельзя). 
Пробовал через циклы,но тут он до ума не доведен да и мне кажется не лучший это способ. 
Код

 private void Label_click(object sender, EventArgs e)
        {
            int imin,imax,jmin,jmax;
            
            Label lclick = (Label)sender;
            Point n =(Point)lclick.Tag;
            int x = n.X;
            int y = n.Y;
            for (int i = 0; i < 5; i++)
                for (int j = 0; j < 5; j++)
                    if (Royals[i, j].Text != String.Empty)
                        IsEmpty[i, j] = false;
                    if (!IsEmpty[x, y])
                        textBox5.Text = "Uncorrect";
                    else
                    {
                        if (x > 0) imin = x - 1;
                        else imin = x;
                        if (y > 0) jmin = y - 1;
                        else jmin = y;
                        if (x < 4) imax = x + 1;
                        else imax = x;
                        if (y < 4) jmax = y + 1;
                        else jmax = y;
                        for (int i = imin; i <= imax; i++)
                            for (int j = jmin; j <=jmax; j++)
                                if (!IsEmpty[i, j])
                                {
                                    textBox5.Text = "Correct";
                                 
                                    Royals[i, j].Text = "X";
                                    goto Finish;
                                }
                                else
                                    textBox5.Text = "XX";
                        
                    }
                Finish:
                    textBox5.Text = "XXX";
        }

PM MAIL   Вверх
-Mikle-
Дата 11.6.2011, 19:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 17
Всего: 59



Могу дать совет, что не стоит делать логику игры перемешиваю с ЮИ. В конечном счете может возникнуть не мало проблем. Сделай логику игры в отдельных классах так, чтобы эти классы не знали о существовании интерфейса. Это правильный подход.

По поводу сабжа. Если у тебя известна координата ячейки (например, 1 столбец, 3 строка), то просто проверяй соседние ячейки.

Код

private bool AllowInput(int x, int y)
{
    return
        (x+1 < sizeX && array[x+1, y] не пустой) ||
        (x-1 >= 0 && array[x-1, y] не пустой) ||
        (y+1 < sizeY && array[x, y+1] не пустой) ||
        (y-1 >= 0 && array[x, y-1] не пустой);
}



--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
Abbath1349
Дата 11.6.2011, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 214
Регистрация: 16.6.2010

Репутация: нет
Всего: нет



Цитата(-Mikle- @ 11.6.2011,  19:54)
логику игры перемешиваю с ЮИ. В конечном счете может возникнуть не мало проблем. 

а что такое ЮИ?
PM MAIL   Вверх
Gluttton
Дата 11.6.2011, 20:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начинающий
***


Профиль
Группа: Завсегдатай
Сообщений: 1170
Регистрация: 28.8.2008
Где: Феодосия

Репутация: 2
Всего: 54



Цитата(Abbath1349 @  11.6.2011,  20:01 Найти цитируемый пост)
а что такое ЮИ? 

UI же!


--------------------
Слава Україні!
PM MAIL   Вверх
-Mikle-
Дата 11.6.2011, 22:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 17
Всего: 59



User Interface, UI, ЮИ, Пользовательский интерфейс, Скрины и т.д...


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0443 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.