当前位置: 首页 > 编程笔记 >

Java人机猜拳实现的思路及方法实例

沈翰
2023-03-14
本文向大家介绍Java人机猜拳实现的思路及方法实例,包括了Java人机猜拳实现的思路及方法实例的使用技巧和注意事项,需要的朋友参考一下

创建四个类:

机器人类

玩家类

游戏类

运行类

一、机器人类:

1.首先创建两个成员变量,分别作为机器人的名字与积分:

String name;
int jifen;

2.然后创建方法“pcname”用于定义机器人的名字:

写个switch循环来判断如果你按1234的话谁来与你对战

3.然后再创建一个方法“chuquan”来定义机器人出什么,石头还是剪刀。。:

所以写个1-3的随机数

int suiji=((int)(Math.random()*3)+1);

4.最后switch判断,1的话是石头,2剪刀,3布

机器人完整代码:

import java.util.Scanner;

public class pc {
 String name;
 int jifen;
Scanner input=new Scanner(System.in);
 public void pcname(){
  int pcjuese=input.nextInt();
  switch (pcjuese) {
   case 1:
    name="张飞";
    System.out.println("你选择了"+name+"对战");
    break;
   case 2:
    name="赵云";
    System.out.println("你选择了"+name+"对战");
    break;
   case 3:
    name="貂蝉";
    System.out.println("你选择了"+name+"对战");
    break;
   default:
    System.out.println("还没这个人");
  }

 }
 public int chuquan(){
  int suiji=((int)(Math.random()*3)+1);
  switch (suiji){
   case 1:
    System.out.println(name+"出拳:石头");
    break;
   case 2:
    System.out.println(name+"出拳:剪刀");
    break;
   case 3:
    System.out.println(name+"出拳:布");
    break;
   default:

  }
  return suiji;
 }
}

二、玩家类:

1.和机器人一样,定义两个成员变量,用于作为名字和积分:

String name="1";
int jifen=0;

2.创建一个“renname”方法,用于定义玩家的昵称

3.创建一个”chuquan“方法,用于定义玩家出拳

然后switch进行判断,按1出石头,按2出剪刀,按3出布

玩家完整代码:

import java.util.Scanner;

public class ren
{
 String name="1";
 int jifen=0;

 Scanner input=new Scanner(System.in);
 public void renname(){
  System.out.println("起一个昵称吧:");
   name=input.next();
  System.out.println("你的昵称为:"+name);
 }

 public int chuquan(){
  System.out.println("出拳:1.石头 2.剪刀 3.布");
  int show=input.nextInt();
  switch (show){
   case 1:
    System.out.println(name+" 出石头");
    break;
   case 2:
    System.out.println(name+" 出剪刀");
    break;
   case 3:
    System.out.println(name+" 出布");
    break;
   default :
    System.out.println("你准备出个大炮呢?");
  }
  return show;
 }
}

三、游戏类

1.定义两个成员变量和new两个对象:

int count; //进行了几局游戏
int pingju; //平局场次
ren Ren =new ren();
pc computer =new pc();

2.创建“game”方法,用来调用机器人类和玩家类,以及实现游戏功能

3.首先调用Ren.name()来用于让玩家创建昵称

3.1.然后调用computer.name()来用于让玩家选择和谁对战

4.一切ok,开始进行功能实现:

首先创建两个变量,一个是机器人出拳,一个是玩家出拳

int pcquan; //pc出拳
int personquan; //人出拳

y/n开始游戏和退出游戏

开始进行游戏功能实现编写

5.循环的时候把机器人和玩家出拳的方法赋值给上面两个定义出拳的变量

6.功能ok后创建一个方法,用于定义计分板,这个就很简单了,直接附上游戏类完整代码:

import java.util.Scanner;

public class w {
  
  int count; //进行了几局游戏
  int pingju; //平局场次
  ren Ren =new ren();
  pc computer =new pc();

 

  Scanner input=new Scanner(System.in);
public void game(){
  
  System.out.println("规则:1.石头 2.剪刀 3.布");

  Ren.renname();
  System.out.print("请选择对方角色(1.张飞 2.赵云 3.貂蝉): "); // 选择对方角色
  computer.pcname();
  System.out.println("要开始嘛?(y/n)");
  String yn=input.next();
  int pcquan; //pc出拳
  int personquan; //人出拳
  while (yn.equalsIgnoreCase("y")){

    personquan=Ren.chuquan(); //人出拳
    pcquan=computer.chuquan(); //pc出拳
    if((pcquan==1&personquan==1)|(pcquan==2&personquan==2)|(pcquan==3&personquan==3)){
      System.out.println("平局");
      pingju++;
    }else if((pcquan==1&personquan==3)|(pcquan==2&personquan==1)|(pcquan==3&personquan==2)){
      System.out.println(Ren.name+"赢了");
      computer.jifen++;
    }else {
      System.out.println(computer.name+"赢了");
      Ren.jifen++;
    }
    count++; //表示进行了一局游戏
    System.out.println("开始下一轮嘛?(y/n)");
    yn=input.next();
    if (yn.equalsIgnoreCase("n")){
      System.out.println("游戏结束");
      result();
    }

  }
}
  //比赛结果
  public void result(){
    System.out.println("-------------------------------");
    System.out.println(Ren.name+" VS "+computer.name);
    System.out.println("对战次数:"+count);
    System.out.println("平局"+pingju+"场");
    System.out.println(Ren.name+"赢了"+Ren.jifen+"场");
    System.out.println(computer.name+"赢了"+computer.jifen+"场");

    if(Ren.jifen> computer.jifen){
      System.out.println(Ren.name+"赢了");
    }else if (computer.jifen> Ren.jifen){
      System.out.println(computer.name+"赢了");
    }else {
      System.out.println("平局");
    }
  }
}

三、运行类

这个就不多说了,直接上代码

public class test
{
  public static void main(String[] args) {
 w game=new w();
 ren ren=new ren();


  game.game();
  //game.result();
  }
}

到此这篇关于Java人机猜拳实现思路及方法的文章就介绍到这了,更多相关Java人机猜拳思路及方法内容请搜索小牛知识库以前的文章或继续浏览下面的相关文章希望大家以后多多支持小牛知识库!

 类似资料:
  • 本文向大家介绍Java实现人机猜拳小游戏,包括了Java实现人机猜拳小游戏的使用技巧和注意事项,需要的朋友参考一下 本文实例完成人机猜拳互动游戏的开发,供大家参考,具体内容如下 阶段一:实验——分析业务,创建用户类 1.分析业务,抽象出类、类的特征和行为 2.创建出用户类 阶段二:实验——创建出计算机类 1.创建计算机类Computer。实现计算机出拳 2.产生一个1—3的随机数,模拟计算机的出拳

  • 本文向大家介绍python实现猜拳小游戏,包括了python实现猜拳小游戏的使用技巧和注意事项,需要的朋友参考一下 用python实现猜拳小游戏,供大家参考,具体内容如下 本练习旨在养成良好的编码习惯和练习逻辑思考. 1、使用python版本: 3.7.3; 2、代码内容实现如下 执行运行结果 更多有趣的经典小游戏实现专题,分享给大家: C++经典小游戏汇总 python经典小游戏汇总 pytho

  • 本文向大家介绍Java控制台实现猜拳游戏小游戏,包括了Java控制台实现猜拳游戏小游戏的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Java猜拳游戏的具体代码,供大家参考,具体内容如下 先来看一下效果图:  首先我们创建一个Person类,这个类有name和score两个属性,有play这个方法,源代码如下: 接下来是主程序入口: 源代码下载:Java猜拳游戏 以上就是本文的全部内

  • 本文向大家介绍C++实现产生随机数和相应的猜拳小游戏实例代码,包括了C++实现产生随机数和相应的猜拳小游戏实例代码的使用技巧和注意事项,需要的朋友参考一下 一、简介 c++中,产生随机数的通用方法就是调用 srand()和 rand()  函数。 Rand 单纯的rand()会返回一个0至RAND_MAX之间的随机数值,而RAND_MAX的值与int位数有关,最小是32767。不过rand()是一

  • 本文向大家介绍javascript图片延迟加载实现方法及思路,包括了javascript图片延迟加载实现方法及思路的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家介绍了如何通过javascript来延迟加载图片,分享给大家供大家参考,具体内容如下 当一个网页中含有大量图片时,如果一开始就将图片全部加载完毕,势必会引起性能和效率上的问题,用户可能会由于等待时间过久而离开。 这个时候,我们需要

  • 本文向大家介绍最常见的猜拳小游戏Android代码实现,包括了最常见的猜拳小游戏Android代码实现的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Android猜拳小游戏,供大家参考,具体内容如下 简单的 页面跳转 和 点击事件 的实现... --> AndroidManifest.xml --> strings.xml --> activity_other.xml --> Ma

  • 目前有很多待办提醒的软件,有的软件支持指定xx点xx分钟进行待办提醒,好奇这个待办提醒的实现思路。 1.设置定时任务,但是需要支持到分钟维度设置提醒,那每一分钟都得一个定时任务,不太现实 2.消息队列,把待办弄成延迟消息,到点了就消费消息进行提醒 暂时只能想到这两个,不知道有没有更合适的实现思路呢

  • 本文向大家介绍python使用if语句实现一个猜拳游戏详解,包括了python使用if语句实现一个猜拳游戏详解的使用技巧和注意事项,需要的朋友参考一下 任务要求 在控制台中提示输入石头、剪刀、布,按回车键,然后给出游戏结果。 分析 我们知道在游戏规则中,石头克剪刀,剪刀克布,布克石头。但是这在计算机中并不是很好直接的表示,因此我们分别用0、1、2分别代表游戏中的石头剪刀布。 那么电脑该如何出拳呢?