|
|
|
platon2009 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 9.3.2010 Репутация: нет Всего: 1 |
Обращаюсь с просьбой к опытным программистам. Помогите кто-нибудь повысить самооценку. Трачу много времени и сил на изучение программирования. Написала первую программу "Морской бой" с компьютером. Программа работает хорошо. Может ли кто-нибудь бегло посмотреть код и оценить?
Не уверена, что сейчас все делаю правильно, первый раз на форуме. Загружаю исполняемый файл. Если найдется добрый человек и захочет посмотреть код, то подскажите как мне его передать. Если моя просьба выглядит нелепо, то заранее извините. Добавлено через 14 минут и 19 секунд Не могу понять, загрузился ли исполняемый файл? Позор мне... Присоединённый файл ( Кол-во скачиваний: 100 ) ___________.exe 61,00 Kb |
|||
|
||||
platon2009 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 9.3.2010 Репутация: нет Всего: 1 |
Программа написана в Visual Studio 2008 на VB.
Хоть кого-нибудь интересует женская логика? |
|||
|
||||
mr.Anderson |
|
|||
iOS Lead Developer Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: 6 Всего: 128 |
Было бы на C#, поглядел бы код... А так вряд ли помогу))
PS отписался, чтобы не было впечатления, что всем побоку) |
|||
|
||||
platon2009 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 9.3.2010 Репутация: нет Всего: 1 |
Спасибо!
|
|||
|
||||
wester |
|
|||
Опытный Профиль Группа: Участник Сообщений: 675 Регистрация: 27.2.2009 Репутация: 1 Всего: 13 |
platon2009,
1) не интуитивно понятный GUI - то есть я полторы минуты соображал как сделать что бы корабль можно было по вертикали поставить , это признак того что GUI среднестатистическому юзеру будет противен 2) навязчивость хода игры - я , среднестатистический юзер играю, а не слежу что происходит на моем поле, зачем нужны MessageBox с вопросом попал\не попал я не понял. мозг на этом этапе вынесло когда я ответил что не попал , и программа мне сказала "не обманывай" то есть я не должен постоянно искать на моем поле куда он попал . по логике игры ничего не могу сказать так как не вижу исходников и прочее |
|||
|
||||
platon2009 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 9.3.2010 Репутация: нет Всего: 1 |
Спасибо, wester, за участие. Соображать полторы минуты - для меня это быстро (Шутка). В любом случае это легко исправить.
"MessageBox с вопросом попал\не попал" для выполнения программы вообще не нужны, но когда играют между собой люди, они же общаются! И обманывать нельзя!!! Пыталась сделать что-то вроде панели с радио-кнопками или всплывающую дочернюю форму с кнопками выбора между "Попал", "Не попал", "Убит". Все это сильно усложняет код, а эффект практически тот-же. Честно говоря GUI уделила мало внимания. Меня больше волновал "интеллект" компьютера - непредсказуемая игра, разнообразная расстановка кораблей, выбор "правильного" поля для выстрела (если убиты однопалубники, то компьютер не стреляет в одиночное поле и проч.). Присоединяю папку с проектом. Посмотрите, добрые люди!!! Присоединённый файл ( Кол-во скачиваний: 84 ) ___________11.rar 182,30 Kb |
|||
|
||||
wester |
|
||||||||||
Опытный Профиль Группа: Участник Сообщений: 675 Регистрация: 27.2.2009 Репутация: 1 Всего: 13 |
одно дело - человеки играют , другое когда с компьютером -> тут диалог не возможен больше 3-4 окон вдумчивого текста
значит плохо спроектирована система - в нормальном коде достаточно переписать функцию вывода результата и все.
где - то видел математический алгоритм игры в морской код. погугли, я точно не помню где я его видел. если найдешь было б не плохо его реализовать в коде. теперь по коду. 1)бросай VB.net 1)во-первых вынос мозга - это кирилица в именах файлах и самое ужасное в методах, мне страшно представить как будет дорабатываться программа на клавиатуре без русских символов 2) хорошо что есть комментарии к коду, но тем не менее это не умоляет того что он написан так сказать в традициях прошлого века на примере
не проще ли создать массив однотипных классов , а не писать одно и то же много строк подряд? потом метод Load файла Form1.vb я не уверен что нужно данный метод загромождать настолько, проще все это вынести в отдельные методы 3)не понятно, как писался код вообще , никакой продуманности нет, видно что было вдохновение , но код типа
до черта копипаста , а не кода , все это можно было вынести в три - четыре метода. нужна хоть какая то продуманность, так как видно что было все написано без какой либо системы. нужно просто сесть , взять пару листов А4 и расписать все методы что делает и как или просто развернутую концепцию , что какой класс делает |
||||||||||
|
|||||||||||
platon2009 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 9.3.2010 Репутация: нет Всего: 1 |
Спасибо за критику.
Использовать кириллицу советует автор учебника, по которому я обучалась - помогает не запутаться. Но я с вами вполне согласна, устала переключать клавиатуру. Не согласна по поводу перечисления. Во-первых, оно пополнялось в процессе работы, во-вторых к элементам массива следует обращаться по номеру(или я что-то не понимаю), значит нужно помнить номер каждого типа корабля или держать перед собой бумажку. В методе Load файла Form1.vb, все операторы выполняются только один раз - это оформление игрового поля и расстановка кнопок, мне показалось (подсказала женская интуиция), не стоит их разделять. По поводу вдохновения - вы совершенно правы (и в остальном, естественно тоже). Для первого раза-то как? Стоит ли продолжать этим заниматься? Сейчас осваиваю С++(смело с моей стороны?) идет достаточно легко, но отчетливо понимаю, что на этом языке так не распишешься и одного вдохновения не хватит. Спасибо. |
|||
|
||||
Partizan |
|
|||
Let's do some .NET Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: нет Всего: 67 |
platon2009, нормально. с опытом всё придёт. для первого раза - сойдёт главное - не останавливайтесь на достигнутом, очень прислушивайтесь к критике(особенно на данном этапе) и старайтесь исправлять свои ошибки.
з.ы. автор, который посоветовал использовать кириллицу, чтобы не запутаться просто неиллюзорно доставил...откуда только такие аффтары берутся... -------------------- СУВ, Partizan. |
|||
|
||||
Exai1e |
|
|||
Опытный Профиль Группа: Участник Сообщений: 908 Регистрация: 3.12.2006 Где: Moscow Репутация: нет Всего: 30 |
о ужас
застрелить, сжечь, отправить в тайгу купи / скачай нормальный учебник, нормального автора. А то я чувствую этот еще не тому научит... -------------------- "Решение зависит от выбранного геморроя" © Snowy "у нас как в армии - либо работает, либо так и задумано" |
|||
|
||||
platon2009 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 9.3.2010 Репутация: нет Всего: 1 |
Вот цитата из учебника "Понятно о Visual Basic .NET" автор Лукин С.Н.
"Называем по-русски. Взгляните в текст любой программы. Он состоит в основном из ключевых слов на английском (на латинице) и имен. Причем и тех и других так много, что глаза разбегаются и непонятно, где ключевое слово, а где имя. А если это имя – то создано ли оно программистом или взято из библиотеки классов .NET Framework – сразу не поймешь. Нам, русскоязычным, здесь удобнее: мы можем имена давать на русском (на кириллице). Разница между английскими и русскими буквами сразу бросается в глаза и разбирать текст программы становится не в пример легче: все, что мы создали сами, названо по-русски, а все, что досталось от VB – по-английски. Я так и делаю." Очень хороший учебник для новичков. Мне кажется, что по этому учебнику даже мартышка научится программировать. Автор видимо очень трудолюбивый и добрый человек. Буквально разжевывает любую тему, снабжает такими примерами, что сразу становится понятен смысл и область применения любой операции. А от кириллицы всегда легко отказаться. Я так думаю. |
|||
|
||||
wester |
|
||||||||||||||||||||||||||||||
Опытный Профиль Группа: Участник Сообщений: 675 Регистрация: 27.2.2009 Репутация: 1 Всего: 13 |
смотря кто автор программы... а то попадаются такие перлы порой на codeplex.com....гхм..я отвлекся)
поразительно , а из чего еще состоять должен сорец программы ? из тайного записи заклинания вуду ?
учить матчасть. и только.
парадоксально, но .net писали тоже мартышки-программисты, получается тогда вообще полная неразбериха!
и получать большой геморрой от систем где нет киррилицы))
оооо да!)
автор что, принимал участие в разработке языка 1с ? откуда такие слова?!
заковыка в том что 100% программы по сути создает программист, а значит он все сам создает и потом я не могу понять как я могу попутать метод Foo() и какой -то метод из пространства System , типа Console.WriteLine()
либо автор тонко стебется над читателем , либо он клинический идиот
справки qt и msdn тоже хорошо разжевывают библиотеки классов
теперь по поводу ответа на критику
вот для чего нужно перечисление http://msdn.microsoft.com/ru-ru/library/cc138362.aspx ваше перечисление можно было заменить List<T> выглядит лучше , и обращаться легче
во-первых, метод Load срабатывает при каждой загрузке формы, если вы будете ее перезагружать, то будет еще раз вызван метод Load() во-вторых,стоит либо сделать двумерные массивы куда сохранять состояние обоих полей, либо еще что , но не писать код в методах формы. это плохой тон и ужас при переделке архитектуры
прыгнуть с парашюта тоже смело, но смысл ? к тому же к C++ нужно подходить с хорошим знанием того что хочешь сделать , и главное, как будет делать. да и работа с памятью тоже доставит немало экстаза при отладке Это сообщение отредактировал(а) wester - 13.3.2010, 16:57 |
||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||
platon2009 |
|
||||||||||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 9.3.2010 Репутация: нет Всего: 1 |
С подобными системами я встречусь быть-может в следующей жизни, а в этой - даже не рассчитываю.
Что может быть проще перечисления в данном случае? Чем лучше List<T>?
Ну и замечательно! Форма загружается один раз. Зачем перезагружать форму??? Что-бы начать новую игру, есть отдельный метод, он в самом конце Load().
Двумерные массивы я использую, если захочу добавить кнопку сохранения и открытия конкретной игры. Как можно сохранить в двумерный массив расположение и активность управляющих кнопок, расположение игровых полей относительно края формы и т. п., короче - оформление? И где я должна писать код оформления, если я хочу видеть все поля и кнопки сразу после загрузки файла? Что тогда пишут в методах формы? Вы имеете в виду вызов других методов, расположенных в стандартных модулях?
Нет возражений. |
||||||||||
|
|||||||||||
wester |
|
||||||||||
Опытный Профиль Группа: Участник Сообщений: 675 Регистрация: 27.2.2009 Репутация: 1 Всего: 13 |
если я внимательно смотрел код, то там перечисление у тебя использовалось для хранения и изменения данных. enum используется просто как перечисление дней недели или времен суток
гм, ну в данном случае немного просто не туда запихнута инициализация переменных и полей, в этом случае наверно разницы никакой , просто немного затрудняет понимание того КАК ОНО ВООБЩЕ работает))
можно сохранить во внешний файл расположение кораблей и прочее, например в XML
можно в методе initialize , хотя опять таки стоит многое вынести из файла формы, что бы вся логика хранилась вне формы, а просто вызывалась по мере необходимости одной двумя строчками
можно и на Ты)) это предложение вообще не понял. что есть стандартные модуль ? |
||||||||||
|
|||||||||||
platon2009 |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 9.3.2010 Репутация: нет Всего: 1 |
Перечисление является простейшим пользовательским типом. Если тебе не хватает встроенных типов, ты создаешь свой собственный и с успехом им пользуешся. А перечисление дней недели или времен суток - это доступные для всеобщего понимания перечисления, чтобы некоторым проще было понять - что же такое перечисление. Используется оно у меня не для хранения данных, а для определения свойства объекта моего класса.
Я говорю про оформление формы, а ты про расположение кораблей. Расположение кораблей я сохраню даже в обычный текстовый файл, если мне это понадобиться. То что ты видишь перед собой, когда запускаешь игру, тоже необходимо где-то создать. Создается это только один раз при запуске игры.
Где ты собираешься "хранить логику", если в модуле формы "хранить" нельзя, а что такое стандартный модуль - ты не знаешь? Все это не то, и не стоит таких долгих обсуждений. Меня волнует сама игра. Все ли учтено для непредсказуемости игры компьютера? Правильно ли я поступила, сделав классом отдельную клетку игрового поля, а не корабль? |
||||||
|
|||||||
Правила форума "Тестирование программ" | |
|
Правила должны соблюдаться всеми без исключения.
Для тех, кто создаёт темы: В данном разделе запрещается размещать программы, которые в той или иной степени могут принести вред потенциальному тестеру программы (например, трояны, вирусы и т.д.)
Для тех, кто тестирует: Описывая результаты тестирования программы, указывайте тип и версию ОС, а также характеристики компьютера и прочую информацию, которая может повлиять на работоспособность. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.Anderson. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Разное тестирование | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |