Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
pSychOo
-122 / 3 / 1
Регистрация: 16.04.2011
Сообщений: 55
#1

Нужно составить функцию - C++

01.05.2011, 21:23. Просмотров 350. Ответов 9
Метки нет (Все метки)

Что бы меня все с первого раза понял попытаюсь как можно больше объяснить в первом сообщении. Я конечно ленивый до жути и не самый старательный студент в группе, но все же купить курсовую мне не позволяет чувство собственного достоинства, и по этому я решил взяться за нее сам.

Задача курсовой - игра "Сапер". Так как мы не учили реализацию графических программ игра должна работать в консольном режиме, управление только путем ввода данных(ручной ввод координат выбираемой клетки). Первое что мне пришло в голову использовать два двумерных массива(целочисленный и строковый). Целочисленный для хранения содержания поля(0-пустая клеточка поля, от 1 до 8-количество мин вокруг клетки, 9 и больше-клетка содержащая мину). Ну а строковый массив для создания более менее красивого и удобного отображения поля(мина-"*",пустая клеточка-"_", а количество мин вокруг так и остается от "1" до "8").

Принципе практически вся программа у меня готова, но я так и не придумал как должна работать одна функция. Именно о ней и пойдет речь.

В общем задача которую я не смог решить состоит в том, что при выборе клетки которая является пустой должны открываться все соседние пустые клетки и ближайшие крайние клетки содержащие цифры.

Предлагайте идеи реализации данной функции. Заранее всем очень благодарен.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.05.2011, 21:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Нужно составить функцию (C++):

Составить функцию, определяющую, является ли ее целый аргумент простым числом. Использовать эту функцию для п - C++
Составить функцию, определяющую, является ли ее целый аргумент простым числом. Использовать эту функцию для подсчета количества простых...

Составить функцию, определяющую, является ли ее целый аргумент простым числом. Использовать эту функцию для п - C++
Составить функцию, определяющую, является ли ее целый аргумент простым числом. Использовать эту функцию для подсчета количества простых...

В магазине работает 5 человек, нужно составить график их работы, нужно что бы каждый день работало по 3 чел - C++
В магазине работает 5 человек, нужно что бы каждый день работало по 3 человека, но что бы через день работы каждый из этих 3 отдыхал, а на...

составить функцию - C++
ребята,немогу саму функцию составить нужна функция для подсчета суммы элементов первого столбца без одного последнего элемента, сумму...

Составить функцию - C++
Приветствую ребята! Нужна помощь, помогите решить задачу:) Заранее благодарен. Составьте функцию, которая сравнивает две строки,...

Нужно оптимизировать функцию - C++
Немножко не шарю но она должна сортировать пузырьком: #include <iostream> #include <time.h> using namespace std; int pokerface...

9
.Malek.
5 / 5 / 0
Регистрация: 20.03.2011
Сообщений: 180
01.05.2011, 21:32 #2
Для начала попробуйте воспользоваться поиском в google. Курсовых с данной темой очень много. http://www.kurslab.ru/miner.html. http://www.bestreferat.ru/referat-142992.html.
0
pSychOo
-122 / 3 / 1
Регистрация: 16.04.2011
Сообщений: 55
01.05.2011, 21:43  [ТС] #3
Цитата Сообщение от .Malek. Посмотреть сообщение
Для начала попробуйте воспользоваться поиском в google. Курсовых с данной темой очень много.
Мне не нужна курсовая! Я сделал практически всю программу, мне нужно только одна функция.
0
prazuber
110 / 110 / 3
Регистрация: 29.04.2010
Сообщений: 240
01.05.2011, 21:49 #4
Например, это можно сделать рекурсивно. Функция открытия клетки открывает клетку (извините за тавтологию) и, если клетка пустая, вызывает саму себя для открытия всех 8 соседних.
0
pSychOo
-122 / 3 / 1
Регистрация: 16.04.2011
Сообщений: 55
01.05.2011, 22:02  [ТС] #5
Я об этом уже думал, но если каждой последующей клетке задавать все направления то постоянно будут проверяться одни и те же клетки, а это для системы не выгодно. Можно попробовать усовершенствовать такую функцию, но у меня уже голова пухнет.
0
prazuber
110 / 110 / 3
Регистрация: 29.04.2010
Сообщений: 240
01.05.2011, 22:06 #6
Ну можно флаги ставить) что-то вроде is_opened = true. И проверять их при открытии (зачем открывать клетку, если она уже открыта?).
0
pSychOo
-122 / 3 / 1
Регистрация: 16.04.2011
Сообщений: 55
01.05.2011, 22:15  [ТС] #7
Уточни пожалуйста, а то голова уже не варит, через неделю уже сессия, так что и на выходных одна учеба.
Как именно нам поможет то, что у нас будет переменная указывающая на нулевые элементы ?
0
prazuber
110 / 110 / 3
Регистрация: 29.04.2010
Сообщений: 240
01.05.2011, 22:24 #8
Цитата Сообщение от pSychOo Посмотреть сообщение
Как именно нам поможет то, что у нас будет переменная указывающая на нулевые элементы ?
Понятия не имею

Просто я предполагал, что каждая клетка в игре - это структура, в которой есть три поля - цифровое значение (показывает, сколько мин вокруг), некая логическая переменная, отвечающая за то, является ли клетка миной, и логическая переменная is_opened (собственно, флаг), отвечающая за то, открыта клетка или нет. Вначале все is_opened = false (все клетки закрыты), потом, при открытии клетки, меняем ее флаг: is_opened = true.
0
pSychOo
-122 / 3 / 1
Регистрация: 16.04.2011
Сообщений: 55
01.05.2011, 22:43  [ТС] #9
Вообще идея хорошая, но мою проблему это не решает
Та и программу теперь придется практически полностью переделывать, по крайней мере так она моему преподавателю наверняка больше понравится

Добавлено через 16 минут
Я нашел решение.
Имея логическую переменную я могу избежать повторной проверки открытых клеток рекурсивной функцией которая будет проверять все рядом стоящие.
Спасибо.
0
prazuber
110 / 110 / 3
Регистрация: 29.04.2010
Сообщений: 240
01.05.2011, 22:46 #10
Всегда пожалуйста.

Не по теме:

0
01.05.2011, 22:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.05.2011, 22:46
Привет! Вот еще темы с ответами:

Нужно переделать функцию С++ - C++
Нужно переделать функцию, ну или решить через рекурсию. Задача состоит в том, что надо вывести все возможные индексы массива Рекурсией. я...

Нужно написать функцию. - C++
Привет всем. Есть задача, нужно описать функцию для поиска последнего вхождения искаемого символа. Также у меня есть прототип функции:...

Помогите составить функцию... - C++
Здравствуйте помогите решить задачку..... "Составить функцию, которая будет определять является ли введенное пользователем число n...

Составить функцию нахождения - C++
Добрый день уважаемые форумчане!!! Недавно начали "изучать" в университете с++, и сразу возникли проблемы с преподавателем(ничего не...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.