「java循环猜拳」Java猜拳

博主:adminadmin 2022-11-29 12:11:06 40

本篇文章给大家谈谈java循环猜拳,以及Java猜拳对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

求一个java猜拳游戏程序

package test;

import java.util.Random;

import java.util.Scanner;

/**

 * 猜拳游戏思路 

 * 1、定义输入函数 

 * 2、提示用户输入猜拳数值 

 * 3、定义随机一个数作为电脑数值 

 * 4、判断[用户输入数值]与 [电脑随机数值] 

 * 5、能够相等就是打平,不能相等就利用、||逻辑符判断输赢 

 * 6、设定数值1-石头 2-剪刀  3-布

 */

public class CaiQuanYouXi {

 public static void main(String[] args) {

  Scanner in=new Scanner(System.in);//定义输入函数in,Scanner包功能,输入数值用的

  System.out.println("--------------猜拳游戏---------------");

  System.out.println("请输入一个数值:1、石头 2、剪刀 3、布");//提示输入数值 

  System.out.println(" ");//空行

  int x=in.nextInt();//让用户输入X的数值 

  Random on=new Random();//定义电脑的随机数值的函数on 

  int y=on.nextInt(3)+1;//定义y随机函数数值范围(1--3)

  if(x=4||x==0){   //判断用户是否输入非1--3范围 

   System.out.println("亲,请正确输入:1、石头 2、剪刀 3、布。你输入了:"+x);  

  }else{   

   /*下面是判断用户输入x的数值 嵌套if*/ 

   if(x==y){   

    if(x==1){ //判断打平的情况 

     System.out.println("你:石头------电脑:石头    PK:很幸运打平手"); 

    }else if(x==2){ 

     System.out.println("你:剪刀------电脑:剪刀   PK:很幸运打平手"); 

    }else { 

     System.out.println("你:布------电脑:布    PK:很幸运打平手"); 

    } 

   }else if(x==1y==2||x==2y==3||x==3y==1){ //开始判断赢的情况 

    if(x==1y==2){ 

     System.out.println("你:石头------电脑:剪刀    PK:恭喜您,赢了!"); 

    }else if(x==2y==3){ 

     System.out.println("你:剪刀------电脑:布   PK:恭喜您,赢了!"); 

    }else {

     System.out.println("你:布------电脑:石头    PK:恭喜您,赢了!");

    } 

   }else {//开始判断输的情况 

    if(x==1y==3){ 

     System.out.println("你:石头------电脑:布    PK:很遗憾,输了!"); 

    }else if(x==2y==1){ 

     System.out.println("你:剪刀------电脑:石头    PK:很遗憾,输了!"); 

    }else { 

     System.out.println("你:布------电脑:剪刀    PK:很遗憾,输了!"); 

    } 

   }

  }

 }

}

运行后的效果展示:

--------------猜拳游戏---------------

请输入一个数值:1、石头 2、剪刀 3、布

1

你:石头------电脑:布    PK:很遗憾,输了!

--------------猜拳游戏---------------

请输入一个数值:1、石头 2、剪刀 3、布

4

亲,请正确输入:1、石头 2、剪刀 3、布。你输入了:4

用java如何编写一个猜拳游戏?

我之前写了个猜拳游戏的源代码,不过没你想的这么精彩。你才给5分就给你你自己修改了,应该很简单的。要多给点分我可以帮你修改。\x0d\x0aimport java.util.Scanner;\x0d\x0aimport java.util.Random;\x0d\x0apublic class caiquan\x0d\x0a{\x0d\x0afinal int jiandao=0;\x0d\x0afinal int shitou=1;\x0d\x0afinal int bu=2;\x0d\x0a\x0d\x0apublic static void main(String[] args)\x0d\x0a{\x0d\x0aString yn="y";\x0d\x0awhile (yn.equals("y"))\x0d\x0a {\x0d\x0a Scanner scanner = new Scanner(System.in);\x0d\x0a System.out.println("欢迎玩猜拳游戏。请输入0,1,2:0表示剪刀,1表示石头,2表示布");\x0d\x0a int a = scanner.nextInt();\x0d\x0a\x0d\x0a Random rd = new Random();\x0d\x0a int b = rd.nextInt(3); \x0d\x0a\x0d\x0a switch (b)\x0d\x0a {\x0d\x0a case 0:\x0d\x0a {\x0d\x0a System.out.println("系统出的是剪刀");\x0d\x0a switch(a)\x0d\x0a {\x0d\x0a case 0:System.out.println("平");break;\x0d\x0a case 1:System.out.println("赢");break;\x0d\x0a case 2:System.out.println("输");break;\x0d\x0a }\x0d\x0a }\x0d\x0a break;\x0d\x0a case 1:\x0d\x0a {\x0d\x0a System.out.println("系统出的是石头");\x0d\x0a switch(a)\x0d\x0a {\x0d\x0a case 0:System.out.println("输");break;\x0d\x0a case 1:System.out.println("平");break;\x0d\x0a case 2:System.out.println("赢");break;\x0d\x0a }\x0d\x0a }\x0d\x0a break;\x0d\x0a case 2:\x0d\x0a {\x0d\x0a System.out.println("系统出的是布");\x0d\x0a switch(a)\x0d\x0a {\x0d\x0a case 0:System.out.println("赢");break;\x0d\x0a case 1:System.out.println("输");break;\x0d\x0a case 2:System.out.println("平");break;\x0d\x0a }\x0d\x0a }\x0d\x0a }\x0d\x0a Scanner ynn = new Scanner(System.in);\x0d\x0a System.out.println("是否继续?是请输入y,否则输入n。");\x0d\x0a yn=ynn.next();\x0d\x0a }\x0d\x0a}\x0d\x0a}

