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

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

ru
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
Технический
Администратор

ru
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 Кб - загружено 1157 раз.)
Записан
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 Кб - загружено 2571 раз.)
« Последнее редактирование: 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 Кб - загружено 1264 раз.)
« Последнее редактирование: 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 » 

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

не умеете летать- не мучайте метлу!
RXL
Технический
Администратор

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

WWW
« Ответ #30 : 20-07-2011 08:07 » 

Согласен - совершенно бесполезное Улыбаюсь
Массив соответствий нажатых кнопок тонам - вся сложность.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
гайка
Гость
« Ответ #31 : 20-07-2011 10:41 » 

кстати в input_ij лучше заменить каскад if на switch
свич тут не прокатит, свич не терпит string. там лучше
Код: (C++)
if((s>='а')&&(s<='к')) j=(int)s+32;
else
{
     if((s>='А')&&(s<='К'))j=(int)s+64;
}
я так понял check просто проверяет занятость диагональных клеток
ну да, вроде того
да я там много чего тогда перемудрила, просто очень многого еще не знала. и переменные называла транслитом  :Улыбаюсь

Добавлено через 1 минуту и 48 секунд:
да и сейчас многого еще не знаю... ^_^

Добавлено через 5 минут и 1 секунду:
а большинство массивов можно было объявить публично...
« Последнее редактирование: 20-07-2011 10:47 от гайка » Записан
гайка
Гость
« Ответ #32 : 20-07-2011 12:47 » 

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

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


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

Гайка, вместо свича можно ассоциировать строки с чем угодно Улыбаюсь
Записан

гайка
Гость
« Ответ #34 : 20-07-2011 16:28 » 

Гайка, вместо свича можно ассоциировать строки с чем угодно Улыбаюсь
Как это сделать?
PS: я еще не переварила рефакторинг Антона :Улыбаюсь

Добавлено через 2 минуты и 4 секунды:
Да и к тому же, зачем? чем тебе мой вариант не нравится (не тот, что в файле, а тот что я новый написала). правда он не совсем мой, это Finch, его идея.
« Последнее редактирование: 20-07-2011 16:30 от гайка » Записан
Алексей++
глобальный и пушистый
Глобальный модератор

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


« Ответ #35 : 20-07-2011 16:40 » 

Гайка, дык при помощи, к примеру, мапа

std::map< std::string, тут_тип_ассоциированной_сущности> myswitcher;

Цитата
чем тебе мой вариант не нравится
а про какой вариант речь ? Про лесенку ? Лесенка жутко не нравится
Записан

гайка
Гость
« Ответ #36 : 20-07-2011 17:11 » 

чем тебе мой вариант не нравится (не тот, что в файле, а тот что я новый написала)
Код: (C++)
if((s>='а')&&(s<='к')) j=(int)s+32;
else
{
     if((s>='А')&&(s<='К'))j=(int)s+64;
}
- это вместо половины лесенки, вторую лесенку можно через atoi
Алексей, ты не обижайся, но все-таки не забывай, что я всего лишь студент (да-да, именно такой, каких А.П. Чехов и Dimka терпеть не могут Да-да ), про мап впервые слышу.... вижу, точнее.

Добавлено через 7 минут и 59 секунд:
Кому ж они нравятся, лесенки эти... просто пол года назад, когда я с книжкой в руках учила плюсы, я другого выхода не видела...
« Последнее редактирование: 20-07-2011 17:19 от гайка » Записан
Антон (LogRus)
Глобальный модератор

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


WWW
« Ответ #37 : 20-07-2011 17:28 » 

погодите насколько я помню 'A' это не строка, а символ, т.е. 8бит знакового целого (обычно так), а switch работает с числами
какой-то жестокий offtop пошел, может разделим темку?
Записан

Странно всё это....
гайка
Гость
« Ответ #38 : 20-07-2011 18:01 » 

Антон, да ты прав. но последний вариант все равно короче, чем свич!
вспомнила... я пыталась (тогда еще) свичом сделать вторую "лесенку", там m - строка (это необходимо, ведь вторая координата не всегда состоит из 1 символа, да и пользователь своими кривыми ручками может ввести что угодно) и из-за этого компилятор ругался.
ребята, ну чего вы так прицепились к этой несчастной "защите от дураков"? разве это в игрушке главное?
главное в check(), check_check(), go(), show_dead().
зачем делить тему?
Записан
Dimka
Деятель
Команда клуба

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

« Ответ #39 : 20-07-2011 19:32 » 

Вот я тоже думаю. Девушка выложила из архивов свои старые первые "пробы пера", а их тут взялись разбирать, критиковать. Неужели кто-то думает, что Гайка будет переписывать свой старый морской бой??

Вот я свои "крестики-нолики" 8 класса берёг как память и назидание самому себе - мне и в голову не приходило их переписывать. Я над ними медитировал, сравнивая себя нынешнего с собою прошлым и гордясь тем, как я вырос над собой. Улыбаюсь
Записан

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

Dimka, в некоторых школах первоклассников просят нарисовать, кем они хотят стать, а перед выпуском в 11 классе им показывают эти рисунки. вот тут что-то подобное.
нет, ребят, не подумайте, что я вам запрещаю ковыряться в коде... бога ради (чем бы дитя не тешилось Отлично), не зря же я его выложила. можете даже попробовать сделать из него вкусную конфетку  Отлично
я и сама понимаю (и сразу вам об этом сказала), что код дилетантский. каждый из вас когда-то писал программульки с костылями и "лесенками"  Улыбаюсь
Записан
Ochkarik
Команда клуба

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

« Ответ #41 : 21-07-2011 14:06 » 

Never,  шарик который отскакивает от стенок монитора) в школе была задачка)
алгоритм строчек в 15-20)
 потом можно на его основе кучу игрушек придумать)
и в консоли пойдет легко)

Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
гайка
Гость
« Ответ #42 : 21-07-2011 14:18 » 

Ochkarik, я могу растянуть строчек на 100, я умею  Прыгаем вместе
Записан
Never
Команда клуба

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

« Ответ #43 : 21-07-2011 14:21 » 

Ochkarik, да, пожалуй, у меня это на Флеше было реализовано. Можно, спасибо
Записан

не умеете летать- не мучайте метлу!
Dale
Блюзмен
Команда клуба

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

WWW
« Ответ #44 : 21-07-2011 15:10 » 

Never, я вот что вспомнил: на закате СССР под редакцией С. Капицы издавался очень интересный журнал "В мире науки" (перевод "Scientific American" примерно 2-месячной давности). Там была постоянная рубрика "Занимательный компьютер" под редакцией Алана Дьюдни (и несколько статей его предшественника Б. Хэйеса), где на домашних компьютерах решались всякие увлекательные задачи. Причем персоналки тех лет графикой не баловали, в основном все делалось на консоли, зачастую хватало даже Basic'a.

Вот здесь указатель статей за 1983-1993 гг. (то есть до того самого момента, когда журнал угробили перестройкой). Поищите там автора Дьюдни. Сам журнал нашел на торрентах. В данный момент на раздачах 44 сида, качается быстро.

Еще есть книга Ж. Арсак, "Программирование игр и головоломок". Качать здесь. Там тоже практически все можно реализовать на консоли. Правда, задачи Дьюдни показались мне интереснее.

P.S. В свое время получал массу удовольствия, воплощая эти нехитрые игры на самодельном домашнем компьютере. Надеюсь, начинающим они понравятся и сегодня.
Записан

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

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Алексей++
глобальный и пушистый
Глобальный модератор

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


« Ответ #45 : 21-07-2011 15:48 » 

Цитата
Ж. Арсак, "Программирование игр и головоломок"
ооо, глаз зацепился за знакомое имя и знакомое название...  Посмотрел обложку - ага, есть у меня где-то такая книжка )

Только вот что-то поделать по ней вроде так руки и не дошли
Записан

гайка
Гость
« Ответ #46 : 21-07-2011 19:01 » 

Шарик, пожалуйста, забацала... получите, распишитесь   Что, съел?

* running_ball.rar (13.43 Кб - загружено 868 раз.)
« Последнее редактирование: 21-07-2011 19:32 от Джон » Записан
Finch
Спокойный
Администратор

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


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

Гайка, Первое что бросается в глаза. У тебя слишком много в коде "магических чисел".
Записан

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

Finch, каких чисел?
Записан
Finch
Спокойный
Администратор

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


« Ответ #49 : 21-07-2011 19:35 » 

Вот например твой код
Код: (C++)
void print_ball(int &i,int &j)
{
        int k,l;
        for(k=1;k<n-1;k++)
        {
                for(l=1;l<m-1;l++)
                        field[k][l]=' ';
        }
        for(k=0;k<7;k++)
        {
                for(l=0;l<10;l++)
                {
                        if(((k==0)||(k==6))&&((l>1)&&(l<8)))
                                field[i+k][j+l]='#';
                        else
                        {
                                if(((k==1)||(k==5))&&((l>0)&&(l<9)))
                                        field[i+k][j+l]='#';
                                else
                                {
                                        if((k>1)&&(k<5))
                                                field[i+k][j+l]='#';
                                        else
                                                field[i+k][j+l]=' ';
                                }
                        }
                }
        }
        output();
}
Сама через пол года будеш долго вспоминать что такое: 10, 7, 5, 6, 9, 8. Почему именно их выбрали?
Вот такие необъяснимые числа с первого взгляда и называются "магические числа". Я сам порой грешу, но стараюсь как можно меньше использовать. Лучше всего обозначить их через #define и закоментировать прокоментировать.  
« Последнее редактирование: 21-07-2011 19:53 от RXL » Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Джон
просто
Администратор

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

« Ответ #50 : 21-07-2011 19:35 » 

Джон, окей, я на сипипи файл заменила

Я же был прицепил полностью твой проект, только без файлов, которые генерятся студией. Так что всё в порядке. На будущее, всё что в Debug папке, можешь удалять, кроме ЕХЕ. Потом .suo .sdf и папку ipch тоже нафик.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"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."
гайка
Гость
« Ответ #51 : 21-07-2011 19:46 » 

Джон, предупреждать надо Улыбаюсь к тому же проект был прицеплен через яндекс.народ.ру (ужасное место), а ты ссылку не менял вроде...
Finch, ты прав, я просто ленюсь... эти цифры связаны с размером "шарика", он у меня не совсем круглый, 7*10 символов. рандомная точка - в верхнем левом углу, от нее начинается построение фигуры (у меня язык не поднимается ее шариком назвать).

Добавлено через 5 минут и 25 секунд:
Кстати, в этом куске кода последний else можно нахрен удалить...
« Последнее редактирование: 21-07-2011 19:51 от гайка » Записан
Джон
просто
Администратор

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

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

Дык, а чего предупреждать? Я ж к сообщению прицепил. Размер 14 кБ - вполне нормально. А на яндексе для гигантоманов-любителей, я ничего менять и не собирался. Ага
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"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."
гайка
Гость
« Ответ #53 : 21-07-2011 20:00 » 

ну дык никто же не знает, что по ссылке для гигантоманов... 8) не знал...
Записан
Never
Команда клуба

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

« Ответ #54 : 22-07-2011 21:10 » 

Dale, спасибо за ценную инфу. И вообще, ребята, всем участвовавшим в теме, спасибо. Я получила даже больше чем расчитывала Улыбаюсь
Записан

не умеете летать- не мучайте метлу!
itrobo
Новенький

ru
Offline Offline

« Ответ #55 : 30-12-2018 07:00 » 

уже три года веду кружок программирования и разработал интересный практикум программирования на си http://itrobo.ru/programmirovanie/praktikum-programmirovanija-po-si.html
в него входит анимация, диалог с компьютером, игры крестики нолики и движение в лабиринте
думаю для начинающих будет очень интересно
« Последнее редактирование: 30-12-2018 11:41 от RXL » Записан
Страниц: 1 2 [Все]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines