GrabParkingSpacesGame(comlex)

  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 }

 

posted on 2015-09-11 11:06  锋客person  阅读(221)  评论(0编辑  收藏  举报