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人机猜拳思路及方法内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java实现人机猜拳游戏

    本文实例为大家分享了Java实现人机猜拳游戏的具体代码,供大家参考,具体内容如下 实现: User类 public class User { private String name; private int score=0; private int num; public String GetName() { return this.name; } public void SetName(String name) { this.name=name; } public int GetScore()

  • Java实现人机猜拳小游戏

    本文实例完成人机猜拳互动游戏的开发,供大家参考,具体内容如下 阶段一:实验--分析业务,创建用户类 1.分析业务,抽象出类.类的特征和行为 2.创建出用户类 阶段二:实验--创建出计算机类 1.创建计算机类Computer.实现计算机出拳 2.产生一个1-3的随机数,模拟计算机的出拳结果 阶段三:实验--创建游戏类,选择对战对手 1.创建游戏类Game 2.编写游戏类的初始化方法initial() 3.编写游戏类的开始游戏方法startGame() 阶段四:实验--实现一局对战 分别调用用户类和

  • Java开发实现人机猜拳游戏

    本文实例为大家分享了Java开发实现人机猜拳游戏的具体代码,供大家参考,具体内容如下 猜拳游戏 游戏规则:人和电分别出剪刀.石头.布,直到人战胜电脑,游戏结束. 整体分析: 1.总体是一个循环 ->>>(while循环终止条件是人战胜电脑,break:) 2.人的出拳数字从键盘获得 ->>>(Scanner) 3.电脑的出拳数字随机产生范围是(1,2,3)->>>Math.random() 4.出拳的数字转换为文字 ->>>switc

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

    创建四个类: 机器人类 玩家类 游戏类 运行类 一.机器人类: 1.首先创建两个成员变量,分别作为机器人的名字与积分: String name; int jifen; 2.然后创建方法"pcname"用于定义机器人的名字: 写个switch循环来判断如果你按1234的话谁来与你对战 3.然后再创建一个方法"chuquan"来定义机器人出什么,石头还是剪刀..: 所以写个1-3的随机数 int suiji=((int)(Math.random()*3)+1); 4.最

  • Java窗体居中显示的2种方法(实例讲解)

    第1种方法: //setSize(300, 200); pack(); // 得到显示器屏幕的宽.高 int width = Toolkit.getDefaultToolkit().getScreenSize().width; int height = Toolkit.getDefaultToolkit().getScreenSize().height; // 得到窗体的宽.高 int windowsWidth = this.getWidth(); int windowsHeight = thi

  • Java类和成员上的一些方法实例代码

    isInstance和isAssignableFrom obj instanceof Class 判断obj是不是Class或者Class的子类的实例 clazz.isInstance(obj) 判断obj能不能强制转换成clazz类型,亦即obj是不是clazz或者clazz的子类的实例 clazz1.isAssignableFrom(clazz2) 如果clazz2和clazz1相同,或者clazz1是clazz2的父类则返回True,否则返回Flase static class Paren

  • PHP生成随机码的思路与方法实例探索

    本文实例讲述了PHP生成随机码的思路与方法.分享给大家供大家参考,具体如下: 背景 今天因为无聊,小伙伴让写一个生成5位随机码的函数,要求:可包含数字.字母大小写,代码尽量短. 解题思路 (1) . 第一思路 都是印象中匹配ASCII码进行随机读取的实现方法,此处可提供一个方法作为参考: function get_rand_ascii($pw_length = 5){ $randpwd = ''; for ($i = 0; $i < $pw_length; $i++) { $randpwd .=

  • java 获取用户的MAC地址多种方法实例详解

    java实现获取用户的MAC地址方法: 方法一:将本机地址与局域网内其他机器区分开来 /** * 根据IP地址获取mac地址 * @param ipAddress 127.0.0.1 * @return * @throws SocketException * @throws UnknownHostException */ public static String getLocalMac(String ipAddress) throws SocketException, UnknownHostEx

  • Java追加文件内容的三种方法实例代码

    整理文档,搜刮出一个Java追加文件内容的三种方法的代码,稍微整理精简一下做下分享. import Java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; import java.io.FileWriter; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.RandomAccessFile;

  • Java编程实现调用com操作Word方法实例代码

    实例代码如下: import com.jacob.activeX.ActiveXComponent; import com.jacob.com.Dispatch; import com.jacob.com.Variant; /** * jacob操作MSword类 * @author */ public class WordBean { // word文档 private Dispatch doc; // word运行程序对象 private ActiveXComponent word; //

  • Java获取服务器IP及端口的方法实例分析

    本文实例讲述了Java获取服务器IP及端口的方法.分享给大家供大家参考,具体如下: 前几天写过一个获取远程服务器的IP和端口的程序,从网上查了一些资料顺便加一些自己的理解,希望对大家有所帮助: struts2 获取request HttpServletRequest requet=ServletActionContext.getRequest(); requet.getScheme()+"://"+requet.getServerName()+":"+requet.

  • Java使用Condition控制线程通信的方法实例详解

    本文实例讲述了Java使用Condition控制线程通信的方法.分享给大家供大家参考,具体如下: 一 点睛 当使用Lock对象来保证同步时,Java提供了一个Condition类来保持协调,使用Condition可以让那些已经得到Lock对象.却无法继续执行的线程释放Lock对象,Condtion对象也可以唤醒其他处于等待的线程. Condition 将同步监视锁方法(wait.notify 和 notifyAll)分解成截然不同的对象,以便通过将这些对象与Lock对象组合使用,为每个对象提供多

  • Java中求最大值的4种方法实例代码

    前言 本文主要给大家分享了关于java求最大值的4中方法,文中给出了完整的示例代码,下面话不多少了,来一起看看吧 示例代码: /** *@author Prannt *求最大值(或最小值) *本例以int数据类型为例,可指定其他数据类型 */ //方法一:直接法,求最小值类似 public class Deno05ArrayMax { public static void main(String[] args) { //数据类型可指定 int [] array = {5,15,20,30,100

随机推荐