Never
|
|
« : 29-06-2011 11:17 » |
|
Может кто подскажет литературу или примеры. Задача снова дурноватая: язык- Си. Учимся основам программирования. Но среда, блин, консольная! А детишкам скушно. очень хочется как-то процесс разнообразить. Поэтому определю задачу так: Си и работа с каким-нить графическим движком. В принципе, если есть что-то аналогичное по С++, киньте, может я чего выжму.
|
|
|
Записан
|
не умеете летать- не мучайте метлу!
|
|
|
Джон
просто
Администратор
Online
Пол:
|
|
« Ответ #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
|
|
« Ответ #2 : 29-06-2011 13:42 » |
|
Или рисуйте в консоли - это тоже интересно Рамки, графики - это все можно нарисовать.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Джон
просто
Администратор
Online
Пол:
|
|
« Ответ #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
|
|
« Ответ #4 : 29-06-2011 17:09 » |
|
А если вспомнить игры для древних компов, где нолики стреляли единичками... Простор для творчества!
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Never
|
|
« Ответ #5 : 06-07-2011 11:18 » |
|
где " угадай число", психотесты и т.д.- это мы и делали. Хочется че-нить графическое и жалательно с цветом. Во-о-т! Да, можно и рисунки в консоли, и графики. Примеры конкретные можно? Статьи? Книжки? Я как-то мимо этих моментов прошла. Кстати, нолики, стреляющие единичками ваще никогда не видела А если все-таки с движком... Ваще класс! )
|
|
« Последнее редактирование: 06-07-2011 11:35 от Never »
|
Записан
|
не умеете летать- не мучайте метлу!
|
|
|
Джон
просто
Администратор
Online
Пол:
|
|
« Ответ #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
|
|
« Ответ #7 : 11-07-2011 11:15 » |
|
vs 8 или 10. А в ней выбрано consol аpplicаtion.
|
|
|
Записан
|
не умеете летать- не мучайте метлу!
|
|
|
Джон
просто
Администратор
Online
Пол:
|
|
« Ответ #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."
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #9 : 11-07-2011 16:29 » |
|
|
|
|
Записан
|
|
|
|
Never
|
|
« Ответ #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
Спокойный
Администратор
Offline
Пол:
Пролетал мимо
|
|
« Ответ #12 : 12-07-2011 15:52 » |
|
Гайка, Интересно, а у самой чувство гордости не возникало?
|
|
|
Записан
|
Не будите спашяго дракона. Джаффар (Коша)
|
|
|
гайка
Гость
|
|
« Ответ #13 : 13-07-2011 11:51 » |
|
Finch, ага, было дело... только тссс! не говори никому
|
|
|
Записан
|
|
|
|
Never
|
|
« Ответ #14 : 18-07-2011 18:20 » |
|
Гайка, а клеточки как изображала?
|
|
|
Записан
|
не умеете летать- не мучайте метлу!
|
|
|
гайка
Гость
|
|
« Ответ #15 : 18-07-2011 19:01 » |
|
тут есть где-то маленькая бага, но это мелочи вот так это выглядело:
|
|
|
Записан
|
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #16 : 18-07-2011 20:12 » |
|
Гайка, --------------------------- proba2.exe - Системная ошибка --------------------------- Запуск программы невозможен, так как на компьютере отсутствует MSVCP100D.dll. Попробуйте переустановить программу. --------------------------- ОК ---------------------------
А код выкладывать - жаба душит, или стесняешься?
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
гайка
Гость
|
|
« Ответ #17 : 18-07-2011 21:00 » |
|
это был мой первый "сурьезный" проект, код практически без комментариев (правда я и сейчас этим грешу) и к тому же мои познания в с++ в то время были крайне узкими, но я пыталась выкрутиться в рамках этих познаний. как результат - код, который могу понять только я, и то не факт Добавлено через 2 минуты и 55 секунд:А критики я, конечно, побаиваюсь, но она необходима для жизни. без нее ничему не научится. как говорила Wiks и Э.Хаббард: "Хочешь избежать критики - ничего не делай, ничего не говори и будь никем"
|
|
« Последнее редактирование: 18-07-2011 21:22 от Джон »
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #18 : 18-07-2011 21:09 » |
|
круто с клетками придумано
|
|
|
Записан
|
|
|
|
Джон
просто
Администратор
Online
Пол:
|
|
« Ответ #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)
|
|
« Ответ #21 : 19-07-2011 03:53 » |
|
Гайка, где финики(код) та? Люблю читать чужой код
|
|
|
Записан
|
Странно всё это....
|
|
|
гайка
Гость
|
|
« Ответ #22 : 19-07-2011 14:22 » |
|
Антон, там есть пару косячков небольших, я все не могу собраться с духом и исправить их. если хочешь, я выложу кхе... "финики" в авторское ПО.
|
|
|
Записан
|
|
|
|
Finch
Спокойный
Администратор
Offline
Пол:
Пролетал мимо
|
|
« Ответ #23 : 19-07-2011 14:58 » |
|
Анна интересно, а почему ты так стесняешся выкладывать код?
|
|
|
Записан
|
Не будите спашяго дракона. Джаффар (Коша)
|
|
|
гайка
Гость
|
|
« Ответ #24 : 19-07-2011 15:00 » |
|
Хватит флудить давай в чат:) Добавлено через 28 минут и 7 секунд:функции там не по-порядку лежат, так что читайте снизу, с мэйна. есть 2 косяка, я их чуть позже исправлю: когда убиваешь корабль окончательно, вокруг него расставляются точки - места, куда стрелять нет смысла, так вот иногда эти точки всплывают где-то за границей поля вместо одной из букв или цифр. и еще программа иногда "разрешает" неправильно строить корабли: вместо 4 однопалубных с удовольствием хавает 6, но это редко вылетает
|
|
« Последнее редактирование: 19-07-2011 15:28 от гайка »
|
Записан
|
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #25 : 19-07-2011 17:28 » |
|
Ну вот, сразу всё понятно стало.
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
гайка
Гость
|
|
« Ответ #26 : 19-07-2011 17:34 » |
|
прям так сразу и всё-всё понятно? если это действительно так, то я тебе завидую...
|
|
|
Записан
|
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #27 : 19-07-2011 19:27 » |
|
Гайка, читать студенческий код - моя профессия У тебя он хотя бы отформатирован!
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
Антон (LogRus)
|
|
« Ответ #28 : 20-07-2011 04:50 » |
|
ну ничего так, сильно лучше чем у многих кстати в input_ij лучше заменить каскад if на switch ну и помелочи есть к чему придратся, например функция check: - индексы для циклов лучше объявлять внутри for если ты не собираешься после for как-то использовать индекс - результат лучше возврашать, а не передавать по ссылке - результат долже быть элемент enum, а не magic number - зачем передавать 2 массива, потом их копировать в зависимости от player, если можно в зависимости от player передавать снаружи, то что надо - массивы лучше передавать по ссылке, а т.к. они не меняются то по константной ссылке - я так понял check просто проверяет занятость диагональных клеток (если не смотреть в check_check), помоему ты немного перемудрила у меня получилось вот так: 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; } а код проверки результата выглядит так 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
|
|
« Ответ #29 : 20-07-2011 05:29 » |
|
Ага, правда клеточки прикольные. Спасибо за идею! Давайте, может еще кто что-то интересное вспомнит... Мало ли чего при обучении делали. Например, помню, мне было очень интересно делать задание по кодированию музыкальных звуков и привязке их к клавиатуре. Можно было играть несложные мелодии на клаве или записывать определенную последовательность заранее и комп это озвучивал. А препод наш сказал, глядя на наше оживление, что с товки зрения обучения программированию это задание абсолютно бесполезное, но "вы играйтесь, играйтесь..." )))
|
|
|
Записан
|
не умеете летать- не мучайте метлу!
|
|
|
|