您的位置:首页 > 职场人生

黑马程序员---Java基础---注册登录猜字小游戏

2015-09-27 16:04 639 查看

 ------- 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();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: