Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 0
Регистрация: 11.11.2013
Сообщений: 13

Крестики нолики. Как упростить метод обновления поля (Windows Form App)

17.02.2014, 00:41. Показов 2017. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пытаюсь сделать крестики нолики.
Игровое поле - 9 кнопок.
Вот так выглядит часть метода обновления картинок на кнопках:
C#
1
2
3
if (gField.GetSymbol(0, 0) == Symbol.Cross) Position1.Image = Image.FromFile(Output.CrossPass);
if (gField.GetSymbol(0, 0) == Symbol.Circle) Position1.Image = Image.FromFile(Output.CirclePass);
if (gField.GetSymbol(0, 0) == Symbol.Empty) Position1.Image = null;
Position1 -> первая кнопка; gField -> двумерный массив набитый символами
Метод соответственно в 9 раз больше (Для каждой кнопки подобный код с изменением ячейки поля)

Как я примерно хочу его переделать:
C#
1
2
3
4
5
6
7
8
for (byte i = 0; i < 3; i++)
                for (byte j = 0; j < 3; j++ )
                {
                    switch(gField.GetSymbol(i, j))
                        case Symbol.Cross: // Вызвать нужную кнопку и присвоить ей крестик 
                        break;
                        .......
                }
Кнопки упорядочены по Button.TabIndex Соответственно кнопка в ячейке [0,0] имеет индекс = 1, а в [2,2] = 9
Есть мысль обратится к каждой кнопке поочередно, инкрементируя ее индекс, но не знаю как это осуществить.

Было бы классно если бы отписались. Спасибо

Добавлено через 3 минуты
По сути единственное решение которое я пока вижу - это попытатся Обратится к кнопке по значению ее свойства TabIndex
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.02.2014, 00:41
Ответы с готовыми решениями:

Очистка поля в Крестики-Нолики
я создал игру крестики нолики и там у меня после игры пишет какой то пользователь выиграл, я поставил textbox с функцией очистки, теперь я...

Создание поля для игры крестики-нолики
как реализовать: пишу игру крестики-нолики у меня программа предусматривает выбор размера поля, там 5х5, 15х15 и тд нужно, чтоб когда...

Компоненты для поля крестики нолики, распологаются неправильно
Кручу верчу, так и сяк пробовал, но чета поле создать для крестиков ноликов не могу. Хочется именно в for все провернуть, а не указывать...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.02.2014, 00:41
Помогаю со студенческими работами здесь

Косяк с блокированием поля после проигрыша(Крестики-нолики)
Проблема с каким-то из &quot;LoockPole&quot; В итоге,когда выигрывает ПК, мои шаги не блокируются и я могу ставить дальше пока не выиграю или не...

Игра крестики - нолики. Установка шрифта, текстового поля
Здравствуйте! С недавнего времени занялся программированием на Java, читаю лекции в инете на онлайн-курсах, смотрю видеоуроки и читаю...

Игра Крестики - нолики: реализовать выбор размера игрового поля
Привет всем. Это игра крестики нолики, играть можно в режиме 3х3. А можно сделать, чтобы был выбор режима , например 3х3, 5х5, 9х9. Если...

Крестики-нолики. Работает корректно только для поля 3x3
Опишу вкратце суть, пишу крестики нолики для полей 3х3, 4х4, 5х5, то есть поле задает пользователь, основная задача - это написать условие...

Интеграция Ad в windows form app
Собственно сабж. Как интегрировать Ad (всплывающее или любое) в windows form app. C#. В инете не мало инфы и сервисов, но все они под...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru