zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    使用Mongodb存放文件系统的离线栅格数据,供Cesium访问
    Moogose的基本连接以及增删改查操作
    MongoDB
    Linq对列表进行分组,求和,排序
    ArcEngine对属性表的操作
    ArcEngine打开GDB,SHP的方法
    javaweb之JSP+Servlet
    node.js后端之sequelize
    javascript的闭包
    LeetCode 第133场周赛总结
  • 原文地址:https://www.cnblogs.com/fengke/p/4800276.html
Copyright © 2011-2022 走看看