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 }
时间: 2024-11-02 21:06:43

GrabParkingSpacesGame(comlex)的相关文章

使用 IDEA 创建 Maven Web 项目 (异常)- Disconnected from the target VM, address: &#39;127.0.0.1:59770&#39;, transport: &#39;socket&#39;

运行环境: JDK 版本:1.8 Maven 版本:apache-maven-3.3.3 IDEA 版本:14 maven-jetty-plugin 配置: <plugin> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <configuration> <webAppSourceDirectory>${pro

在深圳有娃的家长必须要懂的社保少儿医保,不然亏大了!(收藏)

在深圳有娃的家长必须要懂的社保少儿医保,不然亏大了!(收藏) 转载2016-07-26 17:21:47 标签:深圳少儿医保社保医疗保险住院 在深圳工作或生活的家长们可能还有人不清楚,其实小孩子最大的基础保障福利就是少儿医保.如果以前没重视关注的,现在您看到这篇文章还来得及!少儿医保每年政府财政补贴384元,自己只需交200元左右,就可以享受门诊报销1000元,住院报销比例90%,最高报销额度达148万,大病门诊最高报销比例90%!如何享受?有哪些待遇?接下来就详细来做一个介绍: 少儿医保投保需

彻底解决_OBJC_CLASS_$_某文件名&quot;, referenced from:问题(转)

最近在使用静态库时,总是出现这个问题.下面总结一下我得解决方法: 1. .m文件没有导入   在Build Phases里的Compile Sources 中添加报错的文件 2. .framework文件没有导入静态库编译时往往需要一些库的支持,查看你是否有没有导入的库文件同样是在Build Phases里的Link Binary With Libraries中添加 3. 重复编译,可能你之前复制过两个地方,在这里添加过两次,删除时系统没有默认删除编译引用地址在Build Settings里搜索

爱奇艺、优酷、腾讯视频竞品分析报告2016(一)

1 背景 1.1 行业背景 1.1.1 移动端网民规模过半,使用时长份额超PC端 2016年1月22日,中国互联网络信息中心 (CNNIC)发布第37次<中国互联网络发展状况统计报告>,报告显示,网民的上网设备正在向手机端集中,手机成为拉动网民规模增长的主要因素.截至2015年12月,我国手机网民规模达6.20亿,有90.1%的网民通过手机上网. 图 1  2013Q1~2015Q3在线视频移动端和PC端有效使用时长份额对比 根据艾瑞网民行为监测系统iUserTracker及mUserTrac

Android 导航条效果实现(六) TabLayout+ViewPager+Fragment

TabLayout 一.继承结构 public class TabLayout extends HorizontalScrollView java.lang.Object ? android.view.View ? android.view.ViewGroup ? android.widget.FrameLayout ? android.widget.HorizontalScrollView ? android.support.design.widget.TabLayout 二.TabLayou

微信小程序——豆瓣电影——(2):小程序运行部署

Demo 预览 演示视频(流量预警 2.64MB) GitHub Repo 地址 仓库地址:https://github.com/zce/weapp-demo 使用步骤 将仓库克隆到本地: bash $ git clone https://github.com/zce/weapp-demo.git weapp-douban --depth 1 $ cd weapp-douban 打开微信Web开放者工具(注意:必须是0.9.092300版本) 必须是0.9.092300版本,之前的版本不能保证正

初识运维3--在虚拟机中安装Linux发行版系统(CentOS)的方法

在讲Linux系统发行版本的安装过程之前,先大略说明一下虚拟化. 虚拟化:将底层硬件资源抽象为用户更容易读懂和使用的逻辑抽象层的技术. 最早由IBM提出,现使用率较高的虚拟化软件平台有三类:VMware workstation.VirtualBOX.HyperV.在这里使用VMware workstation作为例子讲解说明安装过程. 虚拟化网络: 桥接模式:让物理机和虚拟机利用物理网络接口完成通信.虚拟机可以访问互联网. 仅主机模式:让虚拟机和物理机利用被虚拟出来的VMnet1网络接口完成通信

pythonの函数学习笔记(一)

函数是可以实现一些特定功能的小方法或小程序定义函数function的方法:def function_name(arg1,arg2[,...]): statement [return value]注意事项:1.def开头,代表定义函数,def和函数名中间要敲一个空格:2.返回值不是必须的,如果没有renturn语句,则默认返回值None:3.函数名必须以下划线或字母开头,可以包含任意字母.数字或下划线的组合,区分大小写且不能是保留字: py使用名称空间的概念存储对象,这个名称空间就是对象作用的区域

网络攻防第一次作业(201421450010)

姓名:陈书扬 学号:201421450010 指导教师:高见 1.虚拟机安装与调试 安装windows和linux(kali)两个虚拟机,均采用NAT网络模式,查看主机与两个虚拟机器的IP地址,并确保其连通性.同时为两个虚拟机做一个快照 windows虚拟机 Linux虚拟机 本地主机win10 两台主机都ping通 2.Windows基本命令 dir显示目录   cd 进入目录 Arp -a -d -s arp缓存 net share 查看计算机IPC$共享资源 netstat -ano网络链