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 }