Как я могу закодировать это на java
Представьте себе, что у нас есть ящик для хранения частиц. Первоначально мы помещаем случайным образом 3 частицы в эту коробку. После каждого шага эти частицы будут свободно перемещаться внутри коробки. Если две частицы сталкиваются, новая частица будет
помещается случайным образом в коробку.
Мы хотим смоделировать движение частиц за n шагов и подсчитать количество частиц в коробке.
Реализуйте коробку частиц (напишите класс коробки, класс для частицы) таким образом, чтобы
1. коробка имеет фиксированный размер: фиксированные ширина и высота
2. Каждая частица имеет положение (x, y), где 0 ≤ x ≤ ширина коробки и 0 ≤ y ≤ высота коробки
3. частица может двигаться в одном из нижеприведенных направлений, но не может выйти из коробки (20pts).
+ Север (уменьшение его y на 1),
+ Северо-восток (уменьшение его y на 1 и увеличение его x на 1),
+ Восток (увеличение его x на 1),
+ Юго-восток (увеличение его y на 1 и увеличение его x на 1)
+ Юг (увеличивая его на 1),
+ Юго-запад (увеличение его y на 1 и уменьшение его x на 1),
+ Запад (уменьшение его x на 1),
+ Северо-Запад (уменьшение его на 1, уменьшить х на 1)
Подсказка: объявите тип перечисления для направления
4. Если две частицы сталкиваются, новая частица будет помещена случайным образом в коробку
и класс для симуляции где для каждого шага,
5. он заставляет все частицы в коробке двигаться
6. он показывает количество частиц в коробке
7. он визуализирует коробку с частицами внутри *
-------------------------------
| * * * |
| * * * |
| * |
-------------------------------
одна частица = одна звезда
8. Найдите о шаблоне Синглтона и сделайте коробку как синглтон
Что я уже пробовал:
Я пишу код на java, но я только что создал коробку и не знаю, как сделать остальное. Помогите. Вот мой код:
коробка открытый класс
{
ширина частный int ;
частная высота int;
публичный ящик(int h, int w) {
высота = h;
ширина = w;
если(высота<0)
{
System.out.println("недопустимая высота. Установка на 1");
высота=1;
}
if(width<0)
{
System.out.println("недопустимая ширина. Установка на 1");
ширина=1;
}
}
public void drawline(int width, String s)
{
for (int i=0; i<width;i++)
{
Системы.из.печать(с);
}
}
public void drawhollowline (int width)
{
System.out.print("|");
drawline(ширина - 2, " ");
System.out.print("|");
}
public void drawbox(int height,int width)
{
drawline(ширина,"-");
Системы.из.код println();
for (int i=0;i<height;i++)
{
drawhollowline(ширина);
Системы.из.код println();
}
drawline(ширина,"-");
}
}
Member1x
Похоже, это своего рода домашнее задание. Так что вы должны выяснить это сами, чтобы узнать что-то. Задача уже близка к программированию, но все же некоторые подсказки есть:
- добавьте свойство в свой класс box для частиц внутри коробки
- создайте класс частиц со свойствами position; в конструкторе вы инициализируете его, чтобы дать ему позицию при создании
- тогда вам понадобится ваш класс моделирования:
+ ваш ящик инициализируется тремя частицами
+ на каждом шаге моделирования вы перемещаете каждую частицу со случайным направлением движения; подсказка enum означает, что вы можете получить доступ к каждой записи с именем или номером; у вас есть возможные направления, поэтому вам нужно случайное число от 0 до 7
+ после того, как вы переместили каждую частицу, вы должны проверить ее на столкновение; если столкновение, то создайте новую частицу
+ нарисуйте свою коробку с частицами
+ цикл до конца времени моделирования
- и не забудьте сделать свой ящик синглтоном (используйте статическое свойство)
Мы не предоставим вам полного решения. Но вы можете спросить о конкретных проблемах.
Удачи вам!
Member 14025358
Хорошо, спасибо