Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Морской бой с компьютером. Оцените работу новичка 
V
    Опции темы
platon2009
Дата 10.3.2010, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 9.3.2010

Репутация: нет
Всего: 1



Обращаюсь с просьбой к опытным программистам. Помогите кто-нибудь повысить самооценку. Трачу много времени и сил на изучение программирования. Написала первую программу "Морской бой" с компьютером. Программа работает хорошо. Может ли кто-нибудь бегло посмотреть код и оценить?

Не уверена, что сейчас все делаю правильно, первый раз на форуме. Загружаю исполняемый файл. Если найдется добрый человек и захочет посмотреть код, то подскажите как мне его передать.

Если моя просьба выглядит нелепо, то заранее извините.

Добавлено через 14 минут и 19 секунд
Не могу понять, загрузился ли исполняемый файл? Позор мне...

Присоединённый файл ( Кол-во скачиваний: 100 )
Присоединённый файл  ___________.exe 61,00 Kb
PM MAIL   Вверх
platon2009
Дата 10.3.2010, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 9.3.2010

Репутация: нет
Всего: 1



Программа написана в Visual Studio 2008 на VB.

Хоть кого-нибудь интересует женская логика?  smile 
PM MAIL   Вверх
mr.Anderson
Дата 10.3.2010, 19:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 6
Всего: 128



Было бы на C#, поглядел бы код... А так вряд ли помогу))

PS отписался, чтобы не было впечатления, что всем побоку)


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
platon2009
Дата 10.3.2010, 19:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 9.3.2010

Репутация: нет
Всего: 1



Спасибо!
PM MAIL   Вверх
wester
Дата 10.3.2010, 21:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 675
Регистрация: 27.2.2009

Репутация: 1
Всего: 13



platon2009
1) не интуитивно понятный GUI - то есть я полторы минуты соображал как сделать что бы корабль можно было по вертикали поставить , это признак того что GUI среднестатистическому юзеру будет противен
2) навязчивость хода игры - я , среднестатистический юзер играю, а не слежу что происходит на моем поле, зачем нужны MessageBox с вопросом попал\не попал я не понял. мозг на этом этапе вынесло когда я ответил что не попал , и программа мне сказала "не обманывай"
то есть я не должен постоянно искать на моем поле куда он попал .

по логике игры ничего не могу сказать так как не вижу исходников и прочее
PM MAIL   Вверх
platon2009
Дата 11.3.2010, 09:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 9.3.2010

Репутация: нет
Всего: 1



Спасибо, wester, за участие. Соображать полторы минуты - для меня это быстро (Шутка). В любом случае это легко исправить.

"MessageBox с вопросом попал\не попал" для выполнения программы вообще не нужны, но когда играют между собой люди, они же общаются! И обманывать нельзя!!! Пыталась сделать что-то вроде панели с радио-кнопками или всплывающую дочернюю форму с кнопками выбора между "Попал", "Не попал", "Убит". Все это сильно усложняет код, а эффект практически тот-же.

Честно говоря GUI уделила мало внимания. Меня больше волновал "интеллект" компьютера - непредсказуемая игра, разнообразная расстановка кораблей, выбор "правильного" поля для выстрела (если убиты однопалубники, то компьютер не стреляет в одиночное поле и проч.).

Присоединяю папку с проектом. Посмотрите, добрые люди!!!

Присоединённый файл ( Кол-во скачиваний: 84 )
Присоединённый файл  ___________11.rar 182,30 Kb
PM MAIL   Вверх
wester
Дата 11.3.2010, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 675
Регистрация: 27.2.2009

Репутация: 1
Всего: 13



Цитата

"MessageBox с вопросом попал\не попал" для выполнения программы вообще не нужны, но когда играют между собой люди, они же общаются! И обманывать нельзя!!

одно дело - человеки играют , другое когда с компьютером -> тут диалог не возможен больше 3-4 окон вдумчивого текста

Цитата

Пыталась сделать что-то вроде панели с радио-кнопками или всплывающую дочернюю форму с кнопками выбора между "Попал", "Не попал", "Убит". Все это сильно усложняет код,

