Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
1 / 1 / 0
Регистрация: 08.02.2013
Сообщений: 49

Игра по типу демократии

16.10.2013, 17:39. Показов 1367. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, я решил сделать игру по типу демократии (есть поле, например 10х10, и каждый ход генерируется фигурка, ее надо переносить на поле, и если будет рядом с ней еще 2 таких же картинок, то они преобразуются в другую картинку выше рангом). Так вот, мне нужна помощь в том, как проверить, если ли рядом с картинкой в соседних ячейках еще 2 таких же картинки (чтобы они все были с общими сторонами) и удалить их. Как реализовать этот момент?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.10.2013, 17:39
Ответы с готовыми решениями:

Игра полоска, по типу спичек
игра с компьютером на полоске stringgrid, можно закрашивать до 3 ячейки. короче когда компьютер ходит ячейки не закрашиваются, а потом...

Игра по типу сапера
Ребят есть у кого конфигурация игры сапера? Типа такого http://www.vr-online.ru/content/1s-saper-na-1s-8h-obychnoe-prilozhenie-6468 Все...

игра по типу О'Счастливчик (GUI)
есть рабочий вариант, вопросы и ответы беруться из .xls файла с одной страницы. варианты ответов перемешиваются в рандомном порядке. у...

8
 Аватар для enk
47 / 46 / 26
Регистрация: 16.06.2012
Сообщений: 177
16.10.2013, 18:12
Двумерным массивом
Pascal
1
array[0..9] of array[0..9] of byte;
0
Заблокирован
16.10.2013, 18:36
yaran,
Для этого нужно делать игру как следует. Игровое поле для отображения. А для игры нужен двумерный массив. Вся игра будет происходить в нём.
К примеру у масcива имя Space

Каждая ячейка имеет статус
0- ничего нет
1 и далее ранги
И вот проверяем ячейку
Delphi
1
2
3
4
5
6
7
CyrRang:= Space[x,y]; //Получаем статус ячейки
if (Space[x-1,y]= CyrRang) and  (Space[x+1,y]= CyrRang) then
                                             begin;
                                             Space[x,y]:=0;
                                             Space[x-1,y]:=0;
                                             Space[x+1,y]:=0;  
                                             end;
После того, как ход сделан и весь массив принял текущее состояние, цикл сканирует его и каждый элемент отображает на игровом поле.

Добавлено через 3 минуты
enk,
Не путайся под ногами

Двухмерный массив объявляется так
Delphi
1
Space: array[0..11, 0..11] of byte;
Дело тут вот в чём Игровое поле 10 на 10
Но.. у него есть края. И дело в том, что при сравнении на краю... с чем будешь сравнивать.
А так лучше присобачить к игровому поле "стенки" вот они и будут по линиям 0 и 11 там записано значение, скажем 255
Сделать это надо так.
Объявляете массив-константу. В нём "рисуете" исходное поле.
При начале игры или при следующей игре он копируется в ваше игровое поле.

И вообще, подобные игры делаются на "таблицах"
Исходный рисунок - таблица
Игровое поле - таблица.
Только не путайте с компонентом таблица.
Таблица - это многомерные массивы, хранящие исходные и изменяемые в процессе данные
1
1 / 1 / 0
Регистрация: 08.02.2013
Сообщений: 49
16.10.2013, 18:37  [ТС]
спасибо, будем пробовать
0
 Аватар для enk
47 / 46 / 26
Регистрация: 16.06.2012
Сообщений: 177
17.10.2013, 15:27
Цитата Сообщение от Lirrk Посмотреть сообщение
Двухмерный массив объявляется так
Delphi
1
Space: array[0..11, 0..11] of byte;

Не по теме:

Ах, сударь, простите, что помешал! Конечно же только так, и никак более! И TArray<array of byte> тоже нельзя, нет.



Добавлено через 45 секунд
Цитата Сообщение от Lirrk Посмотреть сообщение
Но.. у него есть края. И дело в том, что при сравнении на краю... с чем будешь сравнивать.
Проверять на выход за границы массива не модно или стало слишком сложно?

Добавлено через 4 минуты
Цитата Сообщение от Lirrk Посмотреть сообщение
Объявляете массив-константу. В нём "рисуете" исходное поле.
В суть игры не углублялся, но какой смысл, если стартовое поле всегда будет одинаковое? Может всё-таки не константу? И заполнять в цикле случайными фигурами, а при создании новой игры заполнять заново.
0
Заблокирован
17.10.2013, 15:42
enk,
Зачем проверять. когда проще ограничить? Представьте что у вас лабиринт. Вы там тоже будете проверять? А если вы не знаете где стенка и она может быть где угодно? так же и здесь. Самые лучшие и быстрые игры сделаны на основе таблиц. Если игровое поле стандартно, тогда константа. Если меняется. Тогда можно и генерировать. Это не принципиально. Я высказал свой подход. Он освоен на огромном опыте. Я тоже когда-то проходил через всё это. Я тоже писал много чего не так. И со временем у меня выработались принципы написания игр. А со временем я узнал, что многие подходы применяются профессионалами. Ну раз нравится наступать на грабли, то пожалуйста. Не нужны простые оптимальные решения - пожалуйста. Я не против.
0
 Аватар для enk
47 / 46 / 26
Регистрация: 16.06.2012
Сообщений: 177
17.10.2013, 15:47
Кликните здесь для просмотра всего текста
Цитата Сообщение от Lirrk Посмотреть сообщение
enk,
Зачем проверять. когда проще ограничить? Представьте что у вас лабиринт. Вы там тоже будете проверять? А если вы не знаете где стенка и она может быть где угодно? так же и здесь. Самые лучшие и быстрые игры сделаны на основе таблиц. Если игровое поле стандартно, тогда константа. Если меняется. Тогда можно и генерировать. Это не принципиально. Я высказал свой подход. Он освоен на огромном опыте. Я тоже когда-то проходил через всё это. Я тоже писал много чего не так. И со временем у меня выработались принципы написания игр. А со временем я узнал, что многие подходы применяются профессионалами. Ну раз нравится наступать на грабли, то пожалуйста. Не нужны простые оптимальные решения - пожалуйста. Я не против.

Не по теме:

Просто дак дерзко и активно начали отстаивать свою позицию, как будто она одна единственная.

0
Заблокирован
17.10.2013, 15:48
enk,
Из тех, что предложено - да. Предложите лучше - заткнусь.
0
 Аватар для enk
47 / 46 / 26
Регистрация: 16.06.2012
Сообщений: 177
17.10.2013, 21:20
Действительно есть разница в том, как объявлять массив?
Цитата Сообщение от enk Посмотреть сообщение
Space: array[0..11, 0..11] of byte;
Это даст хоть +0.1% к производительности, по сравнению с объявлением по-другому?
Цитата Сообщение от Lirrk Посмотреть сообщение
Представьте что у вас лабиринт.
В данной конкретной задаче это не требуется, т.к. чётко задан размер матрицы. И можно просто проверять
Delphi
1
2
if (y < length(matrix)) then
  if (x < matrix[y]) then
Хотя, вариант со стенками тоже не плох, можно в цикле 0..1 сделать
Delphi
1
case matrix[y + i1, x + i2] of...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.10.2013, 21:20
Помогаю со студенческими работами здесь

Простая игра по типу игры в кости
Нужно написать игру на с++. Есть два игрока у каждого по 500 очков. По очереди бросают кости 2 кубика (генератор случайных чисел) результат...

Игра по типу телешоу Поле Чудес
Всем привет ребята, сразу скажу знания пхп у меня не сильные по этому прошу помощи в реализации одного скриптЦа. Нужно сделать некий...

Трансформация демократии в социализм (законы Паркинсона)
Сирил Паркинсон в своей книге писал, что в обществе, в котором он жил, работает закон – чиновники плодят новых чиновников, т.е....

Игра по типу "Поле чудес"
В окне программы вводится несколько звёздочек - ******, которые скрывают слово ( например CABBAGE - c букв первой половины английского...

Какие нации в Civilization 5 Brave New World больше всего склонны к Демократии?
Хочу поиграть за Россию в порядке, против всех демократических стран)


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru