java小游戏类与类_java--猜拳小游戏(类和对象)

案例效果展示

22c138753f0f?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

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();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值