java编程 用循环方式实现和计算机玩猜拳的程序 (设定胜出条件--输3次或赢3次即退出)

大哥,刚刚看到你的就开始写了。各种功能都有,包括判断你输入的字符是否正确,假如不符合的字符就提示。不玩了就可以直接按0退出。

然后,只要是赢三次,输三次都自动退出,并输出你输赢,还可以自动共玩多少局,输赢局数统计!希望能帮到您。

/*

猜拳游戏思路

1、定义输入函数

2、提示用户输入猜拳数值

3、定义随机一个数作为电脑数值

4、判断[用户输入数值]与 [电脑随机数值]

5、能够相等就是打平,不能相等就利用、||逻辑符判断输赢

6、设定数值1-石头 2-剪刀  3-布

*/

import java.util.*;//嵌入Java.util包所有

public class Cq{

public static void main(String[] args){

int win=0;//赢的记录

int lose=0;//输的记录

int all=1;//计数总的局数

int a=1;//控制循环条件使用

System.out.println("--------------猜拳游戏---------------");

System.out.println("游戏规则:赢三次便赢,输三次便输。");

while(a0){//假如a=0的话就不用继续玩

Scanner in=new Scanner(System.in);//定义输入函数in,Scanner包功能,输入数值用的

System.out.println("请输入一个数值:1、石头    2、剪刀     3、布     0、退出游戏");//提示输入数值

System.out.println(" ");//空行

int x=in.nextInt();//让用户输入X的数值

Random on=new Random();//定义电脑的随机数值的函数on

int y=on.nextInt(3)+1;//定义y随机函数数值范围(1--3)

if(x=4){   //判断用户是否输入非1--3范围

System.out.println("亲,请正确输入:1、石头 2、剪刀 3、布。你输入了:"+x);

}else if(x==0){

a=0;

System.out.println("欢迎再次玩“猜拳游戏”!");

return;

}

else{

/*下面是判断用户输入x的数值 嵌套if*/

if(x==y){

if(x==1){ //判断打平的情况

System.out.println("你:石头------电脑:石头    PK:平手"+"    共玩"+all+"局,"+"赢:"+win+",输:"+lose);

all++;

}

else if(x==2){

System.out.println("你:剪刀------电脑:剪刀   PK:平手"+"    共玩"+all+"局,"+"赢:"+win+",输:"+lose);

all++;

}else {

System.out.println("你:布------电脑:布    PK:平手"+"    共玩"+all+"局,"+"赢:"+win+",输:"+lose);

all++;

}

/*   打平手的判断END*/

}else if(x==1y==2||x==2y==3||x==3y==1){ //开始判断赢的情况

if(x==1y==2){

win++;//win1

System.out.println("[你]:石头---VS---[电脑]:剪刀    PK:赢了!"+"    共玩"+all+"局,"+"赢:"+win+",输:"+lose);

all++;

}else if(x==2y==3){

win++;//win2

System.out.println("[你]:剪刀---VS---[电脑]:布   PK:赢了!"+"    共玩"+all+"局,"+"赢:"+win+",输:"+lose);

all++;

}else {

win++;//win3

System.out.println("[你]:布---VS---[电脑]:石头     PK:赢了!"+"    共玩"+all+"局,"+"赢:"+win+",输:"+lose);

all++;

}

//判断赢的情况END

}else {//开始判断输的情况

if(x==1y==3){

lose++;

System.out.println("[你]:石头---VS---[电脑]:布    PK:输了!"+"    共玩"+all+"局,"+"赢:"+win+",输:"+lose);

all++;

}else if(x==2y==1){

lose++;

System.out.println("[你]:剪刀---VS---[电脑]:石头    PK:输了!"+"    共玩"+all+"局,"+"赢:"+win+",输:"+lose);

all++;

}else {

lose++;

System.out.println("[你]:布---VS---[电脑]:剪刀    PK:输了!"+"    共玩"+all+"局,"+"赢:"+win+",输:"+lose);

all++;

}

}//判断输的情况END

if(win==3){

System.out.println("");

System.out.println("");

System.out.println("游戏结束:恭喜您!你已经赢了[电脑]三局!!!"+"    共玩"+all+"局,"+"赢:"+win+",输:"+lose);

a=1;

return;

}else if (lose==3) {

a=1;

System.out.println("");

System.out.println("");

System.out.println("游戏结束:很遗憾,电脑赢了你三盘!继续加油!"+"    共玩"+all+"局,"+"赢:"+win+",输:"+lose);

return;

}

else{continue;}

}//判断是否输入数值1-3范围,如果不是1-3会提醒重新输入 END

}//while

}

}

