Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Java
Перезагрузить страницу Написать программу для игры в морской бой
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
stella_diurn stella_diurn вне форума
Member
 
Сообщений: 12
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 19.11.2010
По умолчанию Написать программу для игры в морской бой - 24.11.2010, 18:30

Помогите пожалуйста!!!

Написать программу для игры в морской бой. Пользователи регистрируется в системе и указывают расположение своих кораблей. Затем пользователи по очереди пытаются «попасть» в корабли противника (вводя координаты в текстовое поле или указывая мышкой клетку на карте, что предпочтительнее). В упрощенной версии играть могут два пользователя и после каждого хода программа завершает «сеанс» связи с текущим пользователем и запрашивает пароль следующего.

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

В сетевой версии игры можно сделать возможность, чтобы игра не прерывалась после каждого хода, а просто блокировалась в ожидании хода противника.

Основные алгоритмы
Проверка попадания по кораблю и проверка окончания игры.
Ответить с цитированием
  (#2 (permalink)) Старый
IL_Agent IL_Agent вне форума
Member
 
Аватар для IL_Agent
 
Сообщений: 2,015
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 03.07.2005
По умолчанию 30.11.2010, 10:21

http://www.progz.ru/t21380/
Ответить с цитированием
  (#3 (permalink)) Старый
stella_diurn stella_diurn вне форума
Member
 
Сообщений: 12
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 19.11.2010
По умолчанию 10.12.2010, 15:49

Прочитала ваше напутствие)
Итак, есть несколько наработок! подскажите правильный ли ход мышления и исправьте ошибки, плиз!

Я пока делаю доску, где расставляю свои корабли и запоминаю их координаты!

Итак, основной класс Programm:

Java Код:
package pack;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class Programm {
       
    static public MainWindow window;
   
   
        public static void main(String[] args)
          {
            window = new MainWindow();    
            window.setVisible(true);
       
          }
    }


есть класс MainWindow:

Java Код:
package pack;

import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.List;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class MainWindow extends JFrame {
   
    private Board board;
   
    public MainWindow(){
        super("Морской бой");
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setSize(700, 700);
    }
   
class Board extends JPanel {        
       
        private List<Cell> cells;
       
        public Board() {
            setLayout(new GridLayout(10,10,1,1));
            setBackground(Color.BLUE);
           
        }
       
        public List<Cell> getCells(){
            return cells;
        }    
    }

   
class Cell extends JButton {
       
        private int pos_x;
        private int pos_y;
       
        Cell(Color color, int x, int y){
            pos_x = x;
            pos_y = y;
            setBackground(color);
        }
       
        public int getPosX(){
            return pos_x;
        }
       
        public int getPosY(){
            return pos_y;
        }
       
    }
class MouseL implements MouseListener {
    public void mouseClicked(MouseEvent event){
       
        Здесь планируется, чтобы при расстановке кораблей на нашем поле при нажатии на клетку она окрашивалась в белый цвет, причем, корабль состоит из координат начала и конца, длины и цвета (белый для живого, красный для убитого)
    }
   
}
}

есть собственно класс Korabli:
Java Код:
package pack;

public abstract class Korabli {
       
        private int x;
        private int y;
        private int z;
        private byte color;
       
        public static final byte WHITE = 1;
        public static final byte RED = 2;
       
       
        public Korabli(int x,int y,int z, byte color){
           
            this.x = x;
            this.y = y;
            this.z = z;
            this.color = color;
           
        }
        public int getX() {
            return x;
        }
       
        public int getY() {
            return y;
        }
        public int getZ() {
            return z;
        }
        public abstract String getName();
}

и наконец список расставленных кораблей, ListK:
Java Код:
package pack;

import java.util.ArrayList;
import java.util.List;

public class ListK {
   

        private List<Korabli> figures;

        public ListK(){
            figures = new ArrayList<Korabli>();        
        }    

        public List<Korabli> getFigures() {
            return figures;
        }
    }

}
Ответить с цитированием
  (#4 (permalink)) Старый
Fuud Fuud вне форума
Member
 
Сообщений: 4,076
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 03.09.2004
По умолчанию 12.12.2010, 10:27

1) с компонентами Swing нельзя работать не в EDT-потоке. Подробнее тут: javax.swing (Java Platform SE 6)

2) если у тебя какое-либо поле класса не меняется, объявляй его final.

3) перед тем, как выкладывать сюда, неплохо было бы пробовать компилировать.
Ответить с цитированием
  (#5 (permalink)) Старый
markel markel вне форума
Member
 
Сообщений: 18
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 14.12.2011
По умолчанию 15.12.2011, 21:32

помогите написать класс в программе морской бой чтобы просто вывести таблицу 10 на 10
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
morskoi morskoi вне форума
Новичок
 
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 13.06.2012
Thumbs up Морской бой онлайн вдвоем - 13.06.2012, 00:41

А я сделал игру морской бой онлайн в браузере - можно играть вдвоем!!

Бе-бе-бе

Если кому интересно - использовал tornadio2 и socket.io, а также django

Ссылка: mboi . ru
Ответить с цитированием
  (#7 (permalink)) Старый
Farckas Farckas вне форума
Новичок
 
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 18.04.2015
По умолчанию 18.04.2015, 21:28

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

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разработать программу для игры «Быки и коровы». sholky Prolog 2 21.06.2010 18:53
Исправление игры "Морской бой" misha951 Prolog 4 22.01.2010 18:25
кто может написать программу для игры типа шахмат? wotanZ Задания за деньги 3 05.07.2008 21:15
Как написать игру морской бой imported_SwIFT Lisp 1 16.06.2006 17:52
Как написать программный код для игры в шахматы _NauT Вопросы начинающих программистов 4 12.05.2005 23:50
Игра "Морской бой" как написать N0RtAn Зацените! 3 17.02.2005 02:00
Как написать курсовую работу на тему компьютерные игры Nike_ Вопросы начинающих программистов 3 13.02.2005 01:23
помогите написать программы (морской бой) godinka Prolog 0 09.12.2004 21:30
Как написать алгоритм игры камень ножницы бумага N Алгоритмы 4 07.05.2004 14:14
На каких программах можно написать игры Anonymous Вопросы начинающих программистов 13 10.03.2004 21:41
Написать программу которая закрывает любую программу из автозагрузки без перезагрузк Anonymous C++ Builder 1 07.10.2003 11:24
Как написать алгоритм игры Anonymous Алгоритмы 0 10.06.2003 21:36



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов