完成人机猜拳互动游戏的开发

阶段一:实验——分析业务,创建用户类
1.分析业务,抽象出类、类的特征和行为
2.创建出用户类

阶段二:实验——创建出计算机类
创建计算机类Computer。实现计算机出拳
产生一个1—3的随机数,模拟计算机的出拳结果

阶段三:实验——创建游戏类,选择对战对手
1.创建游戏类Game
2.编写游戏类的初始化方法initial()
3.编写游戏类的开始游戏方法startGame()

阶段四:实验——实现一局对战
分别调用用户类和计算机类的出拳方法showFist(),接受返回值并比较,给出胜负结果

阶段五:实验——实现循环对战,并累计得分
实现循环对战,并且累加赢家的得分

阶段六:实验——显示对战结果
游戏结束后,显示对战结果
编写showResult()方法,比较二者的得分情况,给出对战结果

阶段七:实验——完善游戏类的startGame()
输入并保存用户姓名,游戏结束后显示双方的各自得分

Game.java

import java.util.Scanner;public class Game {
Scanner sc = new Scanner(System.in);
User User;//用户玩家
Computer Computer;//电脑玩家
int count;//对战次数
int score;//分数//游戏类的初始化方法
public void initial(){//创建用户对象User= new User();//创建电脑对象Computer = new Computer();//初始化对战次数为0count = 0;
}
//开始游戏的方法
public void startGame(){System.out.println("--------------------欢迎进入游戏世界-----------------------\n\n");System.out.println("\t\t*******************");System.out.println("\t\t**   猜拳,开始      **");System.out.println("\t\t*******************\n\n");System.out.println("出拳规则:1.石头 2.剪刀 3.布");System.out.print("请选着对方角色(1:刘备 2:孙权 3:曹操)");int choose = sc.nextInt();//接收用户选择的角色switch(choose){case 1:Computer.computerName = "刘备";//把值赋给电脑类的nameSystem.out.println("你选择了"+Computer.computerName+"对战");break;case 2:Computer.computerName = "孙权";System.out.println("你选择了"+Computer.computerName+"对战");break;case 3:Computer.computerName = "曹操";System.out.println("你选择了"+Computer.computerName+"对战");break;default:System.out.println("输入有误!");break;}System.out.println("请输入你的姓名:");User.userName = sc.next();System.out.println("要开始吗(y/n)");String con = sc.next();if(con.equals("n")){//如果不开始输入"n"的话 就提示退出System.out.println("系统退出!");}int perFist;//用户出的拳int comFist;//计算机出的拳while(con.equals("y")){//出拳perFist = User.showFirst();//调用用户类的方法comFist = Computer.chuQuan();//调用电脑类的方法//裁决if((perFist == 1 && comFist == 1) || (perFist == 2 && comFist == 2) || (perFist == 3 && comFist == 3)){System.out.println("结果:和局,真衰!");//平局}else if((perFist == 1 && comFist == 3) || (perFist == 2 && comFist == 1) || (perFist == 3 && comFist == 2)){System.out.println("You lost!");//用户输了System.out.println("结果:你被KO");Computer.score++;//记录电脑赢的分数}else{System.out.println("You win!");//用户赢了System.out.println("结果:恭喜,你赢了!");User.score++;//记录用户赢的分数}count++;//对战次数依次加一System.out.println("是否进入下一轮(y/n)");con = sc.next();   }//如果结束 则显示最后的结果showResult();
}   //显示最后的输出结果public void showResult(){System.out.println("------------------------------------------------");System.out.println(Computer.computerName+"\tVS\t"+User.userName);System.out.println("对战次数:"+count);System.out.println("姓名"+"\t"+"积分");System.out.println(User.userName+"\t"+User.score);System.out.println(Computer.computerName+"\t"+Computer.score);if(User.score>Computer.score){//如果用户的分数大于电脑的分数 则用户赢System.out.println(User.userName+"赢了!");}else{System.out.println(Computer.computerName+"赢了!");}System.out.println("-------------------------------------------------");
}
}

User.java

import java.util.Scanner;public class User {String userName;//用户名int score;//积分public int showFirst() {System.out.print("请出拳:1.剪刀2.石头3.布(输入相应的数字):");Scanner sc = new Scanner(System.in);int choice = sc.nextInt();switch(choice) {case 1:System.out.println("你出拳:石头");break;case 2:System.out.println("你出拳:剪刀");break;case 3:System.out.println("你出拳:布");break;default:System.out.println("输入错误!");break;}return choice;}
}

Computer.java

import java.util.Scanner;public class Computer {String computerName;//电脑名int score;//电脑积分public int chuQuan() {int random =(int)(Math.random()*3)+1;switch(random) {case 1:System.out.println(computerName+"出拳:石头");break;case 2:System.out.println(computerName+"出拳:剪刀");break;case 3:System.out.println(computerName+"出拳:布");break;default:System.out.println("输入有错,请重新输入:");break;}return random;}
}

Main.java

public class Main {
public static void main(String[] args) {Game g = new Game();g.initial();//调用初始化方法g.startGame();//调用开始游戏的方法
}
}

总的来说,User和Computer类比较好写,就是Game类要求比较多,但是按照步骤一步一步走稳,就不会有太大的问题,但是注意name和score这两个在两个类中都可以出现,但是要注意区分,给读者客观上有一种提示。最后,Main中,可以不用再去初始化或者创建一个新的对象,直接调用前面那一系列方法就行,写的越多,错的几率就越大。别问我这个教训怎么来的,熬夜到现在,调试到心累。

Java人机猜拳小游戏相关推荐

  1. java实现人机猜拳小游戏

    通过构建玩家类,计算机类,游戏类,三个类,实现了简单的人机猜拳小游戏. /** * @author 万星明 * @version 创建时间:2018年10月20日 下午3:01:09 * 计算机类 * ...

  2. 人机猜拳小游戏(类和对象)

    首先,创建四个java类分别是用户类User,电脑类Computer,游戏类Game以及测试类Test; 代码如下: 1.用户类 package 类和对象; import java.util.Scan ...

  3. 人机猜拳代码python_python实现人机猜拳小游戏

    今天的这篇文章呢是对人机猜拳小游戏--石头剪刀布的一个描述以及代码展现 石头剪刀布游戏代码的简介:关于石头剪刀布这个小游戏,大致得到思路就是,玩家出一个手势,然后电脑再随机出一个手势,最后再判断是玩家 ...

  4. python人机猜拳_python实现人机猜拳小游戏

    今天的这篇文章呢是对人机猜拳小游戏--石头剪刀布的一个描述以及代码展现 石头剪刀布游戏代码的简介:关于石头剪刀布这个小游戏,大致得到思路就是,玩家出一个手势,然后电脑再随机出一个手势,最后再判断是玩家 ...

  5. python编程猜拳小游戏_python实现人机猜拳小游戏

    今天的这篇文章呢是对人机猜拳小游戏--石头剪刀布的一个描述以及代码展现 石头剪刀布游戏代码的简介:关于石头剪刀布这个小游戏,大致得到思路就是,玩家出一个手势,然后电脑再随机出一个手势,最后再判断是玩家 ...

  6. 用java写猜拳小游戏

    题目:用面向对象编程的思想,设计一个猜拳游戏,完成人机猜拳互动游戏的开发. 题目要求: 基本思想: 各部分主要代码: Npc1类代码: Player1类: content方法: checked方法: ...

  7. 实用宝典 | 如何用Python实现人机猜拳小游戏

    首先,解释一下人机猜拳,猜拳相信大家都了解,通俗讲就是"石头.剪刀.布"嘛!再简单不过的一个小游戏,而所谓人机猜拳其实就是猜拳的双方中一方是人另一方是计算机. 问题一 人的问题好解 ...

  8. python人机猜拳游戏代码_实用宝典|如何用Python实现人机猜拳小游戏

    首先,解释一下人机猜拳,猜拳相信大家都了解,通俗讲就是"石头.剪刀.布"嘛!再简单不过的一个小游戏,而所谓人机猜拳其实就是猜拳的双方中一方是人另一方是计算机. 问题一 人的问题好解 ...

  9. python猜拳游戏代码三局两胜_实用宝典 | 如何用Python实现人机猜拳小游戏

    首先,解释一下人机猜拳,猜拳相信大家都了解,通俗讲就是"石头.剪刀.布"嘛!再简单不过的一个小游戏,而所谓人机猜拳其实就是猜拳的双方中一方是人另一方是计算机. 问题一 人的问题好解 ...

最新文章

  1. 使用C++ stringstream来进行数据类型转换
  2. c# 实现自动搜索串口列表并刷新
  3. python个人项目-个人博客二|创建项目
  4. Flex与.NET互操作(八):使用FluorineFx网关实现远程访问
  5. 5c用计算机怎么打,再一次谈谈%5c暴库的利用 -电脑资料
  6. cp命令显示进度条_干货|| Linux常用命令大全
  7. Linux驱动(5)--关于Bootloader
  8. 图片上传插件WebUploader的坑
  9. 【Java编程思想笔记】-集合1
  10. ccsa安学网小程序_适合微信小程序安装的SSL证书有哪些
  11. 装载机液压系统原理图分析方法
  12. PS之人物高低频磨皮
  13. 虎胆熊威2中文版体验
  14. 记人生第一次参加Codeforces比赛
  15. 【纯干货】SpringBoot 整合 ES 进行各种高级查询搜索
  16. 容器化技术(Docker相关)
  17. TASK 5 ARP Cache Poisoning
  18. php 接口文档写法,php 接口文档
  19. jquery 实现购物车的商品总数及价格计算
  20. html5大全,常用html5标签大全 - 小俊学习网

热门文章

  1. Java数据结构与算法-SingleLinkedList单向链表插入,删除,查找,修改详解及代码
  2. Yii2 模块化开发 配置
  3. python 基于selenium的IP摄像头 网页按键PTZ控制 (2) 登录-松下摄像头的弹框登录方式
  4. main函数参数规范
  5. [搬运]什么叫幂等性?
  6. ElGamal密码算法
  7. js条件控制语句最佳实践
  8. 安卓面试自我介绍,Android400道面试题通关宝典助你进大厂
  9. java集合原理详解,BAT大厂面试总结
  10. matlab求轮廓系数,K-mean算法分析 - osc_b2jf5efr的个人空间 - OSCHINA - 中文开源技术交流社区...