Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Prolog
Перезагрузить страницу Правильная структура данных
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
alex-chin alex-chin вне форума
Новичок
 
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 04.09.2006
По умолчанию 04.09.2006, 12:37

Есть задумка написать игру.
Это РПГ. Графика пока не интересует. Это только прототип.

Вопрос к спецам:
Как правильно организовать структуру данных
1. Игровое поле 20 х 75:
а. БД - assert retract
б. Список (почемуто кажется это это нереально)
2. Объекты Игрок, Монстры

В общем я склоняюсь в сторону БД, но ...
Ответить с цитированием
  (#2 (permalink)) Старый
TypucT TypucT вне форума
Member
 
Сообщений: 336
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 28.10.2005
По умолчанию 04.09.2006, 18:23

Не список - точно. Нужен произвольный доступ.
Ответить с цитированием
  (#3 (permalink)) Старый
TypucT TypucT вне форума
Member
 
Сообщений: 336
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 28.10.2005
По умолчанию 04.09.2006, 18:38

Если использовать БД, то описание игрового поля одного уровня может быть задано в отдельном файле прямо на прологе:
Код:
game_size(2,2).
cell(1,1,mount).
cell(1,2,forest).
cell(2,1,town).
cell(2,2,road).
hero(2,1,vasya, powerful).
creature(1,1, bat, weak).
Подгрузил - и играй
Ответить с цитированием
  (#4 (permalink)) Старый
alex-chin alex-chin вне форума
Новичок
 
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 04.09.2006
По умолчанию 04.09.2006, 19:04

Да согласен. Только как быть с функциональным подходом и побочным эффектом?.
По идеологии должно быть типа:

Обработка_хода(Состояние, НовоеСостояние)

толькополучается что Состояние - это огромная структура данных
Ответить с цитированием
  (#5 (permalink)) Старый
Винитарх Винитарх вне форума
Специалист
 
Аватар для Винитарх
 
Сообщений: 7,908
Сказал(а) спасибо: 2
Поблагодарили 297 раз(а) в 297 сообщениях
Регистрация: 01.03.2003
Адрес: Краснодар
По умолчанию 06.09.2006, 21:10

alex-chin пишет:
Цитата:
только получается что Состояние - это огромная структура данных
Игроков много - ходов много. Каждый ход модифицирует ту часть СОСТОЯНИЯ, которая требует модификации в данный момент игры. Т.е. сама игра обуславливает что модифицировать, а что нет.
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
alex-chin alex-chin вне форума
Новичок
 
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 04.09.2006
По умолчанию 08.09.2006, 17:37

Да это я понимаю,
неужели можно обойтись без assert retract?
Ответить с цитированием
  (#7 (permalink)) Старый
Винитарх Винитарх вне форума
Специалист
 
Аватар для Винитарх
 
Сообщений: 7,908
Сказал(а) спасибо: 2
Поблагодарили 297 раз(а) в 297 сообщениях
Регистрация: 01.03.2003
Адрес: Краснодар
По умолчанию 11.09.2006, 22:30

Ну почему же. Модификация и происходит с помощью assert retract. Просто незачем собирать в список всю БД и передавать её первым аргументом предикату
Обработка_хода(Состояние, НовоеСостояние).
Ходы в игре бывают качественно разные. Вот и пусть изменения происходят в зависимости от хода, и не передаются на верхний уровень.
Ответить с цитированием
  (#8 (permalink)) Старый
TypucT TypucT вне форума
Member
 
Сообщений: 336
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 28.10.2005
По умолчанию 13.09.2006, 15:31

Винитарх прав, состояние - это и есть БД, а БД - это и есть состояние игры.
Ход может выглядеть, например, так:
go:-
ask(Who,WhereX,WhereY),
retract(hero(X0,Y0,Who,Strength)),
assert(hero(WhereX,WhereY,Who,Strength)).
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Правильная сборка exe файла (правильная компиляция релиза) MaratZahidyl Visual C++ 3 17.08.2011 09:51
Динамическая структура данных. Работа с деревьями dexter44 Pascal 0 16.06.2011 00:16
Правильная работа с переменными ROma666 C++ Builder 11 11.11.2009 21:47
Правильная настройка брэндмауэра Paul Pierce Софт и программы 1 20.05.2007 20:41
Структура данных Дек в С++ CHELLL Вопросы начинающих программистов 1 19.04.2007 12:37
Правильная установка Borland C++ Lиssёноk Вопросы начинающих программистов 13 17.02.2007 17:47
Как написать программу динамические структура данных oracul Вопросы начинающих программистов 1 27.01.2005 03:50
структура данных сбалансированных деревьев caecus Prolog 1 19.12.2004 03:22
Что такое логическая структура базы данных etc Общие вопросы создания ПО 0 06.10.2004 14:04
Правильная максимизация окна kenon Visual C++ 3 17.08.2003 11:48
Создание программы на С++, "Структура данных и Алгоритм"" Curt Вопросы начинающих программистов 1 30.05.2003 12:17
Структура таблиц указанной базой данных Anonymous MSSQL Server 1 19.05.2003 17:35



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов