首先,创建四个java类分别是用户类User,电脑类Computer,游戏类Game以及测试类Test;
代码如下:
1.用户类
package 类和对象;
import java.util.Scanner;
public class User {
//首先定义用户类中的属性,有名字还有积分
String name;
int fen;
//首先来个键盘录入
Scanner input =new Scanner(System.in);
//定义用户类中的取名方法
public void setName() {
System.out.println("请输入你的名字:");
name =input.next();
}
//定义用户类中的出拳方法
public int chu() {
System.out.println("请出拳:1.剪刀2.石头3.布:");
int choose =input.nextInt();
switch(choose) {
case 1:
System.out.println("你出拳:剪刀");
break;
case 2:
System.out.println("你出拳:石头");
break;
case 3:
System.out.println("你出拳:布");
break;
default:
System.out.println("抱歉,没有这个选项");
}
return choose;
}
}
2.电脑类
package 类和对象;
import java.util.Scanner;
public class Computer {
//电脑同样有名字和积分
String name;
int fen;
//来个键盘录入
Scanner input =new Scanner(System.in);
//电脑的名字要我们选择,所有同样有取名方法
public void setName() {
System.out.println("请选择电脑的角色:1.吕布2.关羽3.秦始皇");
int choose =input.nextInt();
switch(choose) {
case 1:
name="吕布";
break;
case 2:
name="关羽";
break;
case 3:
name="秦始皇";
break;
default:
System.out.println("抱歉,没有这个选项");
}
}
//电脑也有出拳方法
public int chu() {
//1~3之间的随机数
int choose =(int)(Math.random()*3+1);
switch(choose) {
case 1:
System.out.println("电脑出拳:剪刀");
break;
case 2:
System.out.println("电脑出拳:石头");
break;
case 3:
System.out.println("电脑出拳:布");
break;
}
return choose;
}
}
3.游戏类
package 类和对象;
import java.util.Scanner;
public class Game {
Scanner input =new Scanner(System.in);
User user;
Computer computer;
int count=0;//回合数
public void fen() {
user =new User();
computer=new Computer();
}
//游戏开始
public void start() {
System.out.println("\t\t欢迎来到猜拳小游戏\t\t");
System.out.println("\t\t*****************\t\t");
System.out.println("\t\t*****猜拳开始****\t\t");
System.out.println("\t\t*****************\t\t");
System.out.println();
System.out.println("猜拳规则:1.剪刀2.石头3.布");
System.out.println();
System.out.println("请选择电脑的角色:1.吕布2.关羽3.秦始皇");
int choose =input.nextInt();
switch(choose) {
case 1:
computer.name="吕布";
break;
case 2:
computer.name="关羽";
break;
case 3:
computer.name="秦始皇";
break;
default:
System.out.println("抱歉,没有这个选择");
}
System.out.println("请输入你的名字:");
user.name =input.next();
System.out.println(user.name+"vs"+computer.name+"\t对战开始");
int usechu;//用户出拳
int comchu;//电脑出拳
System.out.println("要开始吗:y/n");
String s =input.next();
while(s.equals("y")) {
usechu =user.chu();
comchu=computer.chu();
if((usechu==1&&comchu==3) ||(usechu==2&&comchu==1) ||(usechu==3&&comchu==2)) {
System.out.println("恭喜,本局你赢了");
user.fen++;//用户积一分
}else if((usechu==1&&comchu==1) ||(usechu==2&&comchu==2) ||(usechu==3&&comchu==3)){
System.out.println("本局平局");
}else if((usechu==1&&comchu==2) ||(usechu==2&&comchu==3) ||(usechu==3&&comchu==1)) {
System.out.println("你输了,渣渣");
computer.fen++;//电脑积一分
}
count++;//回合数+1
System.out.println("用户积分:"+user.fen);//输出每回合的用户积分
System.out.println("电脑积分:"+computer.fen);//输出每回合的电脑积分
System.out.println("第"+count+"回合\n");//输出回合数
//判断最终输赢并结束游戏
if(user.fen==3) {
System.out.println("最终结果:您获胜");
System.out.println("结束游戏");
break; //结束循环
}else if(computer.fen==3) {
System.out.println("最终结果:您输了");
System.out.println("结束游戏");
break;
}
System.out.println("\n是否开始下一轮:y/n");
s=input.next();
}
while(s.equals("n")) {
System.out.println("退出游戏");
break;
}
}
}
4.测试类
package 类和对象;
public class Test{
public static void main(String[] args) {
Game game =new Game();
game.fen();
game.start();
}
}
至此人机猜拳小游戏也就做出来了,需要完善的地方还有很多,比如选择错误的时候并不能重新选择,这点需要改进,本程序可以很好地锻炼switch语句和面向对象方法,熟悉了其实很简单。