|
-6 / 3 / 0
Регистрация: 16.04.2011
Сообщений: 55
|
|
Нужно составить функцию01.05.2011, 21:23. Показов 808. Ответов 9
Метки нет (Все метки)
Что бы меня все с первого раза понял попытаюсь как можно больше объяснить в первом сообщении. Я конечно ленивый до жути и не самый старательный студент в группе, но все же купить курсовую мне не позволяет чувство собственного достоинства, и по этому я решил взяться за нее сам.
Задача курсовой - игра "Сапер". Так как мы не учили реализацию графических программ игра должна работать в консольном режиме, управление только путем ввода данных(ручной ввод координат выбираемой клетки). Первое что мне пришло в голову использовать два двумерных массива(целочисленный и строковый). Целочисленный для хранения содержания поля(0-пустая клеточка поля, от 1 до 8-количество мин вокруг клетки, 9 и больше-клетка содержащая мину). Ну а строковый массив для создания более менее красивого и удобного отображения поля(мина-"*",пустая клеточка-"_", а количество мин вокруг так и остается от "1" до "8"). Принципе практически вся программа у меня готова, но я так и не придумал как должна работать одна функция. Именно о ней и пойдет речь. В общем задача которую я не смог решить состоит в том, что при выборе клетки которая является пустой должны открываться все соседние пустые клетки и ближайшие крайние клетки содержащие цифры. Предлагайте идеи реализации данной функции. Заранее всем очень благодарен.
0
|
|
| 01.05.2011, 21:23 | |
|
Ответы с готовыми решениями:
9
Нужно составить функцию ввода и вывода по данной задаче Пожалуйста! Нужно составить переключательную функцию! Просто написать, дальше я всё сделаю Задача линейного программирования, нужно составить систему неравенств и линейную функцию по условию задачи |
|
5 / 5 / 0
Регистрация: 20.03.2011
Сообщений: 180
|
|
| 01.05.2011, 21:32 | |
|
Для начала попробуйте воспользоваться поиском в google. Курсовых с данной темой очень много. http://www.kurslab.ru/miner.html. http://www.bestreferat.ru/referat-142992.html.
0
|
|
|
-6 / 3 / 0
Регистрация: 16.04.2011
Сообщений: 55
|
||
| 01.05.2011, 21:43 [ТС] | ||
|
0
|
||
|
114 / 114 / 13
Регистрация: 29.04.2010
Сообщений: 240
|
|
| 01.05.2011, 21:49 | |
|
Например, это можно сделать рекурсивно. Функция открытия клетки открывает клетку (извините за тавтологию) и, если клетка пустая, вызывает саму себя для открытия всех 8 соседних.
0
|
|
|
-6 / 3 / 0
Регистрация: 16.04.2011
Сообщений: 55
|
|
| 01.05.2011, 22:02 [ТС] | |
|
Я об этом уже думал, но если каждой последующей клетке задавать все направления то постоянно будут проверяться одни и те же клетки, а это для системы не выгодно. Можно попробовать усовершенствовать такую функцию, но у меня уже голова пухнет.
0
|
|
|
114 / 114 / 13
Регистрация: 29.04.2010
Сообщений: 240
|
|
| 01.05.2011, 22:06 | |
|
Ну можно флаги ставить) что-то вроде is_opened = true. И проверять их при открытии (зачем открывать клетку, если она уже открыта?).
0
|
|
|
-6 / 3 / 0
Регистрация: 16.04.2011
Сообщений: 55
|
|
| 01.05.2011, 22:15 [ТС] | |
|
Уточни пожалуйста, а то голова уже не варит, через неделю уже сессия, так что и на выходных одна учеба.
![]() Как именно нам поможет то, что у нас будет переменная указывающая на нулевые элементы ?
0
|
|
|
114 / 114 / 13
Регистрация: 29.04.2010
Сообщений: 240
|
||
| 01.05.2011, 22:24 | ||
Просто я предполагал, что каждая клетка в игре - это структура, в которой есть три поля - цифровое значение (показывает, сколько мин вокруг), некая логическая переменная, отвечающая за то, является ли клетка миной, и логическая переменная is_opened (собственно, флаг), отвечающая за то, открыта клетка или нет. Вначале все is_opened = false (все клетки закрыты), потом, при открытии клетки, меняем ее флаг: is_opened = true.
0
|
||
|
-6 / 3 / 0
Регистрация: 16.04.2011
Сообщений: 55
|
|
| 01.05.2011, 22:43 [ТС] | |
|
Вообще идея хорошая, но мою проблему это не решает
![]() Та и программу теперь придется практически полностью переделывать, по крайней мере так она моему преподавателю наверняка больше понравится ![]() Добавлено через 16 минут Я нашел решение. ![]() Имея логическую переменную я могу избежать повторной проверки открытых клеток рекурсивной функцией которая будет проверять все рядом стоящие. Спасибо.
0
|
|
|
114 / 114 / 13
Регистрация: 29.04.2010
Сообщений: 240
|
|
| 01.05.2011, 22:46 | |
|
Всегда пожалуйста.
Не по теме: :rofl:
0
|
|
| 01.05.2011, 22:46 | |
|
Помогаю со студенческими работами здесь
10
Составить функцию, позволяющую определить позицию первого.Нужно исправить ошибку(програма написана полностью) Составить рекурсивную функцию, которая вычисляет функцию Аккермана по формуле Очень нужно! на экзамене сижу, нужно функцию переделать в процедуру
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|