Russian Qt Forum
Ноябрь 27, 2024, 05:18 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2] 3   Вниз
  Печать  
Автор Тема: Игра "Морской Бой" с компьютером  (Прочитано 20917 раз)
mutineer
Гость
« Ответ #15 : Июнь 14, 2013, 10:26 »

Посмотрите, сколько вопросов в инете - как сделать это да как сделать то? А вот как - залезай в код рабочей программы и смотри, как сделано там.

Очень много вопросов новичков возникают от нежелания читать доку и гуглить. Серьезно считаешь что такие люди будут читать чужой код?
Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #16 : Июнь 14, 2013, 10:31 »

У меня всё работает, как при запуске из-под Qt, так и отдельно, при наличии необходимых библиотек ессно. У нас что, компьютеры разные, или у меня Qt кривой?

Ну конечно же Qt кривой.. Это даже не обсуждается)
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #17 : Июнь 14, 2013, 11:28 »

первый вариант МБ был написан аж на ассемблере на 486-м компе под DOS - я тогда ассемблер изучал. Потом был переписан на С++ builder - я билдер осваивал. Теперь пришла очередь Qt
Ну то есть Вы "певец одной темы" - морской бой. Это проходит лейтмотивом, красной нитью сквозь все Ваше творчество  Улыбающийся
Записан
Alexu007
Гость
« Ответ #18 : Июнь 14, 2013, 14:24 »

Самый интересный способ учить программирование - сразу начинать писать программу, по ходу преодолевая возникающие трудности. Морской бой хорош тем, что там думать особо над алгоритмом не надо - сойдёт даже постой рэндом. Тем интересных мало: что-то неинтересно, а что-то слишком сложно. У меня много маленьких программок на билдере - тот же калькулятор, программа шифрования, и еще много мелочи и учебных заданий, написанных для себя. Но самая востребованная вот эта, из 2-х строчек кода состоит. Тут уж никто не обвинит в плохом стиле, планировании и неправильных имён переменных:

Код
C++ (Qt)
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 
SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, LPARAM(2));
Form1 -> Close();
 
return;
}



Записан
Kurles
Бывалый
*****
Offline Offline

Сообщений: 480



Просмотр профиля
« Ответ #19 : Июнь 14, 2013, 14:36 »

Тут уж никто не обвинит в плохом стиле, планировании и неправильных имён переменных:

Код
C++ (Qt)
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 
SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, LPARAM(2));
Form1 -> Close();
 
return;
}
Обвиним: класс TForm1 и название его метода Button1Click малоинформативны  Смеющийся
Записан

Код
C++ (Qt)
while(!asleep()) sheep++;
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #20 : Июнь 14, 2013, 14:54 »

Самый интересный способ учить программирование - сразу начинать писать программу, по ходу преодолевая возникающие трудности. Морской бой хорош тем, что там думать особо над алгоритмом не надо - сойдёт даже постой рэндом. Тем интересных мало: что-то неинтересно, а что-то слишком сложно. У меня много маленьких программок на билдере - тот же калькулятор, программа шифрования, и еще много мелочи и учебных заданий, написанных для себя. Но самая востребованная вот эта, из 2-х строчек кода состоит. Тут уж никто не обвинит в плохом стиле, планировании и неправильных имён переменных:


Может как способ оно и интересно.. но.. Но, как говорится - нет ничего практичнее хорошей теории.
Когда сразу без фундамента начинаешь воять нечто более сложное хеллоу ворда, без продумывания архитектуры, с поверхностным знанием самого языка, то как правило, полезный эффект от такого подхода очень сомнителен.. поскольку не редко у таких новичков складывается иллюзорное впечатление о том, что они чего то таким путём достигли(  

Вообще, я бы советовал быть более критичным не только к своему коду, но даже в первую очередь к самой архитектуре.. Это, наверное, первое, чему нужно учиться..
« Последнее редактирование: Июнь 14, 2013, 14:56 от m_ax » Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Alexu007
Гость
« Ответ #21 : Июнь 14, 2013, 15:15 »

Но это для больших программ, и особенно когда пишет не один программист (который всё держит в голове). Для написания маленьких программулек то париться над архитектурой зачем? То же и с именами переменных. Есть глобальные, которые идут сквозь всю программу, доступны отовсюду - там разумеется нужны осмысленные имена. Но если переменная "служебная" внутри одной функции, не несёт общепрограммной смысловой нагрузки - нафига ей давать "большое имя"? Чем плохо X и X1? То же и с именами компонентов. Если их много, может и есть смысл переименовать, а если одна кнопка - чем плохо Button1?

Тем более архитектуру диктует сам язык программирования: вызываются слоты (обработчики прерываний) кнопок - в которых и выполняется собственно код программы.
« Последнее редактирование: Июнь 14, 2013, 15:19 от Alexu007 » Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #22 : Июнь 14, 2013, 15:30 »

Вообще, я бы советовал быть более критичным не только к своему коду, но даже в первую очередь к самой архитектуре.. Это, наверное, первое, чему нужно учиться..
Ах как нравится поучать набравшись std-белиберды Улыбающийся Ну а как человек должен "учиться архитектуре"? Поясните на живом примере.

Но это для больших программ, и особенно когда пишет не один программист (который всё держит в голове). Для написания маленьких программулек то париться над архитектурой зачем? То же и с именами переменных. Есть глобальные, которые идут сквозь всю программу, доступны отовсюду - там разумеется нужны осмысленные имена. Но если переменная "служебная" внутри одной функции, не несёт общепрограммной смысловой нагрузки - нафига ей давать "большое имя"? Чем плохо X и X1? То же и с именами компонентов. Если их много, может и есть смысл переименовать, а если одна кнопка - чем плохо Button1?

Тем более архитектуру диктует сам язык программирования: вызываются слоты (обработчики прерываний) кнопок - в которых и выполняется собственно код программы.
Вот что мне в нем нравится - не боится высказывать свое мнение. Увы, это ненадолго, быстро научится списывать из готового как все  Плачущий
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #23 : Июнь 14, 2013, 15:49 »

Ах как нравится поучать набравшись std-белиберды Улыбающийся
Это точно. Поучать любят и набравшиеся чего-то и даже не набравшиеся. Улыбающийся

Тем более архитектуру диктует сам язык программирования: вызываются слоты (обработчики прерываний) кнопок - в которых и выполняется собственно код программы.
Это Qt диктует, а не язык программирования.
Поэтому, на этом и не только этом форуме, есть куча тем, где осваивающих C++ просят забыть, на время освоения, Qt. И это очень правильно, IMHO.
Записан
Alexu007
Гость
« Ответ #24 : Июнь 14, 2013, 15:58 »

я когда расставил кораблики произвольным образом, долго не мог понять почему игра не хочет запускаться. пришлось лезть в код, чтобы узнать, что они не могут соприкасаться. о сообщениях об ошибке видимо ты никогда не слышал.

потом я охренел когда обнаружил у компа кривые кораблики. такое надо где-то указывать при расстановке кораблей.

На картинку, которую я выложил не глянули? И кораблики, которые при соприкосновении углами "чернеют" - не насторожили?



Цитировать
у тебя два класса для поля игрока и компа с копипастой кода — такое чувство, что о наследовании ты не слышал.
Слышал, но, честно говоря, ни разу не пользовался.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #25 : Июнь 14, 2013, 16:53 »

Но это для больших программ, и особенно когда пишет не один программист (который всё держит в голове). Для написания маленьких программулек то париться над архитектурой зачем? То же и с именами переменных. Есть глобальные, которые идут сквозь всю программу, доступны отовсюду - там разумеется нужны осмысленные имена. Но если переменная "служебная" внутри одной функции, не несёт общепрограммной смысловой нагрузки - нафига ей давать "большое имя"? Чем плохо X и X1? То же и с именами компонентов. Если их много, может и есть смысл переименовать, а если одна кнопка - чем плохо Button1?
ИМХО этот абзац очень подходит для статьи «с чего начинается быдлокод»
я когда расставил кораблики произвольным образом, долго не мог понять почему игра не хочет запускаться. пришлось лезть в код, чтобы узнать, что они не могут соприкасаться. о сообщениях об ошибке видимо ты никогда не слышал.

потом я охренел когда обнаружил у компа кривые кораблики. такое надо где-то указывать при расстановке кораблей.

На картинку, которую я выложил не глянули? И кораблики, которые при соприкосновении углами "чернеют" - не насторожили?
нет, на картинку внимания не обратил — нигде ведь не написано «ознакомьтесь с правилами расстановки кораблей на скриншоте». я просто взял код, заставил его компилироваться и посмотрел на «живую» программу.

насчет черных контуров: я несколько раз случайным образом тыкнул в поле и даже не заметил, что изначально клетки становятся серые — обратил внимание только когда они уже были черные. расставил все корабли, все черное. надо вообще не давать возможность ставить следующий корабль пока есть хоть один неправильный и сообщать об этом.
Цитировать
у тебя два класса для поля игрока и компа с копипастой кода — такое чувство, что о наследовании ты не слышал.
Слышал, но, честно говоря, ни разу не пользовался.
Комментарии я писал для себя, чтобы спустя несколько лет посмотреть на код и вспомнить, как что работает. Что в итоге и произошло: первый вариант МБ был написан аж на ассемблере на 486-м компе под DOS - я тогда ассемблер изучал. Потом был переписан на С++ builder - я билдер осваивал. Теперь пришла очередь Qt
прямо даже и не знаю что сказать… конечно, если ты взял билдер (а ведь там тоже плюсы), поигрался с ним неделю-месяц и забросил программирование надолго, то еще можно понять, но если ты постоянно программируешь…
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Alexu007
Гость
« Ответ #26 : Июнь 14, 2013, 17:06 »

Я постоянно не программирую, это хобби. Многа народу любят разгадывать кроссворды, но есть немногие, которые любят их составлять. Я примерно то же, только в програмировании. Ничем не хуже собирания спичечных коробков, плюс ещё денег тратить не нада. А я вообще халяву обожаю...
Записан
Bepec
Гость
« Ответ #27 : Июнь 14, 2013, 18:15 »

Тогда уж точно не стоит советовать новичкам свой "хоббийный" код. Подмигивающий
Записан
thechicho
Гость
« Ответ #28 : Июнь 14, 2013, 18:30 »

Вот что мне в нем нравится - не боится высказывать свое мнение. Увы, это ненадолго, быстро научится списывать из готового как все  Плачущий
себя вспомнили в молодости? боитесь повторения ваших ошибок)
Записан
Alexu007
Гость
« Ответ #29 : Июнь 14, 2013, 19:37 »

Тогда уж точно не стоит советовать новичкам свой "хоббийный" код. Подмигивающий
Да никому ничего я не советую. Они посмотрят и сразу поймут, как не надо делать.
Записан
Страниц: 1 [2] 3   Вверх
  Печать  
 
Перейти в:  


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