1 package gps.start; 2 3 import java.util.ArrayList; 4 import java.util.Collection; 5 import java.util.Collections; 6 import java.util.List; 7 import java.util.Random; 8 import java.util.Scanner; 9 import java.util.Set; 10 11 import gps.car.Car; 12 13 /** 14 * 15 * @author 16 * 锋客 17 * 思路: 18 * 1.通过random控制车辆生成信息,包括车牌 19 * 2.通过list存储车辆:类型,颜色; 20 * 3.实现逻辑: 21 * 按照车位,随机抽出车辆放入,判断用户抢占车位是否是自己车辆 22 * 23 */ 24 25 public class StartGameComplex { 26 // 车辆信息管理 27 static ArrayList<Car> list_car = new ArrayList<Car>(); 28 // 车位管理 29 static ArrayList<Car> list_park = new ArrayList<Car>(); 30 // 车数 31 static int num_car = 0; 32 // 车位 33 static int num_park = 0; 34 // 系统提供车辆类型 35 static List<String> car_type = new ArrayList<String>(); 36 // 系统提供车辆颜色 37 static List<String> car_colour = new ArrayList<String>(); 38 39 static { 40 car_type.add("Porsche"); 41 car_type.add("QQ"); 42 car_type.add("Mazda"); 43 car_type.add("Mercedes_Benz"); 44 car_colour.add("blue"); 45 car_colour.add("red"); 46 car_colour.add("whitee"); 47 car_colour.add("yellow"); 48 49 } 50 51 // 主方法:设置主方法 52 public static void main(String[] args) { 53 54 StartGameComplex startGameComplex = new StartGameComplex(); 55 // 设置游戏难度 56 startGameComplex.setStartScreen(); 57 // 准备游戏(输入个人车辆信息) 58 startGameComplex.ready(); 59 // 开始游戏 60 startGameComplex.startGame(); 61 //结果生成 62 startGameComplex.resultGame(); 63 64 } 65 66 private void resultGame() { 67 System.out.println("请输入要抢占的车位(1-"+list_park.size()+")"); 68 Scanner scanner=new Scanner(System.in); 69 int num=scanner.nextInt(); 70 while(true){ 71 if(list_park.get(num-1).getId().equals(list_car.get(0).getId())){ 72 System.out.println("抢占车位成功!!!"); 73 break; 74 }else{ 75 System.out.println("该车位已被抢占"); 76 System.out.println("请重新选择车位:"); 77 num=scanner.nextInt(); 78 79 } 80 } 81 82 } 83 84 /** 85 * 游戏规则: 1.先生成车辆信息,然后存入list_car中 2.将车位部署; 86 */ 87 private void startGame() { 88 // 生成车辆信息 89 Random random = new Random(); 90 for (int i = 1; i < num_car; i++) { 91 Car car_temp = new Car(Integer.toString(random.nextInt(100000)), car_type.get(random.nextInt(4)), 92 car_colour.get(random.nextInt(4))); 93 list_car.add(car_temp); 94 } 95 // selectAll(list_car,"car"); 96 // 部署车位 97 for (int i = 0; i < num_park; i++) { 98 Car car_temp = list_car.get(random.nextInt(list_car.size())); 99 list_park.add(car_temp); 100 } 101 //显示车位信息 102 //selectAll(list_park,"park"); 103 104 } 105 106 /** 107 * 生成自己车辆信息 108 * 109 * @return 110 */ 111 public Car ready() { 112 System.out.println("请输入车辆信息:"); 113 Scanner cursor = new Scanner(System.in); 114 System.out.println("车牌:"); 115 String id = cursor.next(); 116 System.out.println("类型:"); 117 String type = cursor.next(); 118 System.out.println("颜色:"); 119 String colour = cursor.next(); 120 Car userCar = new Car(id, type, colour); 121 list_car.add(userCar); 122 return userCar; 123 } 124 125 /** 126 * 设置游戏难度 127 */ 128 public void setStartScreen() { 129 System.out.println("*******游戏开始********"); 130 System.out.println("*******请设置游戏难度********"); 131 Scanner scanner = new Scanner(System.in); 132 System.out.println("请输入总共参与的车数:"); 133 num_car = scanner.nextInt(); 134 do { 135 136 System.out.println("请输入车位:"); 137 num_park = scanner.nextInt(); 138 if (num_car > num_park) { 139 System.out.println("车位数过小,请重新输入:"); 140 } 141 } while (num_car > num_park); 142 143 } 144 145 /** 146 * 打印list集合信息 147 * 148 * @param list 149 */ 150 public void selectAll(List<Car> list, String type) { 151 switch (type) { 152 case "car": 153 for (Car car : list) { 154 System.out.println("车牌号:" + car.getId() + "|车型:" + car.getType() + "|颜色:" + car.getColour()); 155 } 156 break; 157 case "park": 158 for (Car car : list) { 159 System.out.println("车位占有者:" + car.getId() + "|车型:" + car.getType() + "|颜色:" + car.getColour()); 160 } 161 break; 162 default: 163 break; 164 } 165 166 } 167 168 }
时间: 2024-11-02 21:06:43