Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Лабиринт на с++  (Прочитано 3439 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Гриб_под_зонтом

  • Автор темы
  • Активист
  • *
  • Сообщений: 301
    • Просмотр профиля
Лабиринт на с++
« : 11 Января 2015, 21:00:46 »
Привет, форумчане :D
Вот решил написать простенький лабиринт на с++. В общем, играйте на здоровье. Может быть скоро добавлю новые уровни ;)
(Нажмите, чтобы показать/скрыть)
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 11 Января 2015, 21:34:01 от Гриб_под_зонтом »
Hp 250 G3: 8Gb RAM, Intel Celeron 2.16-2.58GHz with 2 core, Intel HD Graphics.
Ubuntu 18.04 LTS with GNOME 3.

Оффлайн alsoijw

  • Старожил
  • *
  • Сообщений: 4062
  • Fedora 25 GNOME 3 amd64
    • Просмотр профиля
Re: Лабиринт на с++
« Ответ #1 : 11 Января 2015, 21:16:54 »
Гриб_под_зонтом, что это?
Код: (cpp) [Выделить]
if (k[1]!=1)
                   if (x==4 && y==10)  {z++; k[1]=1;}
                 if (k[2]!=1)
                   if (x==10 && y==1)  {z++; k[2]=1;}
                 if (k[3]!=1)
                   if (x==14 && y==11) {z++; k[3]=1;}
                 if (k[4]!=1)
                   if (x==22 && y==18) {z++; k[4]=1;}
Код: (cpp) [Выделить]
while (win()==0);
print_a();
cout<<endl<<"Ты выиграл!"<<endl;
Так код лучше не оформлять.
Где комментарии?
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Оффлайн Гриб_под_зонтом

  • Автор темы
  • Активист
  • *
  • Сообщений: 301
    • Просмотр профиля
Re: Лабиринт на с++
« Ответ #2 : 11 Января 2015, 21:34:40 »
alsoijw,
Спасибо за поправку, добавил коментарии
Hp 250 G3: 8Gb RAM, Intel Celeron 2.16-2.58GHz with 2 core, Intel HD Graphics.
Ubuntu 18.04 LTS with GNOME 3.

Оффлайн alsoijw

  • Старожил
  • *
  • Сообщений: 4062
  • Fedora 25 GNOME 3 amd64
    • Просмотр профиля
Re: Лабиринт на с++
« Ответ #3 : 11 Января 2015, 21:41:37 »
Гриб_под_зонтом, советую избегать магических чисел.
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Оффлайн Гриб_под_зонтом

  • Автор темы
  • Активист
  • *
  • Сообщений: 301
    • Просмотр профиля
Re: Лабиринт на с++
« Ответ #4 : 11 Января 2015, 21:56:07 »
alsoijw,
Что за магические числа? Обьясните пожалуйста
Hp 250 G3: 8Gb RAM, Intel Celeron 2.16-2.58GHz with 2 core, Intel HD Graphics.
Ubuntu 18.04 LTS with GNOME 3.

Оффлайн alsoijw

  • Старожил
  • *
  • Сообщений: 4062
  • Fedora 25 GNOME 3 amd64
    • Просмотр профиля
Re: Лабиринт на с++
« Ответ #5 : 11 Января 2015, 22:18:25 »
Гриб_под_зонтом,
https://ru.wikipedia.org/wiki/%D0%9C%D0%B0%D0%B3%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D1%87%D0%B8%D1%81%D0%BB%D0%BE_%28%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%29Это константы значение которых не понятно из контекста.

Пользователь решил продолжить мысль 11 Января 2015, 22:18:48:
Понял?
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Оффлайн Гриб_под_зонтом

  • Автор темы
  • Активист
  • *
  • Сообщений: 301
    • Просмотр профиля
Re: Лабиринт на с++
« Ответ #6 : 11 Января 2015, 22:23:42 »
alsoijw,
Постараюсь избегать) А кроме этого какие ещё замечания?
Hp 250 G3: 8Gb RAM, Intel Celeron 2.16-2.58GHz with 2 core, Intel HD Graphics.
Ubuntu 18.04 LTS with GNOME 3.

Оффлайн peregrine

  • FSM
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 7203
  • Gentoo x64 Ubuntu 16.04.1 x64
    • Просмотр профиля
Re: Лабиринт на с++
« Ответ #7 : 11 Января 2015, 22:32:28 »
Гриб_под_зонтом, это не C++, а C с cout, даже не "C с классами"... Нет ООП, совсем.

Оффлайн alsoijw

  • Старожил
  • *
  • Сообщений: 4062
  • Fedora 25 GNOME 3 amd64
    • Просмотр профиля
Re: Лабиринт на с++
« Ответ #8 : 11 Января 2015, 22:43:19 »
peregrine, разве (это перенаправление, да?) cout<<endl<<"Ты выиграл!"<<endl; соберётся в си?
Гриб_под_зонтом, уровень с лабиринтом хранится в файле. В программе о нём ничего не известно. Выбираешь уровень и игра идёт. Хоть в плюсах можно не ставить скобочки после if while итд но хотя бы отступ делай.

Пользователь решил продолжить мысль [time]11 Январь 2015, 22:15:11[/time]:
Гриб_под_зонтом, вот что я понял - ты пишешь аналог пакмана. Есть лабиринт, включающий стены, вишни, открытые|закрытые двери, пустоту, игрока. Пока все вишни не собрал - не выиграл. Первое - если я изменю количество вишен(массив) соберу - мне может не их не хватить или собрать не все. Почему? Количество вишен у тебя - магическое число. Вывод: мы должны просканировать массив и посчитать их количество. Две переменные - сколько их всего и сколько собрали. Второе - что такое z? Имена переменных должны говорит об их смысле. Но один момент - я не могу взять одну и ту же вишню несколько раз. Ты сделал костыль - проверяется находится ли игрок в конкретной точке и если да - вишня исчезает. Опять таки - а если я поменял массив? Как нужно сделать - проверить на какой клетке стоит игрок if(pole[x][y] == 4)pole[x][y] = 0;К примеру так. Только оформи это красиво. Насчёт выхода - он как и вишня может находится в любой точке, и ты не знаешь в какой. Ещё один совет - когда вишни собраны - выход должен изменить внешний вид. Не меняй массив! Сделай так, чтобы при рисовании проверялось - все ли вишни он собрал и от этого зависел внешний вид выхода.
« Последнее редактирование: 12 Января 2015, 17:23:40 от alsoijw »
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Оффлайн Гриб_под_зонтом

  • Автор темы
  • Активист
  • *
  • Сообщений: 301
    • Просмотр профиля
Re: Лабиринт на с++
« Ответ #9 : 12 Января 2015, 17:11:58 »
Мучаюсь над уровнями. Если кто знает, как инициализировать массив из файла при помощи ifstream? Заранее спасибо
Hp 250 G3: 8Gb RAM, Intel Celeron 2.16-2.58GHz with 2 core, Intel HD Graphics.
Ubuntu 18.04 LTS with GNOME 3.

Оффлайн alsoijw

  • Старожил
  • *
  • Сообщений: 4062
  • Fedora 25 GNOME 3 amd64
    • Просмотр профиля
Re: Лабиринт на с++
« Ответ #10 : 12 Января 2015, 17:25:05 »
Гриб_под_зонтом, вариантов куча - читаешь байт за байтом и присваиваешь массиву. Пока сделай остальное, потом добавишь чтение из файла.
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Оффлайн Гриб_под_зонтом

  • Автор темы
  • Активист
  • *
  • Сообщений: 301
    • Просмотр профиля
Re: Лабиринт на с++
« Ответ #11 : 12 Января 2015, 17:32:37 »
alsoijw,
"Остальное"  уже сделал, осталось только это


Пользователь решил продолжить мысль 12 Января 2015, 17:39:06:
Если надо, вот то, что сделал:
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 12 Января 2015, 17:39:06 от Гриб_под_зонтом »
Hp 250 G3: 8Gb RAM, Intel Celeron 2.16-2.58GHz with 2 core, Intel HD Graphics.
Ubuntu 18.04 LTS with GNOME 3.

Оффлайн alsoijw

  • Старожил
  • *
  • Сообщений: 4062
  • Fedora 25 GNOME 3 amd64
    • Просмотр профиля
Re: Лабиринт на с++
« Ответ #12 : 12 Января 2015, 19:33:28 »
Гриб_под_зонтом, я же сказал - без магических чисел!
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Оффлайн Гриб_под_зонтом

  • Автор темы
  • Активист
  • *
  • Сообщений: 301
    • Просмотр профиля
Re: Лабиринт на с++
« Ответ #13 : 12 Января 2015, 20:22:22 »
alsoijw,
Так я вроде без них сделал...
Hp 250 G3: 8Gb RAM, Intel Celeron 2.16-2.58GHz with 2 core, Intel HD Graphics.
Ubuntu 18.04 LTS with GNOME 3.

Оффлайн alsoijw

  • Старожил
  • *
  • Сообщений: 4062
  • Fedora 25 GNOME 3 amd64
    • Просмотр профиля
Re: Лабиринт на с++
« Ответ #14 : 12 Января 2015, 20:24:04 »
Гриб_под_зонтом, а const int nado_sobrat=4;
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

 

Страница сгенерирована за 0.055 секунд. Запросов: 25.