Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1] 2  Все   Вниз
  Печать  
Автор Тема: Игрушки на С++ в коносли  (Прочитано 63905 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
Never
Команда клуба

ua
Offline Offline
Пол: Женский

« : 29-06-2011 11:17 » 

Может кто подскажет литературу или примеры. Задача снова дурноватая: язык- Си. Учимся основам программирования. Но среда, блин, консольная! А детишкам скушно. очень хочется как-то процесс разнообразить. Поэтому определю задачу так: Си и работа с каким-нить графическим движком. В принципе, если есть что-то аналогичное по С++, киньте, может я чего выжму.
Записан

не умеете летать- не мучайте метлу!
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #1 : 29-06-2011 13:39 » 

Наташ, а вы делайте игрушки. Например "угадай число от ... и до ...". Три попытки. После каждой прога говорит "больше - меньше - угадал". Всё в консоли.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #2 : 29-06-2011 13:42 » 

Или рисуйте в консоли - это тоже интересно Улыбаюсь
Рамки, графики - это все можно нарисовать.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #3 : 29-06-2011 15:11 » 

Ага, особенно псевдографикой. Можно даже карточные игры сделать.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #4 : 29-06-2011 17:09 » 

А если вспомнить игры для древних компов, где нолики стреляли единичками... Простор для творчества!
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Never
Команда клуба

ua
Offline Offline
Пол: Женский

« Ответ #5 : 06-07-2011 11:18 » 

где " угадай число", психотесты и т.д.- это мы и делали. Хочется че-нить графическое и жалательно с цветом. Во-о-т! Да, можно и рисунки в консоли, и графики. Примеры конкретные можно? Статьи? Книжки? Я как-то мимо этих моментов прошла.
Кстати, нолики, стреляющие единичками ваще никогда не видела Улыбаюсь

А если все-таки с движком... Ваще класс! )
« Последнее редактирование: 06-07-2011 11:35 от Never » Записан

не умеете летать- не мучайте метлу!
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #6 : 06-07-2011 13:31 » 

Наташ, а чуть конкретней. Что значит среда консольная? Консолька под виндой, или натуральная ДОС? Да, и какая среда разработки?
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Never
Команда клуба

ua
Offline Offline
Пол: Женский

« Ответ #7 : 11-07-2011 11:15 » 

vs 8 или 10. А в ней выбрано consol аpplicаtion.
Записан

не умеете летать- не мучайте метлу!
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #8 : 11-07-2011 12:51 » 

Хммм... А чё б тебе не плюнуть на консольку и забабахать это дело в окошке? Какая принципиальная разница? Боюсь, что графический движок под студийную консольку затруднительно будет найти. Особенно, если изучаются только основы программирования.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #9 : 11-07-2011 16:29 » 

Наташ! Воть https://forum.shelek.ru/index.php/topic,27199.0.html
Записан

Never
Команда клуба

ua
Offline Offline
Пол: Женский

« Ответ #10 : 12-07-2011 07:28 » 

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

леш, спасибо, щас погляжу
Записан

не умеете летать- не мучайте метлу!
гайка
Гость
« Ответ #11 : 12-07-2011 13:54 » 

я вот на этой брошюрке училась
http://www.spbdk.ru/catalog/331506/
легко идет, в метро особенно...  Вот такой я вот

Добавлено через 5 минут и 9 секунд:
да, действительно для тренировки самое то - писать незамысловатые игрушки.
я помню, морской бой делала консольный (курсовик у нас был на 1 курсе)... преподаватель радовался как ребенок, когда я ему сдавала Улыбаюсь
« Последнее редактирование: 12-07-2011 13:59 от гайка » Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #12 : 12-07-2011 15:52 » 

Гайка, Интересно, а у самой чувство гордости не возникало?
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
гайка
Гость
« Ответ #13 : 13-07-2011 11:51 » 

 Finch, ага, было дело... только тссс! не говори никому  Краснею
Записан
Never
Команда клуба

ua
Offline Offline
Пол: Женский

« Ответ #14 : 18-07-2011 18:20 » 

Гайка, а клеточки как изображала? Улыбаюсь
Записан

не умеете летать- не мучайте метлу!
гайка
Гость
« Ответ #15 : 18-07-2011 19:01 » 

тут есть где-то маленькая бага, но это мелочи
вот так это выглядело:

* proba2.exe (85.5 Кб - загружено 1218 раз.)
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #16 : 18-07-2011 20:12 » 

Гайка,

Цитата
---------------------------
proba2.exe - Системная ошибка
---------------------------
Запуск программы невозможен, так как на компьютере отсутствует MSVCP100D.dll. Попробуйте переустановить программу.
---------------------------
ОК   
---------------------------

А код выкладывать - жаба душит, или стесняешься? Улыбаюсь
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
гайка
Гость
« Ответ #17 : 18-07-2011 21:00 » 

это был мой первый "сурьезный" проект, код практически без комментариев (правда я и сейчас этим грешу) и к тому же мои познания в с++ в то время были крайне узкими, но я пыталась выкрутиться в рамках этих познаний. как результат - код, который могу понять только я, и то не факт  Вот такой я вот




Добавлено через 2 минуты и 55 секунд:
А критики я, конечно, побаиваюсь, но она необходима для жизни. без нее ничему не научится. как говорила Wiks и Э.Хаббард: "Хочешь избежать критики - ничего не делай, ничего не говори и будь никем"

* скрин.png (41.35 Кб - загружено 2676 раз.)
« Последнее редактирование: 18-07-2011 21:22 от Джон » Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #18 : 18-07-2011 21:09 » 

круто с клетками придумано Улыбаюсь
Записан

Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #19 : 18-07-2011 21:23 » 

код практически без комментариев (правда я и сейчас этим грешу)

