黑马程序员---Java基础---注册登录猜字小游戏
2015-09-27 16:04
639 查看
------- android培训、java培训、期待与您交流! ----------
最近研究了一个猜字小游戏和大家分享一下:
------- android培训、java培训、期待与您交流! ----------
最近研究了一个猜字小游戏和大家分享一下:
package cn.itcast.game; /* 猜数字小游戏: 1.生成一个1--1000的一个随机数; 2.引导用户开始游戏; 3.接收用户猜的数字; 4.判断:如果比随机数大,提示:高了 如果比随机数小,提示:低了 如果等于随机数,提示:猜中 */ import java.util.Scanner; public class Game { public void start() { Scanner sc = new Scanner(System.in); int num = (int)(Math.random() * 1000) + 1; System.out.println("1--1000元的商品已经准备好,你可以开始了!"); while(true){ System.out.println("请输入价格:"); int n = sc.nextInt(); //判断数字 if(n > num){ System.out.println("高了"); }else if(n < num){ System.out.println("低了"); }else{ System.out.println("恭喜你,猜中了!!!"); break; } } } }
package cn.itcast.user.controller; import cn.itcast.user.dao.UserDAO; import cn.itcast.user.model.UserModel; public class UserControl { private UserDAO userDao = new UserDAO(); //视图层如果需要注册,将User对象传给此方法,用于注册用户 public boolean toRegist(UserModel user){ //1.验证用户名和密码的长度; //略..... //2.验证用户名是否已经存在 return this.userDao.regist(user);//调用持久层 } //登录的方法,供视图层调用 public boolean toLogin(UserModel user){ //1.验证用户名和密码的长度; //略..... //2.传给持久层,判断是否允许登录 return this.userDao.login(user); } }
package cn.itcast.user.dao; import java.util.ArrayList; import java.util.List; import cn.itcast.user.model.UserModel; public class UserDAO { private static List<UserModel> userList = new ArrayList<>(); //注册用的方法 public boolean regist(UserModel user){ //注册时,先验证用户名是否已经存在 for(UserModel u : userList){ if(u.getName().equals(user.getName())){ return false;//用户名已经存在,禁止注册 } } //注册用户,将用户信息存储到集合中 this.userList.add(user); return true; } //登录使用的方法 public boolean login(UserModel user){ for(UserModel u : userList){ if(u.equals(user)){ return true;//允许登录 } } return false; } }
package cn.itcast.user.model; public class UserModel { private String name; private String pwd; public UserModel(String name, String pwd) { super(); this.name = name; this.pwd = pwd; } public UserModel() { super(); } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } public boolean equals(Object obj){ UserModel user = (UserModel)obj; return this.name.equals(user.name) && this.pwd.equals(user.pwd); } }
package cn.itcast.user.view; import java.util.Scanner; import cn.itcast.game.Game; import cn.itcast.user.controller.UserControl; import cn.itcast.user.model.UserModel; public class UserView { private UserControl userControl = new UserControl(); public void showView(){ Scanner sc = new Scanner(System.in); loop0: while(true){ System.out.println("1.注册 2.登录 3.退出:"); if(sc.hasNextInt()){//为了安全的获取一个int值; int op = sc.nextInt(); switch(op){ case 1://注册 loop1: do{ System.out.println("请输入注册名:"); String uName = sc.next(); System.out.println("请输入密码:"); String uPwd = sc.next(); if(uName.trim().length() == 0 || uPwd.trim().length() == 0){ System.out.println("注册名或密码不能为空!"); } //验证用户名是否存在,交给控制层去验证 //封装数据模型 UserModel user = new UserModel(uName,uPwd); if(this.userControl.toRegist(user)){ System.out.println("注册成功!"); continue loop0; }else{ System.out.println("注册失败!可能由于用户名已经存在,请重新注册!"); } }while(true); case 2://登录 do{ System.out.println("请输入登录名:"); String uName = sc.next(); System.out.println("登录密码:"); String uPwd = sc.next(); //验证用户名和密码是否为空 if(uName.trim().length() == 0 || uPwd.trim().length() == 0){ System.out.println("登录名或密码不能为空!"); }else{ //封装数据模式 UserModel user = new UserModel(uName,uPwd); if(this.userControl.toLogin(user)){ System.out.println("登录成功!"); new Game().start(); break loop0; }else{ System.out.println("登录失败,用户名或密码错误!"); continue loop0; } } }while(true); case 3://退出 System.out.println("谢谢使用,拜拜!"); System.exit(0);//结束JVM break; default: System.out.println("请输入:1,2,3的数字选项!"); } } } } }
package cn.itcast.demo; import cn.itcast.user.view.UserView; /* * MVC模式实现: * * 1.视图层:cn.itcast.user.view : UserView * 2.控制层:cn.itcast.user.controller : UserControl * 3.持久层:cn.itcast.user.dao : UserDAO * (DAO : Data Access Object) * 4.模型层:cn.itcast.user.model : UserModel * * 四个类的制作顺序:原则:先做"被依赖的" * 1.模型层; * 2.持久层; * 3.控制层; * 4.视图层; */ public class Demo { public static void main(String[] args) { new UserView().showView(); } }
相关文章推荐
- 黑马程序员-day06-面向对象
- 搜狗面试题
- java面试题二十七 多线程考题2
- 面试---指针与地址
- 黑马程序员---java基础---多态,抽象类,接口
- 黑马程序员---java基础---代码块及继承
- 美团2016面试总结
- java面试题二十六 多线程考题
- 一个程序员的时间管理“辛”路历程
- 黑马程序员---java基础---面向对象中的构造方法及static关键字,变量的问题
- 赴京面试中的成长
- 黑马程序员———java基础知识———面向对象
- 2016年一些面试题的整理和心情--1异或到100
- 你也一样重要的非技术贴,告诉你的求职信的写作9温馨提示
- java面试题二十五 构造函数
- java面试题二十四 继承题2
- java面试题二十三 接口
- [转载]Java程序员掌握的10大项知识体系--精通太难说出口
- 高效程序员的 7 个共同特征
- 黑马程序员——反射的理解与应用