java人机猜拳分析_java实现人机猜拳游戏的代码

本文介绍了如何使用Java编写一个简单的人机猜拳游戏。游戏包括Person类、Computer类和Game类,分别代表玩家、电脑和游戏逻辑。玩家和电脑会随机出拳,游戏根据出拳规则判断胜负,并提供再次游戏的选择。在Game类的特定代码段存在错误,需要修复。
摘要由CSDN通过智能技术生成

ca56232b3bbedf9a539d07f37fffb99a.gif

3144d8b7615c79d9f638db40d5689d26.gif

a218af6549b45ee526caf607ebff1358.gif

0f8df0e29816ae721419de940fb833d1.gif

java实现人机猜拳游戏的代码

需求说明:

创建游戏类

属性:甲方玩家(用户)、乙方玩家(计算机)、对战次数

编写游戏类方法1——初始化

编写游戏类方法2——计算并返回对战结果

编写游戏类方法3——显示对战结果

代码如下:

import java.util.*;

//建一个Person类

public class Person {

Scanner input = new Scanner(System.in);

/**

* 定义属性

*/

String name ;

int score;

/**

* 人的出拳方法

*/

public void showFirst(){

System.out.print("请出拳:1.剪刀 2.石头 3.布(请输入相应数字:)");

int num = input.nextInt();

switch(num){

case 1:

System.out.println("你出拳: 剪刀");

break;

case 2:

System.out.println("你出拳: 石头");

break;

case 3:

System.out.println("你出拳: 布");

break;

default:

System.out.println("输入有误,请重新输入:");

}

}

}

建一个Computer类

import java.util.*;

public class Computer {

Scanner input = new Scanner(System.in);

/**

* 类的属性

*/

String name;

int score;

/**

* 计算机出拳方法

*/

public void showFirst(){

int num = (int)(Math.random() * 10 % 3 + 1);

switch(num){

case 1 :

System.out.println("电脑出拳:剪刀");

break;

case 2 :

System.out.println("电脑出拳:石头");

break;

case 3 :

System.out.println("电脑出拳:布");

break;

default:

System.out.print("输入有误,请重新输入:");

}

}

}

最后是游戏类

import java.util.*;

public class Game {

Scanner input = new Scanner(System.in);

/**

* 定义属性

*/

Person person;//甲方

Computer computer;//乙方

int count;//对战次数

/**

* 初始化方法

*/

public void Initial(){

person = new Person();

computer = new Computer();

count = 0;

}

/**

* 游戏头及规则、选择对手

*/

public void Show(){

System.out.println("-----------欢迎进入游戏世界-----------");

System.out.println("\t******************");

System.out.println("\t**    猜拳,开始    **");

System.out.println("\t******************");

System.out.println("\n出拳规则:1.剪刀 2.石头 3.布");

System.out.print("请选择对方角色:(1.刘备 2.孙权 3.曹操):");//选择对方角色

int num = input.nextInt();

switch(num){

case 1:

System.out.println("你选择了  刘备对战");

break;

case 2:

System.out.println("你选择了  孙权对战");

break;

case 3:

System.out.println("你选择了  曹操对战");

break;

}

}

/**

* 开始游戏

*/

public void Start(){

System.out.print("要开始吗?(y/n)");

String answer = input.next();

int perFirst;//用户出拳

int compFirst;//计算机出拳

while(answer.equals("y")){//出拳

perFirst = person.showFirst();

compFirst = computer.showFirst();

if((perFirst == 1 && compFirst == 1)||(perFirst == 2 && compFirst == 2)||(perFirst == 3 && compFirst == 3)){

System.out.println("结果:和局,真衰!嘿嘿,等着瞧吧 !\n");//平局

}else if((perFirst == 1 && compFirst == 3) || (perFirst == 2  && compFirst == 1) || (perFirst == 3 && compFirst == 2)){

System.out.println("结果: 恭喜, 你赢了!");  //用户赢

person.score++;

}else{

System.out.println("结果说:^_^,你输了,真笨!\n");  //计算机赢

computer.score++;

}

count++;

System.out.print("\n是否开始下一轮(y/n):  ");

answer = input.next();

}

}

}

在Game代码中红色字体部分出错,求解答。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值