Advertisement
sriyanto

Race in Java

Feb 12th, 2024
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.90 KB | None | 0 0
  1. import java.util.Random;
  2.  
  3. // Kelas untuk merepresentasikan mobil
  4. class Car {
  5. private String name;
  6. private int position;
  7.  
  8. public Car(String name) {
  9. this.name = name;
  10. this.position = 0;
  11. }
  12.  
  13. // Menggerakkan mobil maju secara acak
  14. public void move() {
  15. Random rand = new Random();
  16. int distance = rand.nextInt(10) + 1; // Gerakkan antara 1 dan 10 langkah
  17. position += distance;
  18. System.out.println(name + " bergerak " + distance + " langkah.");
  19. }
  20.  
  21. public int getPosition() {
  22. return position;
  23. }
  24.  
  25. public String getName() {
  26. return name;
  27. }
  28. }
  29.  
  30. // Kelas untuk mengatur perlombaan
  31. public class Race {
  32. private Car[] cars;
  33. private int trackLength;
  34. private boolean raceOver;
  35.  
  36. public Race(int numberOfCars, int trackLength) {
  37. cars = new Car[numberOfCars];
  38. for (int i = 0; i < numberOfCars; i++) {
  39. cars[i] = new Car("Mobil " + (i + 1));
  40. }
  41. this.trackLength = trackLength;
  42. raceOver = false;
  43. }
  44.  
  45. // Memulai perlombaan
  46. public void startRace() {
  47. System.out.println("Perlombaan dimulai!");
  48. while (!raceOver) {
  49. for (Car car : cars) {
  50. car.move();
  51. if (car.getPosition() >= trackLength) {
  52. System.out.println(car.getName() + " telah mencapai garis finish dan memenangkan perlombaan!");
  53. raceOver = true;
  54. break;
  55. }
  56. }
  57. System.out.println("--------------------------");
  58. try {
  59. Thread.sleep(1000); // Jeda 1 detik setiap iterasi
  60. } catch (InterruptedException e) {
  61. e.printStackTrace();
  62. }
  63. }
  64. }
  65.  
  66. public static void main(String[] args) {
  67. Race race = new Race(3, 100); // 3 mobil berlomba di trek sepanjang 100 langkah
  68. race.startRace();
  69. }
  70. }
  71.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement