* Computer 电脑类
* 属性 :角色名,得分。
* 方法:出拳的方法
1 /** 2 * Computer 电脑类 3 * 属性 :角色名,得分。 4 * 方法:出拳的方法 5 * @author lisi 6 * @version 版本 1.0 7 * 8 */ 9 public class Computer {10 // 属性 昵称,得分11 String computer_name = "电脑";// null12 int computer_score = 0;// 013 14 //出拳方法 int --- 参数无参数。实例方法,对象方法 不被static修饰。15 /**16 * Computer 出拳方法17 * @return 电脑出的拳:1 剪刀 2 石头 3 布 18 */19 public int computerShowFist() {20 int show = (int)(Math.random()*3)+1;21 switch (show) {22 case 1:23 System.out.println(computer_name + "出了剪刀");24 25 break;26 case 2:27 System.out.println(computer_name + "出了石头");28 break;29 case 3:30 System.out.println(computer_name + "出了布");31 break;32 33 34 }35 return show;36 37 }38 39 40 41 }
电脑类
1 public class ComputerTest {2 public static void main(String[] args) {3 Computer computer = new Computer();4 int show = computer.computerShowFist();5 System.out.println(show);6 7 }8 9 }
电脑类测试类
1 import java.util.Scanner; 2 3 /** 4 * Person 类 5 * 名字 6 * 分数 7 * 出去的功能 8 * @author lisi 9 *10 */11 public class Person {12 String person_name = "匿名";13 int person_score = 0;14 15 16 // 人出拳17 /**18 * 人出拳的方法19 * @return 人出的拳头;1 剪刀 2 石头 3 布20 */21 public int personShowFist() {22 Scanner sc = new Scanner(System.in);23 System.out.println("请出拳:1 剪刀 2 石头 3 布 ");24 int show = sc.nextInt();25 switch (show) {26 case 1:27 System.out.println(person_name + "出了剪刀");28 29 break;30 case 2:31 System.out.println(person_name + "出了石头");32 break;33 case 3:34 System.out.println(person_name + "出了布");35 break;36 37 38 }39 40 return show;41 }42 43 }
人类
1 import java.util.Scanner; 2 3 /** 4 * 游戏类 5 * 操作 管理 上面定义的Person类和Computer类, 6 * 调用各自出拳的方法,去做比较,输赢。 7 * @author 8 * 9 */ 10 public class Game { 11 12 // 把 Person 和 Computer,作为自己的属性值。 13 Person person; 14 Computer computer;// 类作为另外一个类的成员。 15 // 引用数据类型默认值:--- null- --- 空指针 16 // 定义属性count表示对战的次数 17 int count = 0; 18 19 20 public void inital() { 21 if(person == null) { 22 person = new Person(); 23 } 24 if(computer == null) { 25 computer = new Computer(); 26 } 27 } 28 29 30 // 开始游戏的方法: 31 public void startGame() { 32 Scanner sc = new Scanner(System.in); 33 System.out.println("-----------欢迎加入猜拳游戏--------------"); 34 System.out.println(); 35 System.out.println("************************************"); 36 System.out.println("出拳的规则 : 1 剪刀 2 石头 3 布"); 37 System.out.println("**************猜拳开始********************"); 38 System.out.println("****************************************"); 39 System.out.println(); 40 41 // 调用初始化方法 42 inital(); 43 // 加入角色名 44 System.out.println("选择角色:1 曹操 2 吕布 3 孙权"); 45 int role = sc.nextInt(); 46 47 switch (role) { 48 case 1: 49 computer.computer_name = "曹操"; 50 break; 51 case 2: 52 computer.computer_name = "吕布"; 53 break; 54 case 3: 55 computer.computer_name = "孙权"; 56 break; 57 } 58 System.out.println("请输入你的名字:"); 59 person.person_name = sc.next(); 60 61 System.out.println(person.person_name + " PK " + computer.computer_name +" 对战"); 62 System.out.println("是否开始游戏:y / n"); 63 String answer = sc.next(); 64 65 while("y".equals(answer)) { 66 67 68 // 调用各种的出拳: 69 int personFist = person.personShowFist(); 70 int computerFist = computer.computerShowFist(); 71 72 // 根据出的拳比较输赢 1 剪刀 2 石头 3 布 73 74 if (personFist == 1 && computerFist == 3 || personFist == 2 && computerFist == 1||personFist == 3 && computerFist == 2) { 75 System.out.println(person.person_name + "赢"); 76 // 添加人的分数 77 person.person_score += 1; 78 }else if (personFist == computerFist) { 79 System.out.println("平局"); 80 }else { 81 System.out.println(computer.computer_name + "赢"); 82 computer.computer_score += 1; 83 } 84 // 记录对战的次数: 85 count ++; 86 87 System.out.println("是否开始下一局:y / n"); 88 answer = sc.next(); 89 } 90 91 92 // 循环结束,结束游戏 93 System.out.println("退出游戏"); 94 // 调用展示结果的方法 95 showResult(); 96 } 97 98 public void showResult() { 99 System.out.println("--------------------");100 System.out.println(person.person_name + " PK " + computer.computer_name );101 System.out.println("对战的次数:" + count);102 103 104 System.out.println(person.person_name + "的得分:"+ person.person_score);105 System.out.println(computer.computer_name + "得分"+computer.computer_score);106 107 if (person.person_score > computer.computer_score) {108 System.out.println(person.person_name+ "好厉害");109 }else if (person.person_score == computer.computer_score) {110 System.out.println("最终是平局");111 }else {112 System.out.println("布要气馁,下次接着来");113 }114 115 116 117 }118 119 120 121 122 123 124 125 }
Game类
public class GameTest { public static void main(String[] args) { Game game = new Game(); game.startGame(); }}
GameTest类