Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

done #1735

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open

done #1735

Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions src/main/java/core/basesyntax/Application.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,9 @@
public class Application {
public static void main(String[] args) {
// create three balls using class Lottery and print information about them in console
Lottery[] balls = { new Lottery(), new Lottery(), new Lottery() };

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Instead of manually creating each Lottery instance, consider using a loop to create the instances. This approach is recommended in the checklist to avoid redundancy and improve code maintainability .

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Instead of creating multiple Lottery objects, you should create a single Lottery object and use it to generate multiple Ball objects using the getRandomBall() method. This will align with the task requirement to create multiple Ball objects.

for (Lottery ball : balls) {
System.out.println(ball.getRandomBall());
}
}
}
27 changes: 27 additions & 0 deletions src/main/java/core/basesyntax/Ball.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package core.basesyntax;

public class Ball {
private Colors color;
private int number;

public void setColor(Colors color) {
this.color = color;
}

public String getColor() {
return this.color.toString();
}

public void setNumber(int number) {
this.number = number;
}

public int getNumber() {
return this.number;
}

@Override
public String toString() {
return super.toString();

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The toString() method should be overridden to provide a meaningful string representation of the Ball object. Consider returning a string that includes both the color and number of the ball, for example: return "Ball{color=" + color + ", number=" + number + "}";.

}
}
9 changes: 7 additions & 2 deletions src/main/java/core/basesyntax/ColorSupplier.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
package core.basesyntax;

import java.util.Random;

public class ColorSupplier {
public String getRandomColor() {
return null;
public String getRandomColor(Ball ball) {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The method getRandomColor both assigns a random color to the Ball object and returns the color. This dual responsibility might be unexpected based on the method name. Consider renaming the method to reflect its behavior more accurately, or separate the color generation and assignment into different methods.

Random random = new Random();

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

random should be a private final class level variable

int index = random.nextInt(Colors.values().length);
ball.setColor(Colors.values()[index]);
return ball.getColor();
}
}
10 changes: 10 additions & 0 deletions src/main/java/core/basesyntax/Colors.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package core.basesyntax;

public enum Colors {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
public enum Colors {
public enum Color {

Red,
Blue,
Green,
Yellow,
Orange,
Black
}
14 changes: 14 additions & 0 deletions src/main/java/core/basesyntax/Lottery.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package core.basesyntax;

import java.util.Random;

public class Lottery {
public String getRandomBall() {
Ball ball = new Ball();

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

also, you can create a constructor with parameters for the Ball model and simplify your solution.

ColorSupplier colorSupplier = new ColorSupplier();
colorSupplier.getRandomColor(ball);

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The getRandomColor method in ColorSupplier modifies the Ball object directly. It might be better to have getRandomColor return a color, which can then be set on the Ball object here. This would improve the separation of concerns and make the code more intuitive.

int randomValue = new Random().nextInt(100);

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

make magic number constant field

ball.setNumber(randomValue);
return ball.getColor() + " " + ball.getNumber();
}
}
Loading