Название: Игра "Морской Бой" с компьютером Отправлено: Alexu007 от Июнь 13, 2013, 23:35 Простенькая игрушечка с примитивной графикой, написанная непрофессионалом.
Название: Re: Игра "Морской Бой" с компьютером Отправлено: kambala от Июнь 14, 2013, 00:06 постыдился бы такой ужас выкладывать. глаза просто «истекают кровью» при виде кода (как форматирования и стиля написания, так и проектирования), а ты еще этот проект новичкам рекомендуешь.
Название: Re: Игра "Морской Бой" с компьютером Отправлено: m_ax от Июнь 14, 2013, 00:43 постыдился бы такой ужас выкладывать. глаза просто «истекают кровью» при виде кода (как форматирования и стиля написания, так и проектирования), а ты еще этот проект новичкам рекомендуешь. Нормально всё) Новичкам полезно знать и видеть примеры архитектурных шыдэвров от пионеров начинающих своё изучение плюсов с Qt) Возьми густой вишневый сок И белый мамин плащ. Лей аккуратно сок на плащ - Получится пятно. Теперь, чтоб не было пятна На мамином плаще, Плащ надо сунуть целиком В густой вишневый сок. Возьми вишневый мамин плащ И кружку молока. Лей аккуратно молоко - Появится пятно. Теперь, чтоб не было пятна На мамином плаще, Плащ надо сунуть целиком В кастрюлю с молоком. Возьми густой вишневый сок И белый мамин плащ. Лей аккуратно ... Григорий Остер "вредные советы" Название: Re: Игра "Морской Бой" с компьютером Отправлено: Alexu007 от Июнь 14, 2013, 00:57 Зато работает.
Название: Re: Игра "Морской Бой" с компьютером Отправлено: m_ax от Июнь 14, 2013, 00:58 Название: Re: Игра "Морской Бой" с компьютером Отправлено: Alexu007 от Июнь 14, 2013, 01:00 Почему?
Название: Re: Игра "Морской Бой" с компьютером Отправлено: m_ax от Июнь 14, 2013, 01:02 Название: Re: Игра "Морской Бой" с компьютером Отправлено: Alexu007 от Июнь 14, 2013, 01:07 У меня всё работает, как при запуске из-под Qt, так и отдельно, при наличии необходимых библиотек ессно. У нас что, компьютеры разные, или у меня Qt кривой?
Название: Re: Игра "Морской Бой" с компьютером Отправлено: Figaro от Июнь 14, 2013, 01:23 Сначала определитесь - зачем Вам Qt? Может проще WinAPI использовать? :)
См. MessageBeep Остальное даже не хочется комментировать... Название: Re: Игра "Морской Бой" с компьютером Отправлено: Alexu007 от Июнь 14, 2013, 01:28 Qt creator позволяет создавать внешне симпатишные программы (с кнопками там, меню, таблицами ит.д.) излишне не заморачиваясь тонкостями языка, внутренним устройством этих самых кнопок, меню, таблиц, прогрессбаров разных.
Название: Re: Игра "Морской Бой" с компьютером Отправлено: Figaro от Июнь 14, 2013, 01:49 Мда... Qt в первую очередь кроссплатформенная библиотека (для меня)...
Да возьмите любой игровой движок и натягивайте красоту и на меню и прочее... И все редакторами и простейшими скриптами... Там и не придется "заморачиваться тонкостями языка"... P.S. Ток плюсы незачем так уродовать :) Название: Re: Игра "Морской Бой" с компьютером Отправлено: Bepec от Июнь 14, 2013, 07:05 Ыть, гениально :D
Цитировать X1 = X1 + X * X * X; Особенно радуют комментарии :D Прям таки starwars вы написали. // процедура формирует защитное поле вокруг корабля компьютера // инициализация ГСЧ (Гигантского собакоподобного человека? :) Или все новички наизусть знают сокращение от генератора случайных чисел? :D :D :D ) // устанавливаем Джедай переменная Pole_Dobivan // ранен // ошибка: не мимо и не ранен. (Да пребудет с тобой сила :D ) // поле добивания раненых человека // проверка - есть ли раненые: Z = 0 - нет, 1 - есть // массив добивания раненых (Страшный пушко, да :D ) // убит // устанавливаем защитное поле вокруг убитого корабля FINISH HIM! FATALITY! ;D ;D ;D Название: Re: Игра "Морской Бой" с компьютером Отправлено: Alexu007 от Июнь 14, 2013, 08:06 Ыть, гениально :D Цитировать X1 = X1 + X * X * X; А тут то что не так? В X1 накапливаются иксы в 3 степени. Надо было X1 += X*X*X; - не всё ли равно? Цитировать Особенно радуют комментарии :D Прям таки starwars вы написали. // процедура формирует защитное поле вокруг корабля компьютера // инициализация ГСЧ (Гигантского собакоподобного человека? :) Или все новички наизусть знают сокращение от генератора случайных чисел? :D :D :D ) // устанавливаем Джедай переменная Pole_Dobivan // ранен // ошибка: не мимо и не ранен. (Да пребудет с тобой сила :D ) // поле добивания раненых человека // проверка - есть ли раненые: Z = 0 - нет, 1 - есть // массив добивания раненых (Страшный пушко, да :D ) // убит // устанавливаем защитное поле вокруг убитого корабля FINISH HIM! FATALITY! ;D ;D ;D Комментарии я писал для себя, чтобы спустя несколько лет посмотреть на код и вспомнить, как что работает. Что в итоге и произошло: первый вариант МБ был написан аж на ассемблере на 486-м компе под DOS - я тогда ассемблер изучал. Потом был переписан на С++ builder - я билдер осваивал. Теперь пришла очередь Qt Задачи научить новичков писать именно морские бои не ставилось. Помощь в борьбе с непонятным Qt - сигналы, слоты, перехват событий и прочая... Посмотрите, сколько вопросов в инете - как сделать это да как сделать то? А вот как - залезай в код рабочей программы и смотри, как сделано там. Название: Re: Игра "Морской Бой" с компьютером Отправлено: Bepec от Июнь 14, 2013, 08:33 Я тебе по секрету скажу - мне твой код непонятнее кода того же Qt раза в полтора :D
И да, готовых приложений - кучи. Классных приложений с раскомментированной каждой строкой - дофига. Сигнал слоты и всё остальное легко читается в Шлее. PS а мешанину выкладывать с комментариями в стиле 80-х, когда все переменные это X Y Z, помоему это просто неприлично. ;) Ну да бог вам судья :D Название: Re: Игра "Морской Бой" с компьютером Отправлено: kambala от Июнь 14, 2013, 10:07 я когда расставил кораблики произвольным образом, долго не мог понять почему игра не хочет запускаться. пришлось лезть в код, чтобы узнать, что они не могут соприкасаться. о сообщениях об ошибке видимо ты никогда не слышал.
потом я охренел когда обнаружил у компа кривые кораблики. такое надо где-то указывать при расстановке кораблей. у тебя два класса для поля игрока и компа с копипастой кода — такое чувство, что о наследовании ты не слышал. Название: Re: Игра "Морской Бой" с компьютером Отправлено: mutineer от Июнь 14, 2013, 10:26 Посмотрите, сколько вопросов в инете - как сделать это да как сделать то? А вот как - залезай в код рабочей программы и смотри, как сделано там. Очень много вопросов новичков возникают от нежелания читать доку и гуглить. Серьезно считаешь что такие люди будут читать чужой код? Название: Re: Игра "Морской Бой" с компьютером Отправлено: m_ax от Июнь 14, 2013, 10:31 У меня всё работает, как при запуске из-под Qt, так и отдельно, при наличии необходимых библиотек ессно. У нас что, компьютеры разные, или у меня Qt кривой? Ну конечно же Qt кривой.. Это даже не обсуждается) Название: Re: Игра "Морской Бой" с компьютером Отправлено: Igors от Июнь 14, 2013, 11:28 первый вариант МБ был написан аж на ассемблере на 486-м компе под DOS - я тогда ассемблер изучал. Потом был переписан на С++ builder - я билдер осваивал. Теперь пришла очередь Qt Ну то есть Вы "певец одной темы" - морской бой. Это проходит лейтмотивом, красной нитью сквозь все Ваше творчество :)Название: Re: Игра "Морской Бой" с компьютером Отправлено: Alexu007 от Июнь 14, 2013, 14:24 Самый интересный способ учить программирование - сразу начинать писать программу, по ходу преодолевая возникающие трудности. Морской бой хорош тем, что там думать особо над алгоритмом не надо - сойдёт даже постой рэндом. Тем интересных мало: что-то неинтересно, а что-то слишком сложно. У меня много маленьких программок на билдере - тот же калькулятор, программа шифрования, и еще много мелочи и учебных заданий, написанных для себя. Но самая востребованная вот эта, из 2-х строчек кода состоит. Тут уж никто не обвинит в плохом стиле, планировании и неправильных имён переменных:
Код
Название: Re: Игра "Морской Бой" с компьютером Отправлено: Kurles от Июнь 14, 2013, 14:36 Тут уж никто не обвинит в плохом стиле, планировании и неправильных имён переменных: Обвиним: класс TForm1 и название его метода Button1Click малоинформативны ;DКод
Название: Re: Игра "Морской Бой" с компьютером Отправлено: m_ax от Июнь 14, 2013, 14:54 Самый интересный способ учить программирование - сразу начинать писать программу, по ходу преодолевая возникающие трудности. Морской бой хорош тем, что там думать особо над алгоритмом не надо - сойдёт даже постой рэндом. Тем интересных мало: что-то неинтересно, а что-то слишком сложно. У меня много маленьких программок на билдере - тот же калькулятор, программа шифрования, и еще много мелочи и учебных заданий, написанных для себя. Но самая востребованная вот эта, из 2-х строчек кода состоит. Тут уж никто не обвинит в плохом стиле, планировании и неправильных имён переменных: Может как способ оно и интересно.. но.. Но, как говорится - нет ничего практичнее хорошей теории.Когда сразу без фундамента начинаешь воять нечто более сложное хеллоу ворда, без продумывания архитектуры, с поверхностным знанием самого языка, то как правило, полезный эффект от такого подхода очень сомнителен.. поскольку не редко у таких новичков складывается иллюзорное впечатление о том, что они чего то таким путём достигли( Вообще, я бы советовал быть более критичным не только к своему коду, но даже в первую очередь к самой архитектуре.. Это, наверное, первое, чему нужно учиться.. Название: Re: Игра "Морской Бой" с компьютером Отправлено: Alexu007 от Июнь 14, 2013, 15:15 Но это для больших программ, и особенно когда пишет не один программист (который всё держит в голове). Для написания маленьких программулек то париться над архитектурой зачем? То же и с именами переменных. Есть глобальные, которые идут сквозь всю программу, доступны отовсюду - там разумеется нужны осмысленные имена. Но если переменная "служебная" внутри одной функции, не несёт общепрограммной смысловой нагрузки - нафига ей давать "большое имя"? Чем плохо X и X1? То же и с именами компонентов. Если их много, может и есть смысл переименовать, а если одна кнопка - чем плохо Button1?
Тем более архитектуру диктует сам язык программирования: вызываются слоты (обработчики прерываний) кнопок - в которых и выполняется собственно код программы. Название: Re: Игра "Морской Бой" с компьютером Отправлено: Igors от Июнь 14, 2013, 15:30 Вообще, я бы советовал быть более критичным не только к своему коду, но даже в первую очередь к самой архитектуре.. Это, наверное, первое, чему нужно учиться.. Ах как нравится поучать набравшись std-белиберды :) Ну а как человек должен "учиться архитектуре"? Поясните на живом примере. Но это для больших программ, и особенно когда пишет не один программист (который всё держит в голове). Для написания маленьких программулек то париться над архитектурой зачем? То же и с именами переменных. Есть глобальные, которые идут сквозь всю программу, доступны отовсюду - там разумеется нужны осмысленные имена. Но если переменная "служебная" внутри одной функции, не несёт общепрограммной смысловой нагрузки - нафига ей давать "большое имя"? Чем плохо X и X1? То же и с именами компонентов. Если их много, может и есть смысл переименовать, а если одна кнопка - чем плохо Button1? Вот что мне в нем нравится - не боится высказывать свое мнение. Увы, это ненадолго, быстро научится списывать из готового как все :'( Тем более архитектуру диктует сам язык программирования: вызываются слоты (обработчики прерываний) кнопок - в которых и выполняется собственно код программы. Название: Re: Игра "Морской Бой" с компьютером Отправлено: Old от Июнь 14, 2013, 15:49 Ах как нравится поучать набравшись std-белиберды :) Это точно. Поучать любят и набравшиеся чего-то и даже не набравшиеся. :)Тем более архитектуру диктует сам язык программирования: вызываются слоты (обработчики прерываний) кнопок - в которых и выполняется собственно код программы. Это Qt диктует, а не язык программирования.Поэтому, на этом и не только этом форуме, есть куча тем, где осваивающих C++ просят забыть, на время освоения, Qt. И это очень правильно, IMHO. Название: Re: Игра "Морской Бой" с компьютером Отправлено: Alexu007 от Июнь 14, 2013, 15:58 я когда расставил кораблики произвольным образом, долго не мог понять почему игра не хочет запускаться. пришлось лезть в код, чтобы узнать, что они не могут соприкасаться. о сообщениях об ошибке видимо ты никогда не слышал. потом я охренел когда обнаружил у компа кривые кораблики. такое надо где-то указывать при расстановке кораблей. На картинку, которую я выложил не глянули? И кораблики, которые при соприкосновении углами "чернеют" - не насторожили? Цитировать у тебя два класса для поля игрока и компа с копипастой кода — такое чувство, что о наследовании ты не слышал. Слышал, но, честно говоря, ни разу не пользовался. Название: Re: Игра "Морской Бой" с компьютером Отправлено: kambala от Июнь 14, 2013, 16:53 Но это для больших программ, и особенно когда пишет не один программист (который всё держит в голове). Для написания маленьких программулек то париться над архитектурой зачем? То же и с именами переменных. Есть глобальные, которые идут сквозь всю программу, доступны отовсюду - там разумеется нужны осмысленные имена. Но если переменная "служебная" внутри одной функции, не несёт общепрограммной смысловой нагрузки - нафига ей давать "большое имя"? Чем плохо X и X1? То же и с именами компонентов. Если их много, может и есть смысл переименовать, а если одна кнопка - чем плохо Button1? ИМХО этот абзац очень подходит для статьи «с чего начинается быдлокод»я когда расставил кораблики произвольным образом, долго не мог понять почему игра не хочет запускаться. пришлось лезть в код, чтобы узнать, что они не могут соприкасаться. о сообщениях об ошибке видимо ты никогда не слышал. потом я охренел когда обнаружил у компа кривые кораблики. такое надо где-то указывать при расстановке кораблей. На картинку, которую я выложил не глянули? И кораблики, которые при соприкосновении углами "чернеют" - не насторожили? насчет черных контуров: я несколько раз случайным образом тыкнул в поле и даже не заметил, что изначально клетки становятся серые — обратил внимание только когда они уже были черные. расставил все корабли, все черное. надо вообще не давать возможность ставить следующий корабль пока есть хоть один неправильный и сообщать об этом. Цитировать у тебя два класса для поля игрока и компа с копипастой кода — такое чувство, что о наследовании ты не слышал. Слышал, но, честно говоря, ни разу не пользовался. Комментарии я писал для себя, чтобы спустя несколько лет посмотреть на код и вспомнить, как что работает. Что в итоге и произошло: первый вариант МБ был написан аж на ассемблере на 486-м компе под DOS - я тогда ассемблер изучал. Потом был переписан на С++ builder - я билдер осваивал. Теперь пришла очередь Qt прямо даже и не знаю что сказать… конечно, если ты взял билдер (а ведь там тоже плюсы), поигрался с ним неделю-месяц и забросил программирование надолго, то еще можно понять, но если ты постоянно программируешь…Название: Re: Игра "Морской Бой" с компьютером Отправлено: Alexu007 от Июнь 14, 2013, 17:06 Я постоянно не программирую, это хобби. Многа народу любят разгадывать кроссворды, но есть немногие, которые любят их составлять. Я примерно то же, только в програмировании. Ничем не хуже собирания спичечных коробков, плюс ещё денег тратить не нада. А я вообще халяву обожаю...
Название: Re: Игра "Морской Бой" с компьютером Отправлено: Bepec от Июнь 14, 2013, 18:15 Тогда уж точно не стоит советовать новичкам свой "хоббийный" код. ;)
Название: Re: Игра "Морской Бой" с компьютером Отправлено: thechicho от Июнь 14, 2013, 18:30 Вот что мне в нем нравится - не боится высказывать свое мнение. Увы, это ненадолго, быстро научится списывать из готового как все :'( себя вспомнили в молодости? боитесь повторения ваших ошибок)Название: Re: Игра "Морской Бой" с компьютером Отправлено: Alexu007 от Июнь 14, 2013, 19:37 Тогда уж точно не стоит советовать новичкам свой "хоббийный" код. ;) Да никому ничего я не советую. Они посмотрят и сразу поймут, как не надо делать.Название: Re: Игра "Морской Бой" с компьютером Отправлено: Fregloin от Декабрь 26, 2013, 19:16 надпись HOMO насторожила, решил не запускать
Название: Re: Игра "Морской Бой" с компьютером Отправлено: Alexu007 от Декабрь 29, 2013, 21:02 Правильно сделали. Программирование опасное ремесло, осторожность прежде всего.
|