|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
30.05.2015, 14:10 | #1 |
Регистрация: 21.04.2013
Сообщений: 5
|
Красивая реализация шахматной доски
Добрый день.
Думаю над реализацией шахматной доски. Необходимо создать массив доски, чтобы при обращении к его элементу мы обращались к фигуре, которая "стоит на этой клетке". Стоит заметить, что "фигура" может принадлежать разным классам "пешка", "слон", "ферзь", и т.д и соответственно иметь свои методы. Иначе говоря, меня интересует хранение экземпляров разных классов в одном массиве "шахматная доска". Мне в голову приходит лишь массив указателей, которые ссылаются на экземпляры фигур разных классов. Но это, как мне кажется невозможно( Последний раз редактировалось BestStrikS; 30.05.2015 в 15:28. Причина: Перефазировал задачу |
30.05.2015, 14:18 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Я бы наверное кинул на форму DataGridView и рисовал бы в нем. Ну в смысле обрабатывал бы его события отрисовки клеток.
I'm learning to live...
|
30.05.2015, 14:57 | #3 |
Регистрация: 21.04.2013
Сообщений: 5
|
Меня интересует хранение экземпляров разных классов в одном массиве "шахматная доска". Отрисовка доски и получение координат массива при клике на клетку не составляет проблем.)
|
30.05.2015, 15:50 | #4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Ну я бы для начала поинтересовался, можно ли привязать к ячейке некий объект. Должно быть какое-то свойство. Каежтся в шарпее этим занимается DataBinding, но нужно уточнить как именно он работает.
I'm learning to live...
|
04.06.2015, 18:37 | #5 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,323
|
Давно думаю начать составлять свою диаграмму классав на UML для шахмат. Возможно вам поможет мысль покапать в эту сторону. Можно много разных примеров-картинок найти, если погуглить: chess uml
В моём случае с отрисовкой будет проще, так как найти готовые 3D модели фигур для движка Unity - не проблема, как и двигать фигуры. Но есть проблема с диаграммой классов со спецификой движка Последний раз редактировалось 8Observer8; 04.06.2015 в 18:39. |
05.06.2015, 11:48 | #6 |
Участник клуба
Регистрация: 13.01.2009
Сообщений: 1,353
|
Можете использовать OpenTK. Кидаете на форму GLControl, обрабатываете его события OnLoad, OnResize, OnPaint с помощью функций OpenGL. Что касается логики, то тут вообще все просто. Пишите классы для всех фигур, эти классы наследуете от одного класса, например, ChessFigure, в котором объявляет поле и параметр, отвечающий за принадлежность к клетке на шахматной доске (это может быть хоть ссылка на экземпляр класса клетки, которая будет отрисовываться на доске). Как этот параметр менять - дело ваше - можете вручную, можете событиями. Объявляете массив List<ChessFigure>. Хотите конвертер напишите к нему, хотите конвертер статическим методом объявите в самом классе - вариантов куча.
Я недавно писал модуль к ПО. И мне нужно было отобразить Enum в ListBox, а при переключении выделения в списке выводить свой UserControl на часть формы. Я использовал именно такое наследование с конвертером. Мне понравилась методика.
"Тебе то может на меня и насрать, но твои глаза меня обожают!"
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
На какой по счету клетке прервется заполнение шахматной доски по алгоритму Сете, если имеется только N зерен? | m4d1 | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 26.03.2014 09:47 |
Создание своего класса в Delphi 7 - фигуры для шахматной доски | electric | Компоненты Delphi | 18 | 24.10.2013 15:06 |
Вывести на экран квадратные окна 8х8 в виде шахматной доски. Каждое нажатие клавиши клавиатуры вызывает смену цвета окон | zzz6 | Помощь студентам | 6 | 05.07.2011 21:33 |
Обход шахматной доски конем | wazaaaup | Помощь студентам | 1 | 04.07.2011 20:54 |
Пролог. Обход конем шахматной доски | Gambler | Помощь студентам | 9 | 08.12.2010 22:19 |