Java使用循环,实现猜拳游戏统计多少局及胜率?

为了让游戏有参与感,并体现java面对对象的思想,我先创建一个Player选手类,包含选手的名字playerName还有出拳方法guess()。出拳时采用随机获取0、1和2的方式分别代表石头、剪刀和布,代码如下:

public class Player {

private String playerName;

public Player(String playerName) {

this.playerName = playerName;

}

public String getPlayerName() {

return playerName;

}

//出拳方法 0-石头 1-剪刀 2-布

public int guess() {

//随机获取0、1、2

int num = new Random().nextInt(3);

if (num == 0) {

System.out.print("选手" + this.playerName + "出的是石头 ");

} else if (num == 1) {

System.out.print("选手" + this.playerName + "出的是剪刀 ");

} else if (num == 2) {

System.out.print("选手" + this.playerName + "出的是布 ");

}

return num;

}

}

然后在主类中,首先要输入对局的总数,然后创建两名选手进行pk,在pk()方法中制定了获胜规则,详见代码注释。最终统计并利用BigDecimal计算胜率(BigDecimal可以很完美的解决整数除法及其四舍五入保留小数的问题):

public class Main {

public static void main(String[] args) {

System.out.println("请输入本局局数:");

Scanner scanner = new Scanner(System.in);

int sum = scanner.nextInt();

//创建结果数组,resultArray[0]代表p1的获胜局数,resultArray[1]代表p2的获胜局数,resultArray[2]代表平局局数

int[] resultArray = new int[3];

//创建两名选手

Player p1 = new Player("张三");

Player p2 = new Player("李四");

for (int i = 0; i sum; i++) {

//根据总局数进行pk

int result = pk(p1, p2);

if (result == 1) {

resultArray[0]++;

} else if (result == -1) {

resultArray[1]++;

} else {

resultArray[2]++;

}

}

System.out.println("");

System.out.println("最终结果统计:");

System.out.println("选手[" + p1.getPlayerName() + "]获胜局数为:" + resultArray[0] + ",胜率为:" +

new BigDecimal(resultArray[0]).multiply(new BigDecimal(100).divide(new BigDecimal(sum), 2, BigDecimal.ROUND_HALF_UP)) + "%");

System.out.println("选手[" + p2.getPlayerName() + "]获胜局数为:" + resultArray[1] + ",胜率为:" +

new BigDecimal(resultArray[1]).multiply(new BigDecimal(100).divide(new BigDecimal(sum), 2, BigDecimal.ROUND_HALF_UP)) + "%");

System.out.println("平局局数为:" + resultArray[2] + ",平局率为:" +

new BigDecimal(resultArray[2]).multiply(new BigDecimal(100).divide(new BigDecimal(sum), 2, BigDecimal.ROUND_HALF_UP)) + "%");

}

//0-石头 1-剪刀 2-布

//return 0:平局 1:p1获胜 -1:p2获胜

private static int pk(Player p1, Player p2) {

System.out.println("--------------------");

int a = p1.guess();

int b = p2.guess();

System.out.print("\n对局结果:");

//出拳相同平局

if (a == b) {

System.out.println("平局");

return 0;

}

//p1获胜条件:p1出石头时p2出剪刀,p1出剪刀时p2出步,p1出布时p2出石头

else if ((a == 0 b == 1) || (a == 1 b == 2) || (a == 2 b == 0)) {

System.out.println("选手[" + p1.getPlayerName() + "]获胜");

return 1;

}

//p2获胜条件:p1出石头时p2出布,p1出剪刀时p2出石头,p1出布时p2出剪刀

else if ((a == 0 b == 2) || (a == 1 b == 0) || (a == 2 b == 1)) {

System.out.println("选手[" + p2.getPlayerName() + "]获胜");

return -1;

} else {

//因为规定了随机数产生0、1、2,所以其实不会走到本分支

throw new IllegalArgumentException("本局无效");

}

}

}

对局5局的运行结果:

我这里就只能统计当前游戏的数据了,如果你想统计多局游戏总的胜率信息,那么需要将每一局的比赛结果写到txt文件里,最终根据txt文件内容统计即可。

我们今天学java循环结构,老师要求在猜拳游戏加入一个输入yes,继续,如果是no则跳出,怎么写?

在循环体外定义Boolean变量b=true,while(b){//猜拳游戏 输入no 设置b=false}

java循环猜拳的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于Java猜拳、java循环猜拳的信息别忘了在本站进行查找喔。

The End

发布于:2022-11-29,除非注明,否则均为首码项目网原创文章,转载请注明出处。