用户类
分析业务
输入数值,转换为石头剪刀布
抽象出类、类的特征和行为
代码如下:
package day6.boxing;
import java.util.Scanner;
public class Administrator {
String shape;//剪刀石头布
int number;//输入数
private int win;//得分 注意:得分不能随便被复制,用private进行保护。
public int getWin() {
return win;
}
public void setWin(int win) {
this.win = win;
}
public void show(){
Scanner input = new Scanner(System.in);
System.out.print("请出拳:1.剪刀 2.石头 3.布 (请输入相应数字):");
this.number =input.nextInt();
switch (this.number){
case 1:
this.shape="剪刀";
break;
case 2:
this.shape="石头";
break;
case 3:
this.shape="布";
break;
}
}
public void print() {
System.out.println("你出拳:" + this.shape);
}
}
计算机类
分析业务
计算机随机给个数值,转换为石头剪刀布。
##创建计算机类Computer。实现计算机出拳,用随机数实现。
代码如下:
package day6.boxing;
import java.util.Random;
public class Computer {
String shape;//剪刀石头布
int number;//电脑随机数字
private int win;//电脑赢得次数
public int getWin() {
return win;
}
public void setWin(int win) {
this.win = win;
}
public void show(){
Random random = new Random();
int num = random.nextInt(2);
this.number=num+1;
switch (this.number){
case 1:
this.shape="剪刀";
break;
case 2:
this.shape="石头";
break;
case 3:
this.shape="布";
break;
}
}
public void print() {
System.out.println("电脑出拳:" + this.shape);
}
}
游戏类
创建游戏类Game
编写游戏类的初始方法initial()
在initial方法里,定义规则和循环使用;
##编写游戏类的开始游戏方法startGame()
在startGame方法里,只需要提示用户开始游戏
代码如下:
package day6.boxing;
import java.util.Scanner;
public class Game{
String role;//电脑角色
String name;//自己名字
public void startGame(){
System.out.println("----------------欢 迎 进 入 游 戏 世 界----------------\n\n");
System.out.println("\t\t\t\t******************");
System.out.println("\t\t\t\t** 猜拳,开始 **");
System.out.println("\t\t\t\t******************\n\n");
}
public void initial(){
Administrator administrator = new Administrator();
Computer computer = new Computer();
Scanner input = new Scanner(System.in);
System.out.println("出拳规则:1.剪刀 2.石头 3.布");
System.out.print("请选择对方角色(1:刘备 2:孙权 3:曹操):");
int num=input.nextInt();
switch (num){
case 1:
this.role="刘备";
break;
case 2:
this.role="孙权";
break;
case 3:
this.role="曹操";
break;
}
System.out.print("请输入你的姓名:");
this.name=input.next();
System.out.println(this.name+"VS"+this.role+"对战");
System.out.print("要开始吗?(y/n)");
String start = input.next();
int i=0;
while (start.equals("y")) {
i++;
administrator.show();
computer.show();
administrator.print();
computer.print();
{
if (administrator.number == 1) {
switch (computer.number) {
case 1:
System.out.println("结果:和局,真衰!嘿嘿,等着瞧吧!");
break;
case 2:
System.out.println("结果:^_^,你输了,真笨!");
computer.setWin(computer.getWin()+1);
break;
case 3:
System.out.println("结果:恭喜,你赢了!");
administrator.setWin(administrator.getWin()+1);
break;
}
}
if (administrator.number == 2) {
switch (computer.number) {
case 1:
System.out.println("结果:恭喜,你赢了!");
administrator.setWin(administrator.getWin()+1);
break;
case 2:
System.out.println("结果:和局,真衰!嘿嘿,等着瞧吧!");
break;
case 3:
System.out.println("结果:^_^,你输了,真笨!");
computer.setWin(computer.getWin()+1);
break;
}
}
if (administrator.number == 3) {
switch (computer.number) {
case 1:
System.out.println("结果:^_^,你输了,真笨!");
computer.setWin(computer.getWin()+1);
break;
case 2:
System.out.println("结果:恭喜,你赢了!");
administrator.setWin(administrator.getWin()+1);
break;
case 3:
System.out.println("结果:和局,真衰!嘿嘿,等着瞧吧!");
break;
}
}
}
System.out.println();
System.out.print("要开始吗?(y/n)");
start = input.next();
}
System.out.println("-----------------------------------------------------");
System.out.println(this.role +"VS"+this.name);
System.out.println("对战次数:"+i+"\n");
System.out.println("姓名\t\t得分");
System.out.println(this.name+"\t\t"+administrator.getWin());
System.out.println(this.role+"\t\t"+computer.getWin()+"\n");
if (administrator.getWin()==computer.getWin()){
System.out.println("结果:打成平手,下次再和你一分高下!");
}
if (administrator.getWin()>computer.getWin()){
System.out.println("结果:恭喜,你赢了!");
}
if (administrator.getWin()<computer.getWin()){
System.out.println("结果:呵呵,笨笨,下次加油啊!");
}
System.out.println("-----------------------------------------------------");
}
}
测试类
调用Game类的方法
代码如下:
package day6.boxing;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
Game game = new Game();
game.startGame();
game.initial();
}
}
#总结
1、比较输赢使用数字判断输赢;
2、Administrator类和Computer类都在Game类的初始化方法initial中调用,测试类只需要开始游戏即可;