значит плохо спроектирована система - в нормальном коде достаточно переписать функцию вывода результата и все.

Цитата

Меня больше волновал "интеллект" компьютер

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

теперь по коду.
1)бросай VB.net
1)во-первых вынос мозга - это кирилица в именах файлах и самое ужасное в методах, 
мне страшно представить как будет дорабатываться программа на клавиатуре без русских символов
2) хорошо что есть комментарии к коду, но тем не менее это не умоляет того что он написан так сказать в традициях прошлого века
на примере 
Код

Public Enum ТипКорабля
        Нет_Корабля
        Корабль_4
        Корабль_3_1
        Корабль_3_2
        Корабль_2_1
        Корабль_2_2
        Корабль_2_3
        Корабль_1_1
        Корабль_1_2
        Корабль_1_3
        Корабль_1_4
        Убитый_корабль
        Убитый_корабль_4
        Убитый_корабль_3_1
        Убитый_корабль_3_2
        Убитый_корабль_2_1
        Убитый_корабль_2_2
        Убитый_корабль_2_3
        Убитый_корабль_1_1
        Убитый_корабль_1_2
        Убитый_корабль_1_3
        Убитый_корабль_1_4

    End Enum

не проще ли создать массив однотипных классов , а не писать одно и то же много строк подряд?

потом метод Load файла Form1.vb
я не уверен что нужно данный метод загромождать настолько, проще все это вынести в отдельные методы

3)не понятно, как писался код вообще , никакой продуманности нет, видно что было вдохновение , но код типа 
Код

    Private Sub Процедура_попадания(ByVal i As Byte, ByVal j As Byte)
        If Поле_Игрока(i, j).Палубность_Корабля = Клетка.ТипКорабля.Корабль_4 Then
            Поле_Игрока(i, j).Палубность_Корабля = Клетка.ТипКорабля.Убитый_корабль_4
            Подсчет_убитых_палуб_кораблей_противника(Клетка.ТипКорабля.Убитый_корабль_4, 1)
            If K(1) < 4 And убит = True Then убит = False : MsgBox("ВАШ КОРАБЛЬ НЕ УБИТ, НЕ СТОИТ ОБМАНЫВАТЬ")
            If K(1) = 4 Then номер_попадания = 0 : Кол_убитых_кораблей = Кол_убитых_кораблей + 1 : Создаем_пространства_вокруг_убитого_корабля_противника(Клетка.ТипКорабля.Убитый_корабль_4) : If Not убит Then MsgBox("ВАШ КОРАБЛЬ УБИТ, НЕ СТОИТ ОБМАНЫВАТЬ!!!")
        End If

        If Поле_Игрока(i, j).Палубность_Корабля = Клетка.ТипКорабля.Корабль_3_1 Then
            Поле_Игрока(i, j).Палубность_Корабля = Клетка.ТипКорабля.Убитый_корабль_3_1
            Подсчет_убитых_палуб_кораблей_противника(Клетка.ТипКорабля.Убитый_корабль_3_1, 2)
            If K(2) < 3 And убит = True Then убит = False : MsgBox("ВАШ КОРАБЛЬ НЕ УБИТ, НЕ СТОИТ ОБМАНЫВАТЬ")
            If K(2) = 3 Then номер_попадания = 0 : Кол_убитых_кораблей = Кол_убитых_кораблей + 1 : Создаем_пространства_вокруг_убитого_корабля_противника(Клетка.ТипКорабля.Убитый_корабль_3_1) : If Not убит Then MsgBox("ВАШ КОРАБЛЬ УБИТ, НЕ СТОИТ ОБМАНЫВАТЬ!!!")
        End If

        If Поле_Игрока(i, j).Палубность_Корабля = Клетка.ТипКорабля.Корабль_3_2 Then
            Поле_Игрока(i, j).Палубность_Корабля = Клетка.ТипКорабля.Убитый_корабль_3_2
            Подсчет_убитых_палуб_кораблей_противника(Клетка.ТипКорабля.Убитый_корабль_3_2, 3)
            If K(3) < 3 And убит = True Then убит = False : MsgBox("ВАШ КОРАБЛЬ НЕ УБИТ, НЕ СТОИТ ОБМАНЫВАТЬ")
            If K(3) = 3 Then номер_попадания = 0 : Кол_убитых_кораблей = Кол_убитых_кораблей + 1 : Создаем_пространства_вокруг_убитого_корабля_противника(Клетка.ТипКорабля.Убитый_корабль_3_2) : If Not убит Then MsgBox("ВАШ КОРАБЛЬ УБИТ, НЕ СТОИТ ОБМАНЫВАТЬ!!!")

        End If

        If Поле_Игрока(i, j).Палубность_Корабля = Клетка.ТипКорабля.Корабль_2_1 Then
            Поле_Игрока(i, j).Палубность_Корабля = Клетка.ТипКорабля.Убитый_корабль_2_1
            Подсчет_убитых_палуб_кораблей_противника(Клетка.ТипКорабля.Убитый_корабль_2_1, 4)
            If K(4) < 2 And убит = True Then убит = False : MsgBox("ВАШ КОРАБЛЬ НЕ УБИТ, НЕ СТОИТ ОБМАНЫВАТЬ")
            If K(4) = 2 Then номер_попадания = 0 : Кол_убитых_кораблей = Кол_убитых_кораблей + 1 : Создаем_пространства_вокруг_убитого_корабля_противника(Клетка.ТипКорабля.Убитый_корабль_2_1) : If Not убит Then MsgBox("ВАШ КОРАБЛЬ УБИТ, НЕ СТОИТ ОБМАНЫВАТЬ!!!")

        End If

        If Поле_Игрока(i, j).Палубность_Корабля = Клетка.ТипКорабля.Корабль_2_2 Then
            Поле_Игрока(i, j).Палубность_Корабля = Клетка.ТипКорабля.Убитый_корабль_2_2
            Подсчет_убитых_палуб_кораблей_противника(Клетка.ТипКорабля.Убитый_корабль_2_2, 5)
            If K(5) < 2 And убит = True Then убит = False : MsgBox("ВАШ КОРАБЛЬ НЕ УБИТ, НЕ СТОИТ ОБМАНЫВАТЬ")
            If K(5) = 2 Then номер_попадания = 0 : Кол_убитых_кораблей = Кол_убитых_кораблей + 1 : Создаем_пространства_вокруг_убитого_корабля_противника(Клетка.ТипКорабля.Убитый_корабль_2_2) : If Not убит Then MsgBox("ВАШ КОРАБЛЬ УБИТ, НЕ СТОИТ ОБМАНЫВАТЬ!!!")

        End If

        If Поле_Игрока(i, j).Палубность_Корабля = Клетка.ТипКорабля.Корабль_2_3 Then
            Поле_Игрока(i, j).Палубность_Корабля = Клетка.ТипКорабля.Убитый_корабль_2_3
            Подсчет_убитых_палуб_кораблей_противника(Клетка.ТипКорабля.Убитый_корабль_2_3, 6)
            If K(6) < 2 And убит = True Then убит = False : MsgBox("ВАШ КОРАБЛЬ НЕ УБИТ, НЕ СТОИТ ОБМАНЫВАТЬ")
            If K(6) = 2 Then номер_попадания = 0 : Кол_убитых_кораблей = Кол_убитых_кораблей + 1 : Создаем_пространства_вокруг_убитого_корабля_противника(Клетка.ТипКорабля.Убитый_корабль_2_3) : If Not убит Then MsgBox("ВАШ КОРАБЛЬ УБИТ, НЕ СТОИТ ОБМАНЫВАТЬ!!!")

        End If

        If Поле_Игрока(i, j).Палубность_Корабля = Клетка.ТипКорабля.Корабль_1_1 Then
            Поле_Игрока(i, j).Палубность_Корабля = Клетка.ТипКорабля.Убитый_корабль_1_1
            Подсчет_убитых_палуб_кораблей_противника(Клетка.ТипКорабля.Убитый_корабль_1_1, 7)
            If K(7) < 1 And убит = True Then убит = False : MsgBox("ВАШ КОРАБЛЬ НЕ УБИТ, НЕ СТОИТ ОБМАНЫВАТЬ")
            If K(7) = 1 Then номер_попадания = 0 : Кол_убитых_кораблей = Кол_убитых_кораблей + 1 : Создаем_пространства_вокруг_убитого_корабля_противника(Клетка.ТипКорабля.Убитый_корабль_1_1) : If Not убит Then MsgBox("ВАШ КОРАБЛЬ УБИТ, НЕ СТОИТ ОБМАНЫВАТЬ!!!")

        End If

        If Поле_Игрока(i, j).Палубность_Корабля = Клетка.ТипКорабля.Корабль_1_2 Then
            Поле_Игрока(i, j).Палубность_Корабля = Клетка.ТипКорабля.Убитый_корабль_1_2
            Подсчет_убитых_палуб_кораблей_противника(Клетка.ТипКорабля.Убитый_корабль_1_2, 8)
            If K(8) < 1 And убит = True Then убит = False : MsgBox("ВАШ КОРАБЛЬ НЕ УБИТ, НЕ СТОИТ ОБМАНЫВАТЬ")
            If K(8) = 1 Then номер_попадания = 0 : Кол_убитых_кораблей = Кол_убитых_кораблей + 1 : Создаем_пространства_вокруг_убитого_корабля_противника(Клетка.ТипКорабля.Убитый_корабль_1_2) : If Not убит Then MsgBox("ВАШ КОРАБЛЬ УБИТ, НЕ СТОИТ ОБМАНЫВАТЬ!!!")

        End If

        If Поле_Игрока(i, j).Палубность_Корабля = Клетка.ТипКорабля.Корабль_1_3 Then
            Поле_Игрока(i, j).Палубность_Корабля = Клетка.ТипКорабля.Убитый_корабль_1_3
            Подсчет_убитых_палуб_кораблей_противника(Клетка.ТипКорабля.Убитый_корабль_1_3, 9)
            If K(9) < 1 And убит = True Then убит = False : MsgBox("ВАШ КОРАБЛЬ НЕ УБИТ, НЕ СТОИТ ОБМАНЫВАТЬ")
            If K(9) = 1 Then номер_попадания = 0 : Кол_убитых_кораблей = Кол_убитых_кораблей + 1 : Создаем_пространства_вокруг_убитого_корабля_противника(Клетка.ТипКорабля.Убитый_корабль_1_3) : If Not убит Then MsgBox("ВАШ КОРАБЛЬ УБИТ, НЕ СТОИТ ОБМАНЫВАТЬ!!!")

        End If

        If Поле_Игрока(i, j).Палубность_Корабля = Клетка.ТипКорабля.Корабль_1_4 Then
            Поле_Игрока(i, j).Палубность_Корабля = Клетка.ТипКорабля.Убитый_корабль_1_4
            Подсчет_убитых_палуб_кораблей_противника(Клетка.ТипКорабля.Убитый_корабль_1_4, 10)
            If K(10) < 1 And убит = True Then убит = False : MsgBox("ВАШ КОРАБЛЬ НЕ УБИТ, НЕ СТОИТ ОБМАНЫВАТЬ")
            If K(10) = 1 Then номер_попадания = 0 : Кол_убитых_кораблей = Кол_убитых_кораблей + 1 : Создаем_пространства_вокруг_убитого_корабля_противника(Клетка.ТипКорабля.Убитый_корабль_1_4) : If Not убит Then MsgBox("ВАШ КОРАБЛЬ УБИТ, НЕ СТОИТ ОБМАНЫВАТЬ!!!")
        End If

        
    End Sub

до черта копипаста , а не кода , все это можно было вынести в три - четыре метода.
нужна хоть какая то продуманность, так как видно что было все написано без какой либо системы.
нужно просто сесть , взять пару листов А4 и расписать все методы что делает и как
или просто развернутую концепцию  , что какой класс делает
PM MAIL   Вверх
platon2009
Дата 12.3.2010, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 9.3.2010

Репутация: нет
Всего: 1



Спасибо за критику.
Использовать кириллицу советует автор учебника, по которому я обучалась - помогает не запутаться. Но я с вами вполне согласна, устала переключать клавиатуру.
Не согласна по поводу перечисления. Во-первых, оно пополнялось в процессе работы, во-вторых к элементам массива следует обращаться по номеру(или я что-то не понимаю), значит нужно помнить номер каждого типа корабля или держать перед собой бумажку.
В методе Load файла Form1.vb, все операторы выполняются только один раз - это оформление игрового поля и расстановка кнопок, мне показалось (подсказала женская интуиция), не стоит их разделять. 
По поводу вдохновения - вы совершенно правы (и в остальном, естественно тоже).
Для первого раза-то как? Стоит ли продолжать этим заниматься? Сейчас осваиваю С++(смело с моей стороны?) идет достаточно легко, но отчетливо понимаю, что на этом языке так не распишешься и одного вдохновения не хватит. Спасибо.
PM MAIL   Вверх
Partizan
Дата 12.3.2010, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: нет
Всего: 67



platon2009, нормально. с опытом всё придёт. для первого раза - сойдёт smile главное - не останавливайтесь на достигнутом, очень прислушивайтесь к критике(особенно на данном этапе) и старайтесь исправлять свои ошибки.

з.ы. автор, который посоветовал использовать кириллицу, чтобы не запутаться просто неиллюзорно доставил...откуда только такие аффтары берутся...


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Exai1e
Дата 13.3.2010, 11:42 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 908
Регистрация: 3.12.2006
Где: Moscow

Репутация: нет
Всего: 30



о ужас
Цитата(platon2009 @  12.3.2010,  09:41 Найти цитируемый пост)
Использовать кириллицу советует автор учебника, по которому я обучалась - помогает не запутаться.

застрелить, сжечь, отправить в тайгу

купи / скачай нормальный учебник, нормального автора. А то я чувствую этот еще не тому научит...


--------------------
"Решение зависит от выбранного геморроя" © Snowy
"у нас как в армии - либо работает, либо так и задумано"
PM MAIL ICQ   Вверх
platon2009
Дата 13.3.2010, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 9.3.2010

Репутация: нет
Всего: 1



Вот цитата из учебника "Понятно о Visual Basic .NET" автор Лукин С.Н.


"Называем по-русски. Взгляните в текст любой программы. Он состоит в основном из ключевых слов на английском (на латинице) и имен. Причем и тех и других так много, что глаза разбегаются и непонятно, где ключевое слово, а где имя. А если это имя – то создано ли оно программистом или взято из библиотеки классов .NET Framework – сразу не поймешь. Нам, русскоязычным, здесь удобнее: мы можем имена давать на русском (на кириллице). Разница между английскими и русскими буквами сразу бросается в глаза и разбирать текст программы становится не в пример легче: все, что мы создали сами, названо по-русски, а все, что досталось от VB – по-английски. Я так и делаю."

Очень хороший учебник для новичков. Мне кажется, что по этому учебнику даже мартышка научится программировать. Автор видимо очень трудолюбивый и добрый человек. Буквально разжевывает любую тему, снабжает такими примерами, что сразу становится понятен смысл и область применения любой операции. А от кириллицы всегда легко отказаться. Я так думаю.


PM MAIL   Вверх
wester
Дата 13.3.2010, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 675
Регистрация: 27.2.2009

Репутация: 1
Всего: 13




Цитата

Называем по-русски. Взгляните в текст любой программы.

смотря кто автор программы... а то попадаются такие перлы порой на codeplex.com....гхм..я отвлекся)

Цитата

Он состоит в основном из ключевых слов на английском (на латинице) и имен.

поразительно , а из чего еще состоять должен сорец программы ? из тайного записи заклинания вуду ?

Цитата

Причем и тех и других так много, что глаза разбегаются и непонятно, где ключевое слово, а где имя.

учить матчасть. и только.

Цитата

А если это имя – то создано ли оно программистом или взято из библиотеки классов .NET Framework – сразу не поймешь. 

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

если не понимаешь \ не читаешь чтения сорцов программы то тогда рано отрываться от учебника

Цитата

Нам, русскоязычным, здесь удобнее: мы можем имена давать на русском (на кириллице).

и получать большой геморрой от систем где нет киррилицы))
Цитата

Разница между английскими и русскими буквами сразу бросается в глаза

оооо да!)
Цитата

бросается в глаза и разбирать текст программы становится не в пример легче:

автор что, принимал участие в разработке языка 1с ? откуда такие слова?!
Цитата

все, что мы создали сами, названо по-русски, а все, что досталось от VB – по-английски.

заковыка в том что 100% программы по сути создает программист, а значит он все сам создает

и потом я не могу понять как я могу попутать метод Foo() и какой -то метод из пространства System , типа Console.WriteLine()
Цитата

Я так и делаю.

либо автор тонко стебется над читателем , либо он клинический идиот
Цитата

Буквально разжевывает любую тему, снабжает такими примерами, что сразу становится понятен смысл и область применения любой операции

справки qt и msdn тоже хорошо разжевывают библиотеки классов
Цитата

А от кириллицы всегда легко отказаться.
лучше даже не начинать писать на русском, по возможности даже комментарии писать на английском

теперь по поводу ответа на критику
Цитата

Не согласна по поводу перечисления.

вот для чего нужно перечисление http://msdn.microsoft.com/ru-ru/library/cc138362.aspx
ваше перечисление можно было заменить List<T> выглядит лучше , и обращаться легче
Цитата


В методе Load файла Form1.vb, все операторы выполняются только один раз - это оформление игрового поля и расстановка кнопок, мне показалось (подсказала женская интуиция), не стоит их разделять. 

во-первых, метод Load срабатывает при каждой загрузке формы, если вы будете ее перезагружать, то будет еще раз вызван метод Load()
во-вторых,стоит либо сделать двумерные массивы куда сохранять состояние обоих полей, либо еще что , но не писать код в методах формы. это плохой тон  и ужас при переделке архитектуры
Цитата

Сейчас осваиваю С++(смело с моей стороны?)

прыгнуть с парашюта тоже смело, но смысл ? к тому же к C++ нужно подходить с хорошим знанием того что хочешь сделать , и главное, как будет делать.
да и работа с памятью тоже доставит немало экстаза при отладке



Это сообщение отредактировал(а) wester - 13.3.2010, 16:57
PM MAIL   Вверх
platon2009
Дата 14.3.2010, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 9.3.2010

Репутация: нет
Всего: 1



Цитата

систем где нет киррилицы))

С подобными системами я встречусь быть-может в следующей жизни, а в этой  - даже не рассчитываю.  

 
Цитата

вот для чего нужно перечисление http://msdn.microsoft.com/ru-ru/library/cc138362.aspx
ваше перечисление можно было заменить List<T> выглядит лучше , и обращаться легче


Что может быть проще перечисления в данном случае? Чем лучше List<T>? smile 

Цитата

во-первых, метод Load срабатывает при каждой загрузке формы, если вы будете ее перезагружать, то будет еще раз вызван метод Load()


Ну и замечательно! Форма загружается один раз. Зачем перезагружать форму??? Что-бы начать новую игру, есть отдельный метод, он в самом конце Load(). 

Цитата

во-вторых,стоит либо сделать двумерные массивы куда сохранять состояние обоих полей, либо еще что , но не писать код в методах формы. это плохой тон  и ужас при переделке архитектуры


Двумерные массивы я использую, если захочу добавить кнопку сохранения и открытия конкретной игры. Как можно сохранить в двумерный массив расположение и активность управляющих кнопок, расположение игровых полей относительно края формы и т. п., короче - оформление?  И где я должна писать код оформления, если я хочу видеть все поля и кнопки сразу после загрузки файла? Что тогда пишут в методах формы? Вы имеете в виду вызов других методов, расположенных в стандартных модулях?

Цитата

прыгнуть с парашюта тоже смело, но смысл ? к тому же к C++ нужно подходить с хорошим знанием того что хочешь сделать , и главное, как будет делать.


Нет возражений. 











PM MAIL   Вверх
wester
Дата 14.3.2010, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 675
Регистрация: 27.2.2009

Репутация: 1
Всего: 13



Цитата

Что может быть проще перечисления в данном случае? Чем лучше List<T>? smile 

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

Цитата

Ну и замечательно! Форма загружается один раз. Зачем перезагружать форму??? Что-бы начать новую игру, есть отдельный метод, он в самом конце Load(). 

гм, ну в данном случае немного просто не туда запихнута инициализация переменных  и полей, в этом случае наверно разницы никакой , просто немного затрудняет понимание того КАК ОНО ВООБЩЕ работает))
Цитата

Как можно сохранить в двумерный массив расположение и активность управляющих кнопок, расположение игровых полей относительно края формы и т. п., короче - оформление? 

можно сохранить во внешний файл расположение кораблей и прочее, например в XML
Цитата

И где я должна писать код оформления, если я хочу видеть все поля и кнопки сразу после загрузки файла?

можно в методе initialize , хотя опять таки стоит многое вынести из файла формы, что бы вся логика хранилась вне формы, а просто вызывалась по мере необходимости одной двумя строчками
Цитата

Вы имеете в виду вызов других методов, расположенных в стандартных модулях?

можно и на Ты)) это предложение вообще не понял. что есть стандартные модуль ?
PM MAIL   Вверх
platon2009
Дата 15.3.2010, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 9.3.2010

Репутация: нет
Всего: 1



Цитата

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


Перечисление является простейшим пользовательским типом. Если тебе не хватает встроенных типов, ты создаешь свой собственный и с успехом им пользуешся. А  перечисление дней недели или времен суток - это  доступные для всеобщего понимания перечисления, чтобы некоторым проще было понять -  что же такое перечисление. Используется  оно у меня не для хранения данных, а для определения свойства объекта моего класса.

Цитата

можно сохранить во внешний файл расположение кораблей и прочее, например в XML


Я говорю про оформление формы, а ты про расположение кораблей. Расположение кораблей я сохраню даже в обычный текстовый файл, если мне это понадобиться. То что ты видишь перед собой, когда запускаешь игру, тоже необходимо где-то создать. Создается это только один раз при запуске игры. 

Цитата

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


Где ты собираешься "хранить логику", если в модуле формы "хранить" нельзя, а что такое стандартный модуль - ты не знаешь?

Все это не то, и не стоит таких долгих обсуждений. 
Меня волнует сама игра. Все ли учтено для непредсказуемости игры компьютера?
Правильно ли я поступила, сделав классом отдельную клетку игрового поля, а не корабль?


PM MAIL   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Тестирование программ"
mr.Anderson

Правила должны соблюдаться всеми без исключения.

  • Темы, в которых будут обнаружены нарушения, будут закрыты или удалены.
  • К пользователям, многократно нарушившим правила, будут применены отдельные санкции.

Для тех, кто создаёт темы:

В данном разделе запрещается размещать программы, которые в той или иной степени могут принести вред потенциальному тестеру программы (например, трояны, вирусы и т.д.)

  • Публикуя ссылку на программу, обязательно проверьте её работоспособность.
  • ОБЯЗАТЕЛЬНО: напишите название программы, а главное - её описание и приведите хотя бы один скриншот. Скриншот по размерам не более 500х500 пикселов, для скриншотов большего размера приводите ссылки на них.
  • Программа, которую Вы даёте на тестирование, должна быть откомпилирована, так как не каждый является программистом, да и мало кто будет ради тестирования устанавливать соответствующий софт.

Для тех, кто тестирует:

Описывая результаты тестирования программы, указывайте тип и версию ОС, а также характеристики компьютера и прочую информацию, которая может повлиять на работоспособность.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.Anderson.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разное тестирование | Следующая тема »


 




[ Время генерации скрипта: 0.2034 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.