Хороший код сам себя документирует. Поэтому коментарии это не главный показатель хорошего кода.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
гайка
Гость
« Ответ #20 : 18-07-2011 21:48 » 

Джон, без комментариев я свой код (который, к примеру писала несколько месяцев назад) разбираю с огромным трудом. просто у меня довольно сложный почерк, что ли...
Записан
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #21 : 19-07-2011 03:53 » 

Гайка, где финики(код) та?
Люблю читать чужой код Улыбаюсь
Записан

Странно всё это....
гайка
Гость
« Ответ #22 : 19-07-2011 14:22 » 

Антон, там есть пару косячков небольших, я все не могу собраться с духом и исправить их. если хочешь, я выложу кхе... "финики" в авторское ПО.
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #23 : 19-07-2011 14:58 » 

Анна интересно, а почему ты так стесняешся выкладывать код?
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
гайка
Гость
« Ответ #24 : 19-07-2011 15:00 » 

Хватит флудить Улыбаюсь давай в чат:)

Добавлено через 28 минут и 7 секунд:
функции там не по-порядку лежат, так что читайте снизу, с мэйна.
есть 2 косяка, я их чуть позже исправлю: когда убиваешь корабль окончательно, вокруг него расставляются точки - места, куда стрелять нет смысла, так вот иногда эти точки всплывают где-то за границей поля вместо одной из букв или цифр. и еще программа иногда "разрешает" неправильно строить корабли: вместо 4 однопалубных с удовольствием хавает 6, но это редко вылетает

* proba2.cpp (20.79 Кб - загружено 1319 раз.)
« Последнее редактирование: 19-07-2011 15:28 от гайка » Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #25 : 19-07-2011 17:28 » 

Ну вот, сразу всё понятно стало.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
гайка
Гость
« Ответ #26 : 19-07-2011 17:34 » 

прям так сразу и всё-всё понятно? Ага
если это действительно так, то я тебе завидую...
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #27 : 19-07-2011 19:27 » 

Гайка, читать студенческий код - моя профессия Ага У тебя он хотя бы отформатирован!
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #28 : 20-07-2011 04:50 » 

ну ничего так, сильно лучше чем у многих Улыбаюсь
кстати в input_ij лучше заменить каскад if на switch
ну и помелочи есть к чему придратся, например функция check:
- индексы для циклов лучше объявлять внутри for если ты не собираешься после for как-то использовать индекс
- результат лучше возврашать, а не передавать по ссылке
- результат долже быть элемент enum, а не magic number
- зачем передавать 2 массива, потом их копировать в зависимости от player, если можно в зависимости  от player передавать снаружи, то что надо
- массивы лучше передавать по ссылке, а т.к. они не меняются то по константной ссылке
- я так понял check просто проверяет занятость диагональных клеток (если не смотреть в check_check), помоему ты немного перемудрила
у меня получилось вот так:
Код: (C++)
enum ECHECK_RESULT {
        ECHECK_BUSY = 1,
        ECHECK_NEAR,
        ECHECK_OK,
        ECHECK_LONG,
        ECHECK_MANY,
};

bool isOnField(int i, int j, int max_i, int max_j) {
    return i < 0 || j < 0 || !(i < max_i && j < max_j);
}

bool isOnFieldAndBusy(const bool & sub[n][n], int i, int j) {
    return isOnField(i-1, j-1, n, n) && sub[i][j];
}

ECHECK_RESULT check(int &i, int &j, int &kol, const bool & sub[n][n], int paluba[4])
{
    ECHECK_RESULT result = ECHECK_OK;
    if(sub[i][j])
        return ECHECK_BUSY;// неверно, клетка уже занята

    bool busy = isOnFieldAndBusy(sub, i, j)
            || isOnFieldAndBusy(sub, i-1, j-1)
            || isOnFieldAndBusy(sub, i-1, j+1)
            || isOnFieldAndBusy(sub, i+1, j-1)
            || isOnFieldAndBusy(sub, i+1, j+1);
    if (busy)
        result = ECHECK_BUSY;

    if (result == ECHECK_OK) {
        kol++;
        result = check_check(i,j,kol,sub,paluba);
    }
    else
        kol=0;
    return result;
}
а код проверки результата выглядит так
Код: (C++)
ECHECK_RESULT result = ECHECK_OK;
do
{
        input_ij(i,j);
        result = check(i,j,kol, (player ? sub1 : sub2 ),paluba);
        switch(result) {
        case ECHECK_BUSY:
            cout<<"Тут уже стоит корабль"<<endl;
            break;
        case ECHECK_NEAR:
            cout<<"Корабли нельзя ставить вплотную"<<endl;
            break;
        case ECHECK_LONG:
            cout<<"Слишком длинный корабль"<<endl;
            kol = 0;
            break;
        case ECHECK_MANY:
            cout<<"Слишком много "<<kol<<"-палубных кораблей"<<endl;
            kol = 0;
            break;
        }
}

ну и так далее
Записан

Странно всё это....
Never
Команда клуба

ua
Offline Offline
Пол: Женский

« Ответ #29 : 20-07-2011 05:29 » 

Ага, правда клеточки прикольные. Спасибо за идею!
Давайте, может еще кто что-то интересное вспомнит... Мало ли чего при обучении делали. Например, помню, мне было очень интересно делать задание по кодированию музыкальных звуков и привязке их к клавиатуре. Можно было играть несложные мелодии на клаве или записывать определенную последовательность заранее и комп это озвучивал. А препод наш сказал, глядя на наше оживление, что с товки зрения обучения программированию это задание абсолютно бесполезное, но "вы играйтесь, играйтесь..." )))
Записан

не умеете летать- не мучайте метлу!
Страниц: [1] 2  Все   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines