С Новым годом! Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
10 / 10 / 0
Регистрация: 12.04.2012
Сообщений: 333

Морская битва

19.08.2014, 22:06. Показов 1050. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Набросал немного кода. Игра называется "Морская битва". Пока в консольной форме. Давайте в этой теме обсуждать как можно улучшить игру. Код будет постоянно обновляться. Помогайте - изменяйте мой код как будет удобно. Можно добавить GUI.

Пока в сражении участвуют 1 фрегат и 1 линейный корабль. У каждого корабля свой уровень атаки, защиты, верткости. Помогите с развитием игры.


Ship.java

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import java.util.Random;
 
public class ShipBattle extends Thread{
 
    
    public static void main (String[] args){
        Fregat freg1 = new Fregat();
        Linkor link1 = new Linkor();        
        
        Random rand = new Random();     
        
        while(freg1.korabl > 0 & link1.korabl > 0){
            
            
                freg1.strelba();
                link1.strelba();
                freg1.korabl = freg1.korabl-link1.ataka+freg1.zashita+(int) (1 + Math.random() * freg1.vertkost);
                link1.korabl = link1.korabl-freg1.ataka+link1.zashita+(int) (1 + Math.random() * link1.vertkost);
                System.out.println("Жизнь фрегата" + freg1.korabl);
                System.out.println("Жизнь линкора" + link1.korabl);
                try{
                    Thread.sleep(1000);
                } 
                catch (InterruptedException e) 
                { 
                }   
                
        }
    
        if (freg1.korabl <= 0){
            System.out.println("Проигрыш фрегата");
        }
        if  (link1.korabl <= 0){
                System.out.println("Проигрыш линкора");
        }
        
    }
    
}
Fregat.java

Java
1
2
3
4
5
6
7
8
9
10
11
12
public class Fregat {
 
    int korabl = 450;
    int ataka = 15;
    int zashita = 6;
    int vertkost = 9;
    
    public void strelba(){
        System.out.println("Нанёс удар");
    }
    
}
Linkor.java

Java
1
2
3
4
5
6
7
8
9
10
11
public class Linkor {
    int korabl = 600;
    int ataka = 26;
    int zashita = 6;
    int vertkost = 3;
    
    public void strelba(){
        System.out.println("Нанёс удар");
    }
    
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.08.2014, 22:06
Ответы с готовыми решениями:

Класс: Морская волна
Разработать программу для рисования на форме геометрического объекта, используя объектно-ориентированное программирование. В программе...

"хорошая морская практика", или как принято обустраивать программы под линукс?
скачали архив progr развернули под /opt/progr ]$ pwd /opt/progr ]$ ls bin idl include lib вопрос: что делаем дальше? как...

Создание игры "Морская стрелялка"
Пишу игру тип:морская стрелялка.Так вот у меня возник вопрос с процедурами.По замыслу корабль должен плыть по воде и мы должны этот корабль...

6
 Аватар для Wolkodav
842 / 480 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
19.08.2014, 23:09
Савва, а что конкретно помочь? Как бы морской бой написать за вечер не так сложно...
0
10 / 10 / 0
Регистрация: 12.04.2012
Сообщений: 333
19.08.2014, 23:11  [ТС]
Wolkodav, нет. Не морской бой. Типа мини-стратегии с прорисовкой кораблей и стрельбой друг друга. Причем один корабль управляемый тобой. Очень простой GUI нужен.
0
 Аватар для Wolkodav
842 / 480 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
19.08.2014, 23:14
Савва, а вам написать, с gui, не сударь, помилуйте... Ну если с прорисовкой, то надо в сторону OpenGL смотреть...
0
185 / 160 / 49
Регистрация: 30.07.2013
Сообщений: 508
20.08.2014, 01:45
Автор, а ты слышал о наследовании? Зачем нужны интерфейсы?
0
Вежливость-главное оружие
 Аватар для some_name
233 / 234 / 86
Регистрация: 19.02.2013
Сообщений: 1,446
20.08.2014, 02:27
С таким рвением можно и лоб разбить. Перед тем как начинать писать GUI освойте самые азы программирования - ООП, например. Ибо здесь оно как нельзя кстати.
З.Ы. Пару советов:
1. Учитесь изначально писать нормальный код
1.1 Давайте осмысленные имена классам, методам, переменным на английском. Ибо то что сейчас есть у вас - ни есть карашо.
1.2 Как правильно заметил darknim, сначала прикиньте в голове какие корабли у вас будут, сколько их, что у них общего. На основе этого набросайте их иеррархию.
Ну и дальше в таком же душе.
А вот когда уже будет что показать, милости просим.
0
21.08.2014, 09:53

Не по теме:


Помню, когда-то играл в такой морской бой. Там было, карочи поля в дымовой завесе, за каждый выстрел и движение корабля снимает деньги. И за починку кораблей. Если куда-то стрельнуть, в той точке дым пропадает. За каждый ход добавляется определённая сумма. Прикольная стратегия была, хотя довольно простая, всего на 4 корабля: крейсер (маскирует), авианосец (стрельба), атомная подлодка (супер стрельба), подводная лодка-шпион (демаскировка).

Кликните здесь для просмотра всего текста
Грабить каравеллы нельзя. :jokingly:

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.08.2014, 09:53
Помогаю со студенческими работами здесь

Битва с хардами
Железо - Pentium D820 DualCore MB - ConRoeXFire-Esata2, Chipset - i945P, RAM - DDRII 2Gb, GF8500GT инфа - на картинках Суть проблемы...

Битва начинается
ограничение по времени на тест: 2 seconds ограничение по памяти на тест: 64 megabytes Наконец этот день настал — армия вашего героя...

Битва бактерий
Делать нефиг пишу игру. Суть игры: Поле - матрица M на N на которой борются 3 типа бактерий. Изначально на поле только по 1 клетке...

Битва танков
Здравствуйте. Есть вот такая задача: мы видим поле боя сбоку, на нем есть два танка. Один танк управляется игроком другой ботом. Задача...

Вторжение: Битва за рай 2
Очень хочется посмотреть данный фильм, но увы ничего не могу найти( Облазел весь гугл, пусто. Может кто знает, что-нибудь, где его можно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru