java--猜拳小游戏(类和对象)
2017-09-01 本文已影响0人
阿狸演绎
案例效果展示
ScreenClip [1].png先有一个人(Person)
有一个电脑(Computer)和人玩
有一个控制器,为人和电脑玩提供方法
一个测试类:用来使用控制器
Person类
package checGame;
import java.util.Scanner;
public class Person {
String name;
int score;
// 规定 1:石头2:剪刀 3:包子
int play() {
System.out.println("请出拳:(1:石头2:剪刀3:布)");
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
switch (num) {
case 1: {
System.out.println(this.name + "出拳");
break;
}
case 2: {
System.out.println(this.name + "出剪刀");
break;
}
default: {
System.out.println(this.name + "出布");
break;
}
}
return num;
}
public Person() {
}
public Person(int score) {
this.score = score;
}
}
##Computer类
package checGame;
import java.util.Random;
public class Computer {
String name;
int score;
//出拳
int play(){
Random rand = new Random();
//1:石头 2:剪刀 3:布
int num = rand.nextInt(3)+1;
switch (num) {
case 1:{
System.out.println(this.name + "出拳");
break;
}
case 2:{
System.out.println(this.name+"出剪刀");
break;
}
default:{
System.out.println(this.name+"出布");
break;
}
}
return num;
}
//默认构造方法
public Computer () {
}
//重写构造方法,一定要把默认的写出来
public Computer(int score) {
this.score = score;
}
}
Menu类
package checGame;
import java.util.Scanner;
public class Menu {
Computer roboat;
Person person ;
//初始化游戏
//构造方法
public Menu(){
}
void init(){
//创建一个机器对象
this.roboat = new Computer(0);
System.out.println("请输入电脑的名字");
Scanner sc = new Scanner(System.in);
this.roboat.name = sc.next();
//创建一个人对象
this.person = new Person(0);
System.out.println("请输入你的名字");
this.person.name = sc.next();
}
//开始游戏
void start(){
//人先出拳
int num = this.person.play();
//机器出拳
int num1 = this.roboat.play();
//计算分数
this.calculate(num, num1);
System.out.println("游戏是否结束(exit)");
Scanner sc = new Scanner(System.in);
if ("exit".equals(sc.next())) {
//展示分数
show();
return;
}else {
start();
}
}
//计算分数
//num :人出拳的值 num1:机器出拳的值
void calculate(int num ,int num1){
if (num == num1) {
//平局
System.out.println("平局");
return;
}
if ((num==1&&num1==2)||(num==2&&num1==3)||(num==3&&num1==1)) {
//人胜利
System.out.println("人胜利");
this.person.score++;
}else{
//机器胜利
System.out.println("机器胜利");
this.roboat.score++;
}
}
//展示分数
void show(){
System.out.println(this.person.name+"得分" +this.person.score);
System.out.println(this.roboat.name+"得分" +this.roboat.score);
}
}
测试类
package checGame;
public class Test {
public static void main(String[] args) {
Menu menu = new Menu();
menu.init();
menu.start();
}
}