Advertisement
BojidarDosev

NFS 3 game and carData changes with Maps and commands

Mar 27th, 2025
486
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.06 KB | None | 0 0
  1. import java.sql.Array;
  2. import java.util.*;
  3.  
  4. public class test {
  5.     public static void main(String[] args) {
  6.         Scanner scan= new Scanner(System.in);
  7.  
  8.         int n = Integer.parseInt(scan.nextLine());
  9.         Map<String, int[]> map= new LinkedHashMap<>();
  10.         while(n>0){
  11.             String[] carData = scan.nextLine().split("\\|");
  12.             String car = carData[0];
  13.             int[] data = {Integer.parseInt(carData[1]),Integer.parseInt(carData[2])};
  14.             map.put(car, data);
  15.             n--;
  16.         }
  17.  
  18.         boolean flag = false;
  19.  
  20.         while(true){
  21.             String[] commands = scan.nextLine().split(" : ");
  22.             if(commands[0].equals("Stop")){
  23.                 flag = true;
  24.                 break;
  25.             }
  26.             String command = commands[0]; String car = commands[1];
  27.             switch(command){
  28.                 case "Drive":
  29.                     int distance1 = Integer.parseInt(commands[2]); int fuel1 = Integer.parseInt(commands[3]);
  30.                     if(fuel1> map.get(car)[1]){
  31.                         System.out.println("Not enough fuel to make that ride");
  32.                         break;
  33.                     }
  34.                     else{
  35.                         int currentMilage = map.get(car)[0]; int currentFuel = map.get(car)[1];
  36.                         int newMilage = currentMilage + distance1; int newFuel = currentFuel - fuel1;
  37.                         map.put(car, new int[]{newMilage,newFuel});
  38.                     }
  39.  
  40.                     if(map.get(car)[0] > 100000){
  41.                         System.out.println(car + " driven for " + distance1 + " kilometers. " + fuel1 + " liters of fuel consumed." );
  42.                         System.out.println("Time to sell the " + car + "!");
  43.                         map.remove(car);
  44.                     }
  45.                     else{
  46.                         System.out.println(car + " driven for " + distance1 + " kilometers. " + fuel1 + " liters of fuel consumed." );
  47.                     }
  48.                     break;
  49.  
  50.                 case "Refuel":
  51.                     int fuel2 = Integer.parseInt(commands[2]);
  52.                     int currentFuel = map.get(car)[1];
  53.                     int fueledLiteres = 0;
  54.                     int currentMilage1 = map.get(car)[0];
  55.                     if(currentFuel + fuel2 > 75){
  56.                         fueledLiteres = 75 - currentFuel;
  57.                         map.replace(car, new int[]{currentMilage1 , 75});
  58.                     }
  59.                     else{
  60.                         fueledLiteres = fuel2;
  61.                         map.replace(car, new int[]{currentMilage1 , currentFuel + fuel2});
  62.                     }
  63.                     System.out.println(car + " refueled with " + fueledLiteres + " liters" );
  64.                     break;
  65.  
  66.                 case "Revert":
  67.                     int distance2 = Integer.parseInt(commands[2]);
  68.                     int fuel3 = map.get(car)[1];
  69.                     int currentMilage = map.get(car)[0];
  70.                     if(currentMilage - distance2 < 10000 ){
  71.                         map.replace(car, new int[]{10000, fuel3 });
  72.                     }
  73.                     else{
  74.                         map.replace(car, new int[]{currentMilage-distance2, fuel3 });
  75.                         System.out.println(car + " mileage decreased by " + distance2 + " kilometers" );
  76.                     }
  77.                     break;
  78.             }
  79.         }
  80.         if(flag) {
  81.             for (Map.Entry<String, int[]> entry : map.entrySet()) {
  82.                 String car = entry.getKey();
  83.                 int milage = entry.getValue()[0];
  84.                 int fuel = entry.getValue()[1];
  85.                 System.out.println(car + " -> Mileage: " + milage + " kms, Fuel in the tank: " + fuel + " lt.");
  86.             }
  87.         }
  88.     }
  89. }
  90. /*
  91. 3
  92. Audi A6|38000|62
  93. Mercedes CLS|11000|35
  94. Volkswagen Passat CC|45678|5
  95. Drive : Audi A6 : 543 : 47
  96. Drive : Mercedes CLS : 94 : 11
  97. Drive : Volkswagen Passat CC : 69 : 8
  98. Refuel : Audi A6 : 50
  99. Revert : Mercedes CLS : 500
  100. Revert : Audi A6 : 30000
  101. Stop
  102.  */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement