05.12.2007, 19:46 | #1 | ||
Новичок
Регистрация: 29.09.2007
Сообщений: 88
Репутация: 9
|
Игра "Реши задачку"
"Это нечто вроде интеллектуальной игры." ([CCCP] Monster) Суть игры сводится к тому, что задается задачка (по програмированию естественно). Тот кто ее решает (желательно с комментариями), имеет право загадать следующую, и так по цепочке. P.S. Еще можно вести статистику. Кто сколько решил задач. У кого задачи самые интересные, а у кого самые сложные. Потом лучших как-нибудь награждать. P.P.S. Конечно же, задающий должен знать решение своей задачи
__________________
Если сообщение исправлено, то я опять допустил очепятку) |
||
|
05.12.2007, 19:47 | #2 | ||
Новичок
Регистрация: 29.09.2007
Сообщений: 88
Репутация: 9
|
Задача (решал на Pascal)
Известно, что A и B - термы. Так же известно, что (T1+T2) - терм, если Т1 и Т2 - термы (сумма обязательно двух терм и в круглых скобках).
С клавиатуры вводится строка. Определить является ли введенная строка термом. Например: (А+В) - терм; ((А+В)+А) - терм; (А+В+В) - не терм.
__________________
Если сообщение исправлено, то я опять допустил очепятку) Последний раз редактировалось the_E.N.D.; 06.12.2007 в 17:50. |
||
|
05.12.2007, 21:16 | #3 | ||
Кандидат наук
Регистрация: 13.06.2005
Адрес: 0x00000000
Сообщений: 8,363
Репутация скрыта
|
Элементарщина. Решать можно уймой способов, но в данном случае разумен однопроходный вариант со стеком. Сделал, ясное дело, на C++. Сейчас пойду думать свою задачу.
Язык C++, компилятор MS VC++ 2005 Код:
//Элементарно, Ватсон! Даже не нужно грамматик никаких :) //Решается банальным стеком. Правила: //После '(' должен идти терм и '+' //A и B - термы //После '+' должен идти терм и ')' //')' закрывает открытый '(' терм #include <stack> #include <stdio.h> using namespace std; int main() { char c = ' ';//введёный символ stack<char> s;//Стек на символах. '(' - терм открыт; 'A' - есть первый терм при сложении, '+' - есть сложение, 'B' - есть второй терм при сложении; s.push('(');//Пихаем открытую скобочку в начало стека while ((c != '\t') && ((c = getc(stdin)) != '\n')) { switch (c) { case '(': if ((s.top() == 'A')||(s.top() == 'B')) { c = '\t';//Скобочка идёт после терма } else { s.push('('); } break; case 'A': case 'B': if ((s.top() == 'A')||(s.top() == 'B')) { c = '\t';//Терм идёт после терма } else { //Ставим соответствующее состояние if (s.top() == '(') s.top() = 'A'; else s.top() = 'B'; } break; case '+': if (s.top() != 'A') { c = '\t';//'+' идёт не после первого терма } else { //Ставим соответствующее состояние s.top() = '+'; } break; case ')': if (s.top() != 'B') { c = '\t';//закрытие идёт не после второго терма } else { s.pop();//убираем этот терм и ставим соотв. состояние if (s.empty()) c = '\t'; else if (s.top() == '(') s.top() = 'A'; else if (s.top() == '+') s.top() = 'B'; else c = '\t';//Предосторожность :) } break; default: c = '\t'; break; } if (s.empty()) c = '\t'; } //В стеке должен остаться всего один член и быть термом if ((s.size() != 1)||((s.top() != 'A')&&(s.top() != 'B'))) c = '\t'; if (c == '\n') printf("\ntrue!"); else printf("\nfalse!"); return 0; } Правда, не могу ручаться, что для запуска не потребуется редистрибутивы C++.
__________________
Товарищ, верь: пройдет она - Эпоха лживых, злых понятий. Весь мир очнется ото сна, И на обломках "демократий" Напишут наши имена! Мы были волшебницами (оригинальное фентези) Тень Войны (фанфик по ГП) |
||
|
05.12.2007, 22:14 | #4 | ||
Кандидат наук
Регистрация: 13.06.2005
Адрес: 0x00000000
Сообщений: 8,363
Репутация скрыта
|
Что ж, задачку для разминки выбрал. Надеюсь, все знаю игру в 15 (пятнашки). Если кто не знает - см. здесь.
Возьмём для сокращения времени расчётов вариант игры в 8 (т.е. поля 3x3 ячейки). Пользователь вводит начальную комбинацию как последовательность трёх рядов по три числа в каждом, где 0 обозначает пустую ячейку. Пример ввода: 3 8 2 4 1 5 0 7 6 Задача компьютера - вывести наименьшее число передвижений , приводящее к одному из двух конечных вариантов положения костяшек, т.е. 1 2 3 4 5 6 7 8 0 либо 1 2 3 4 5 6 8 7 0 Поехали. P.S. Подозреваю, что на этом тема заглохнет... P.P.S. Сейчас прикинул - простейшая схема жрёт память с жуткой скоростью. Потому допускаю просто набросок кода с рассчётом на то, что память неограниченна. Хотя улучшений алгоритма можно придумать уйму.
__________________
Товарищ, верь: пройдет она - Эпоха лживых, злых понятий. Весь мир очнется ото сна, И на обломках "демократий" Напишут наши имена! Мы были волшебницами (оригинальное фентези) Тень Войны (фанфик по ГП) Последний раз редактировалось pokibor; 06.12.2007 в 12:33. |
||
|
06.12.2007, 19:15 | #5 | ||
Новичок
Регистрация: 25.11.2007
Сообщений: 12
Репутация: 7
|
Space Master 1989
Вот наша игра, как пример игры на GM (правда ТАКОЙ пример не отображает широких возможностей Game Maker'а)
Название: Space Master 1989 Жанр: Скроллинг Шутер Разработчик: DeltaShadow Релиз: 2007 Размер: 5.44мб Ссылка для скачивания: http://deltashadow.com/gs/games/spac...ter%201989.rar Страница игры: http://deltashadow.com/gs/games/spac...aster_1989.htm Скрины: QE-рейтинг игры: подробнее о QE свои комментарии пишите в данной теме. Последний раз редактировалось -DS-; 06.12.2007 в 20:26. Причина: забыл добавить рейтинг |
||
|
06.12.2007, 19:21 | #6 | ||
Кандидат наук
Регистрация: 13.06.2005
Адрес: 0x00000000
Сообщений: 8,363
Репутация скрыта
|
Опять Game Maker? Смешно. Извините.
Я признаю только игры, сделаные на серьёзных движках и языках программирования.
__________________
Товарищ, верь: пройдет она - Эпоха лживых, злых понятий. Весь мир очнется ото сна, И на обломках "демократий" Напишут наши имена! Мы были волшебницами (оригинальное фентези) Тень Войны (фанфик по ГП) |
||
|
06.12.2007, 19:58 | #8 | ||
Игроман
Регистрация: 31.07.2006
Адрес: loltraktorville
Сообщений: 2,780
Репутация: 786
|
__________________
Люди — идиоты. Они сделали кучу глупостей: придумали костюмы для собак, должность рекламного менеджера и штуки вроде айфона, не получив взамен ничего, кроме кислого послевкусия. А вот если бы мы развивали науку, осваивали Луну, Марс, Венеру… Кто знает, каким был бы мир тогда? Человечеству дали возможность бороздить космос, но оно хочет заниматься потреблением — пить пиво и смотреть сериалы. Рей Бредбери. |
||
|
06.12.2007, 20:28 | #10 | ||
Новичок
Регистрация: 25.11.2007
Сообщений: 12
Репутация: 7
|
|||
|
06.12.2007, 20:53 | #12 | ||
Мастер
Регистрация: 20.06.2007
Сообщений: 255
Репутация: 156
|
-DS-
Ну мое мнение ты уже знаешь)
__________________
Подписи нет |
||
|
06.12.2007, 20:54 | #13 | ||
Игроман
Регистрация: 31.07.2006
Адрес: loltraktorville
Сообщений: 2,780
Репутация: 786
|
-DS-, тоесть, как я понял, разработчиком игры является DeltaShadow, и оценку QE проводит тоже DeltaShadow. О какой обьективности оценки может идти речь?
__________________
Люди — идиоты. Они сделали кучу глупостей: придумали костюмы для собак, должность рекламного менеджера и штуки вроде айфона, не получив взамен ничего, кроме кислого послевкусия. А вот если бы мы развивали науку, осваивали Луну, Марс, Венеру… Кто знает, каким был бы мир тогда? Человечеству дали возможность бороздить космос, но оно хочет заниматься потреблением — пить пиво и смотреть сериалы. Рей Бредбери. |
||
|
06.12.2007, 21:05 | #15 | ||
Новичок
Регистрация: 25.11.2007
Сообщений: 12
Репутация: 7
|
ORTODOX
на GM можно создать что угодно, я даже растровый редактор делал. Feanor62rus именно, что оценщик - не щадит нас, QE как бы немного отдалено от других структур... рейтинг 7.7 - более менее щедрый, т.к. проводилась оценка по QE 1.0, щас уже действует QE 1.1 с более жесткими правилами . Если у вас есть игра, присылайте на qe@deltashadow.com |
||
|
08.12.2007, 13:11 | #16 | ||
Новичок
Регистрация: 08.12.2007
Сообщений: 6
Репутация: 1
|
Universe: extend frontier.
Пишу концепцию новой игры. Параллельно пишу некоторые элементы программной реализации игры, базу данных объектов "игровой вселенной", алгоритмы взаимодействия объектов. Возможно в ближайшем времени попробую запустить сервер с текстовыми консолями для тестирования возможностей проекта. Понятно, что сделать качественную графику и звук без чужой помощи не смогу, но этот момент пока не наступил. Но я нуждаюсь в конструктивной критике, это будет меня подстёгивать в поиске новых решений.
Вселенная: расширяя пределы. Неограниченный пространством и единым сюжетом on-line игровой научно-фантастический мир, основой которого является взаимодействие компьютерных персонажей, имеющих сложную многоуровневую модель поведения, с живой и неживой природой. Персонажи игроков, вливаясь в мир участвуют в его развитии в одиночку или объединяясь между собой и персонажами, управляемыми искусственным интеллектом, борясь с капризами природы, соперничающими индивидами и объединениями. Игра в стиле RPG/Action (ролевая приключенческая игра активного действия) с элементами симулятора космического и наземного транспорта, экономической и военной стратегии. Участники игры имеют возможность вести собственные научные исследования, конструировать уникальные транспортные средства, строить комплексы наземных зданий и стационарных космических объектов. Тысячи звёздных скоплений, от нескольких звёзд, до нескольких десятков. Очень важно что, путешествуя постоянно, есть возможность попасть в звёздную систему ещё не открытую другими участниками игрового процесса. Десятки уникальных рас имеющих отличия не только во внешности, но и в поведении, и специфических для каждой расы технике и зданиях. В процессе развития игрового мира, участники обязательно встретят новые расы, и те будут вовлекаться в игровой процесс, при чём эти расы будут иметь разнообразное общественное устройство и разный уровень развития технологий. http://zp3.biz/universe-extend-frontier Последний раз редактировалось PavelZ; 27.10.2009 в 10:49. Причина: Устарело. |
||
|
11.12.2007, 14:24 | #18 | ||
Новичок
Регистрация: 08.12.2007
Сообщений: 6
Репутация: 1
|
В своей работе буду использовать такую связку Visual Studio 2008, СУБД, скрипты Питон (IronPython), графика VRML/X3D. Пока основная работа в СУБД . За месяц много не сделаешь при таких наполеоновских планах, тем более один.
Последний раз редактировалось PavelZ; 15.12.2007 в 11:41. |
||
|
11.12.2007, 15:32 | #20 | ||
Новичок
Регистрация: 08.12.2007
Сообщений: 6
Репутация: 1
|
Все объекты будут храниться в базе. Обработчики событий будут извлекать свойства модифицировать и обратно в базу. Разве только для особо динамичных событий будет создаваться арена, которая в принципе будет только кэшировать данные, как это сделать технически представляю пока смутно. Соответственно консоли будут обращаться либо непосредственно к базе либо к аренам. Возможно изобретаю велосипед, но как вижу многопользовательские игры дело молодое и каких-то проверенных решений на всеобщее обсуждение мало кто выносит.
|
||
|
|