也就是咱们和电脑猜拳哈!
(小编写的代码可能还不够完美!!!!请友友们多多指教!!!!)
1.Rule类是一个父类,让接下来的子类继承,在里面定义了一个子类的公共属性name和score以及caiQuan方法.
package com.xy.game; //包名
public abstract class Rule { //定义抽象类
String name; //定义子类中的公共属性
int score;
String sr=""; //由于子类中多次用到,所以就定义了一个
public int caiQuan(int n) { //定义有返回值的caiQuan方法
switch (n) { //将键盘接收的n转换为相对应的字符串
case 1:
sr = "剪刀";
break;
case 2:
sr = "石头";
break;
case 3:
sr = "布";
break;
}
return n; //返回键盘接收的数据n
}
}
2.子类Computer继承父类Rule
package com.xy.game; //包名
public class Computer extends Rule { //Computer继承Rule,定义电脑类
Computer computer; //属性
User user;
public int chuQuan() { //定义chuQuan方法
Computer computer=new Computer(); //实例化对象
int n= (int) (Math.random()*3+1); //生成随机数(1,2,3)
super.caiQuan(n) ; //调用父类中的caiQuan方法
System.out.println("电脑出"+sr); //输出语句
return n;
}
}
3.子类User继承父类Rule
package com.xy.game; //导包
import java.util.Scanner; //键盘录入导包
public class User extends Rule { //定义User类,继承父类Rule
Computer computer;
User user; //属性
public int chuQuan() { //定义chuQuan方法
Scanner sc = new Scanner(System.in); //键盘录入
int n = sc.nextInt(); //键盘接收
super.caiQuan(n); //调用父类caiQuan方法
System.out.println("您出" +sr); //输出
return n;
}
}
4.在Game类中定义游戏规则,以及开始游戏
package com.xy.game; //包名
import java.util.Scanner; //键盘录入导包
public class Game extends Rule { //定义Game类,继承Rule
User user; //属性
Computer computer;
public static void main(String[] args) {
User user = new User(); //实例化对象
Computer computer = new Computer();
Game game = new Game();
Scanner sc = new Scanner(System.in); //键盘录入数据
System.out.println("==================================="); //游戏格式,好看而已啦
System.out.println("==============猜拳游戏=============");
System.out.println("====游戏规则:1.剪刀 2.石头 3.布====");
System.out.println("====电脑角色:1.妲己 2.香香 3.镜====");
System.out.println("===================================");
System.out.println("请输入您的游戏ID:");
user.name = sc.next(); //键盘录入接收游戏ID
System.out.println("请选择电脑角色:");
int s = sc.nextInt(); //键盘录入接收电脑角色的代号
switch (s) {
case 1:
sr = "妲己";
break;
case 2:
sr = "香香";
break;
case 3:
sr = "镜";
break;
}
computer.name = sr; //电脑角色
System.out.println(user.name + " *VS* " + computer.name); //例如输出张三 *VS* 妲己
for (; ; ) { //死循环,多次游戏
System.out.println("是否继续游戏:y/n"); //判断是否继续游戏
String s1 = sc.next();
if ("Y".equals(s1) || "y".equals(s1)) { //输入y或Y,游戏继续
System.out.println("请输入您想出的拳:");
int u = user.chuQuan(); //得到玩家调用chuQuan后的返回值
int c = computer.chuQuan(); //得到电脑调用chuQuan后的返回值
if (u == 1 && c == 3) { //判断输赢
System.out.println(user.name + "胜!");
user.score++; //玩家的分数
} else if (u == 3 && c == 1) {
System.out.println(computer.name + "赢!");
computer.score++; //电脑的分数
} else if (u > c) {
System.out.println(user.name + "胜!");
user.score++;
} else if (u > c) {
System.out.println(computer.name + "赢!");
computer.score++;
} else {
System.out.println("平局!");
}
}else {
break;
}
}
if (user.score>computer.score){ //最终判断电脑的分数与玩家的分数
System.out.println("最终"+user.name+"胜出!");
}else if(user.score<computer.score){
System.out.println("最终"+computer.name+"胜出!");
}else {
System.out.println("最终平局");
}
}}
5.成果展示
(小编也在努力学习更多哟!以后会多多分享哒!)
希望对友友们有所帮助!!!!