|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
06.11.2012, 15:10 | #11 | ||
Форумчанин
Регистрация: 07.05.2011
Сообщений: 169
|
Цитата:
нет, проблема вывода на экран, конечно, никуда не уходит, но да - так проще - думать только о процессе. Цитата:
(описываю как это "примерно") Допустим, нарисована доска. Вот именно, что она полностью нарисована, jpeg, пускай будет. Хотя нет, неверное не он, ну не суть. картинка. На этой картинке есть типа наш "массив" 8х8 белых и чёрных, с боков буквы и цифры, это понятно. И есть нарисованные фигурки. 32 штуки. Они уже идут как бы... ну как отдельные картинки. Так вот, допустим, я беру "пешку" и передвигаю её вперёд на 1 картинку - при этом, если я беру пешку, то она независима от доски - это как бы 2 разные картинки, которые наложились. А клетки доски... они должны быть тем самым массивом, который я и буду задавать внутри. Вот типа сейчас. И я думала, (сейчас можно начинать смеяться), что эти клетки на jpeg-овой доске будут под каким-то точками, чтобы под точками был "массив". И вот когда фигурку перетаскиваешь на эту "точку", то там уже и идут все проверки и так далее. да пускай будет даже так, что ты нажимаешь на фигурку, а она уже "подсвечивает" возможные ходы, вообще. просто фигурка и доска - разные вещи - картинки, я вот о чём. Я чувствую, что говорю какие-то фантастические вещи - если исходить из ситуации, что там несколько картинок, - такое возможно? Если да, то это как делать? ну хоть в общих чертах)))) |
||
06.11.2012, 15:47 | #12 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,065
|
Картинки просто накладываются друг на друга. Сначала есть пустой холст. Потом на него рисуется доска. Поверх доски уже рисуется фигура (точнее картинка с нужной фигурой). Картинки для простоты лучше взять BMP. Все картинки всех фигур для простоты должны соответствовать размеру ячейки доски. Фигуры нужно будет выводить с прозрачностью. Два основных метода:
1) "Прозрачные" места заполнить каким-нибудь заведомо ненужным цветом (пурпурный, салатовый, ...) 2) Создать еще одну монохромную картинку-маску. Про это уже читать нужно литературу и смотреть как приятнее реализовывать будет. Теперь про перемещение фигур. Для начала я бы с этим не заморачивался и реализовывал ход так: 1) Левым щелчком выбираем фигуру и как-то это обозначаем для пользователя (рамочку там какую рисуем или подсвечиваем возможные ходы) 2) Еще одним щелчком указываем ячейку, куда нужно переместить фигуру или же выбираем другую фигуру. Если же хочется именно мышкой таскать фигуру, тогда: 1) Рисуем доску со всеми фигурами, кроме перетаскиваемой и больше не трогаем. 2) Перетаскиваемую фигуру выносим как отдельное окно (не забываем, что в Windows кнопки и поля ввода - тоже окна) и перемещаем вслед за курсором мышки. 3) При отпускании мышки смотрим над какой ячейкой находится центр фигуры и туда её перемещаем (не окно перемещаем, не картинку, а фигуру в контексте игры). 4) Убиваем это перетаскиваемое окно 5) Перерисовываем доску и автоматом получаем новое расположение фигур (которое мы изменили на шаге 3). |
06.11.2012, 16:09 | #13 | ||
Форумчанин
Регистрация: 07.05.2011
Сообщений: 169
|
Цитата:
Вот тут пожалуйста расскажите мне))) Цитата:
ой pu4koff, спасибо вам огромное!)))) |
||
06.11.2012, 16:34 | #14 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,527
|
Цитата:
Есть поле ввода (банальный Edit), в шахматной нотации записываем ход (Фа4-е8) и ... 1. внутренний мир 2. отражение внутреннего мира на экран ("доска на экране") 3 Управление ходами 3.1. ручное управление ходами (командная строка). 3.2. управление мышкой (перетаскивание и прочее) 4. ИИ (выбор хода компьютером)
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 06.11.2012 в 16:42. |
|
06.11.2012, 17:03 | #15 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,065
|
т.к. С++, значит будет ООП.
Связывание картинок с программой - интересная формулировка конечно, ну да ладно. Т.к. будет использоваться С++, значит будут классы. Классы проектируем исходя из игрового процесса, т.е. они не должны никак зависеть от реализации. Допустим, мы нажали кнопку "Новая игра", это впоследствии может выглядеть так: Код:
Код:
Код:
Последний раз редактировалось Beermonza; 07.11.2012 в 15:18. Причина: сообщение лучше ограничивать по ширине |
06.11.2012, 17:14 | #16 |
Форумчанин
Регистрация: 07.05.2011
Сообщений: 169
|
Супер)))
Ещё у меня есть вопрос про классы. Вот смотрите. в С++ мы в самом начале подключаем библиотеки. можно создать свою библиотеку, где будут все эти классы и уже, скажем так, определённые переменные, которые чётко отвечают за что-то, ну, например, переменная ФЕРЗЬ - вот она отвечает за всё в целом, что "знает" ферзь (класс). Или, мы классы должны описывать там же, где будет и всё тело? |
06.11.2012, 17:22 | #17 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,065
|
Для начала не нужно заморачиваться и суйте всё в один проект, потом разберётесь и выделите по библиотекам или еще как разбросаете. В учебных проектах не нужно бежать впереди паровоза и строить наполеоновские планы. С большой долей вероятности будет ошибка по неопытности и паровоз уедет в другом направлении, а величие наполеона ограничится его ростом. Если этот проект не "заглохнет" и энтузазизм не угаснет, то он будет переписан "с нуля" раз несколько из-за постигнутого просветления
|
06.11.2012, 17:45 | #18 | |
Форумчанин
Регистрация: 07.05.2011
Сообщений: 169
|
Цитата:
Нет-нет, всё верно)) Только это не совсем учебный проект, это всё очень и очень как серьёзно. Пока есть идея икс и горка энтузиазма - надо быстрее-быстрее учиться))) *ну и вопросов много, хочется получать ответы)) Ещё раз, большое спасибо! Через неделю-другую, когда я со всем этим разберусь и переварю, что-то попробую сделать, я выложу сюда код(ы). Обязательно заходите посмотреть на это "бредовое дело"))))) Буду рада)))) |
|
06.11.2012, 17:59 | #19 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,065
|
классы потом без проблем вынесутся в библиотеку по мере необходимости, поэтому сейчас я бы не стал заморачиваться на эту тему.
По личному опыту могу сказать следующее: 1) Чем быстрее будет результат, тем лучше для энтузазизма. Не нужно пытаться довести всё до идеала и пусть будет некоторое количество корявых мест, важно, чтобы хоть что-то работало, а иначе энтузазизм угаснет 2) Временные "костыли" и "заплатки" имеют привычку становится постоянными, поэтому важно не переусердствовать с подпиткой энтузазизма быстрым результатом в ущерб качеству кода. |
09.11.2012, 14:13 | #20 |
Форумчанин
Регистрация: 17.12.2011
Сообщений: 111
|
Я бы начал с написания ИИ, ибо если это дело завалить, то не стоит продолжать весь проект в целом
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создание игры "Крестики нолики" на php | Loki1993 | PHP | 4 | 20.09.2012 20:33 |
Создание игры "Змейка" | asmars | C++ Builder | 6 | 23.10.2011 15:20 |
PHP как язык для обучения программированию "с нуля"? | DooM1k | Свободное общение | 10 | 31.03.2008 17:58 |
Создание игры "Крестики-нолики" | Cubar | Помощь студентам | 9 | 22.01.2008 23:07 |