「猜拳比赛Java」猜拳比赛心得

博主:adminadmin 2022-11-27 06:33:08 42

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

本文目录一览:

用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猜拳游戏程序设计怎么做啊

import java.util.Random;

class DianNao {

public String chuQuan() {

Random rand = new Random();

int i = rand.nextInt(3);

String str = "";

if (i == 0) {

str = "石头";

}

if (i == 1) {

str = "剪刀";

}

if (i == 2) {

str = "布";

}

return str;

}

}

class CaiPan {

public String caiJue(String str1, String str2) {

String str = "输";

if (str1.equals("石头")  str2.equals("剪刀")) {

str = "赢";

}

if (str1.equals("石头")  str2.equals("布")) {

str = "输";

}

if (str1.equals("石头")  str2.equals("石头")) {

str = "平";

}

if (str1.equals("剪刀")  str2.equals("石头")) {

str = "输";

}

if (str1.equals("剪刀")  str2.equals("布")) {

str = "赢";

}

if (str1.equals("剪刀")  str2.equals("剪刀")) {

str = "平";

}

if (str1.equals("布")  str2.equals("石头")) {

str = "赢";

}

if (str1.equals("布")  str2.equals("剪刀")) {

str = "输";

}

if (str1.equals("布")  str2.equals("布")) {

str = "平";

}

return str;

}

}

public class ShiTouJiandaoBu {

/**

 * @param args

 */

public static void main(String[] args) {

CaiPan cp = new CaiPan();

DianNao dn1 = new DianNao();

DianNao dn2 = new DianNao();

String str1 = dn1.chuQuan();

String str2 = dn2.chuQuan();

String result = cp.caiJue(str1, str2);

System.out.println(str1);

System.out.println(str2);

System.out.println(result);

}

}

就帮你到这吧

求一个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编程人机猜拳类和对象做求代码

先建立个Game包

然后我做的是分了5个类来做的

TestStartGuess 类

package com.game.guess;

public class TestStartGuess {

/**

* 人机互动版猜拳游戏

* 程序入口

*/

public static void main(String[] args) {

Game game=new Game();

game.initial();

game.startGame();

}

}

2.Person 类

package com.game.guess;

import java.util.Scanner;

/**

* 用户类

*阶段1完成

* @param Scanner

*/

public class Person {

String name ="匿名";//名字

int score =0;//积分

/**

* 出拳

*@return出拳结果:1.剪刀 2.石头 3.布

*/

public int showFist(){

//接收用户的选择

Scanner input =new Scanner(System.in);

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

int show=input.nextInt();

//输出出拳结果,并返回

switch(show){

case 1:

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

break;

case 2:

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

break;

case 3:

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

break;

}

return show;

}

}

3.Computer 类

package com.game.guess;

/**

*计算机类

*阶段2完成

*/

public class Computer{

  String name="电脑";//名字

  int score = 0;;//积分

  /**

  *出拳

  *@return 出拳结果:1.剪刀 2.石头 3.布

  */

  public int showFist(){

           //产生随机数

           int show =(int)(Math.random()*10)%3+1;//产生随机数,表示电脑出拳

           //输出出拳结果并返回

    switch(show){

case 1:

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

break;

case 2:

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

break;

case 3:

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

break;

}

return show;

}

}

4.Game 类

package com.game.guess;

import java.util.Scanner;

/**

* 游戏类类完全版

* 阶段7:功能扩展

* @param computer

*

*/

public class Gamecomputer {

Person person; //甲方

Computer computer;  //乙方

int count;//对战次数

/**

* 初始化

*/

public void initial(){

person=new Person();

computer=new Computer();

count=0;

}

/**

* 开始游戏

*/

@SuppressWarnings("resource")

public void startGame(){

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

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

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

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

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

Scanner input=new Scanner(System.in);

String exit="n"; //退出系统

do{

initial();//初始化

/*选择对方角色*/

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

int role=input.nextInt();

if(role==1){

computer.name="刘备";

}else if(role==2){

computer.name="孙权";

}else if(role==3){

computer.name="曹操";

}

//扩展功能1:输入用户姓名

/*输入用户姓名*/

System.out.print("请输入你的姓名:");

person.name=input.next();

System.out.println(person.name+"VS"+computer.name+"对战\n");

//扩展功能1结束

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

String start=input.next();//开始每一局游戏

int perFist; //用户出的拳

int compFist; //计算机出的拳

while(start.equals("y")){

/*出拳*/

   perFist=person.showFist();

   compFist=computer.showFist();

   /*裁决*/

   if((perFist==1compFist==1)||(perFist==2compFist==2)||(perFist==3compFist==3)){

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

              }else if((perFist==1compFist==3)||(perFist==2compFist==1)||(perFist==3compFist==2)){

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

                    person.score++;

              }else{

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

                computer.score++;

              }

              count++;

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

              start=input.next();

              }

/*显示结果*/

showResult();

//扩展功能3:循环游戏,知道退出系统

System.out.print("\n要开始下一局吗?(y/n):");

exit=input.next();

       System.out.println();

       //扩展功能3结束

}while(!exit.equals("n"));

System.out.println("系统退出!");

}

/**

* 显示比赛结果

*/

public void showResult(){

/*显示对战次数*/

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

          System.out.println(computer.name+"VS"+person.name);

          System.out.println("对战次数:"+count);

       

          //扩展功能2:显示最终的得分

          System.out.println("\n姓名\t得分");

          System.out.println(person.name+"\t"+person.score);

System.out.println(computer.name+"\t"+computer.score+"\n");

   //扩展功能2结束

          /*显示对战结果*/

          int result=calcResult();

          if(result==1){

          System.out.println("结果:打成平手,下次再和你一分高下!");

          }else if(result==2){

          System.out.println("结果:恭喜恭喜!");  //用户获胜

          }else{

          System.out.println("结果:呵呵,笨笨,下次加油啊!");  //计算机获胜

          }

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

}

/**

* 计算比赛结果

* @return1:战平; 2:用户赢; 3:电脑赢

*/

public int calcResult(){

if(person.score==computer.score){

return 1;//战平

}else if(person.scorecomputer.score){

return 2;//用户赢

}else{

return 3;//电脑赢

}

}

}

5.Start 类

package com.game.guess;

public class StartGuess {

public static void main (String[] args){

Game c = new Game();

c.initial();

c.startGame();

}

}

然后编译执行就OK了

希望能帮到你

java猜拳游戏 (3局2胜)

package Demo;

import java.util.Random;

import java.util.Scanner;

public class Demo12 {

public static void main(String[] args) {

String[] str = { "石头", "剪刀", "布" };

Random ram = new Random();

int y, n, i;

while (true) {

System.out.println("菜单:\n1、开始猜拳  \n9、退出");

Scanner scan = new Scanner(System.in);

System.out.print("请选择:");

String s = scan.nextLine();

if ("1".equals(s.trim())) {

y = 0;

n = 0;

i = 0;

while (true) {

try {

System.out.println("请出拳:1、石头  2、剪刀  3、布");

int s1 = Integer.parseInt(scan.nextLine());

if (s1  0  s1  4) {

System.out.println("你  出:" + str[s1 - 1]);

int s2 = ram.nextInt(3);

System.out.println("我  出:" + str[s2]);

if (s1 == (s2 + 1)) {

System.out.println("这次是平局");

} else if ((s1 == 1  s2 == 1)

|| (s1 == 2  s2 == 2)

|| (s1 == 3  s2 == 0)) {

System.out.println("这次你赢了!");

y++;

} else if ((s1 == 1  s2 == 2)

|| (s1 == 2  s2 == 0)

|| (s1 == 3  s2 == 1)) {

System.out.println("这次你输了!");

n++;

}

if (i == 2) {

if (y  n) {

System.out.println("你赢了  " + y + ":" + n);

} else if (y  n) {

System.out.println("你输了  " + y + ":" + n);

} else {

System.out.println("平局  " + y + ":" + n);

}

break;

}

i++;

} else {

System.out.println("输入有误!");

}

} catch (Exception ex) {

System.out.println("输入有误!");

}

}

} else if ("9".equals(s.trim())) {

System.out.println("退出成功");

return;

} else {

System.out.println("指令错误~");

}

}

}

}

菜单:

1、开始猜拳

9、退出

请选择:2

指令错误~

菜单:

1、开始猜拳

9、退出

请选择:1

请出拳:1、石头  2、剪刀  3、布

2

你  出:剪刀

我  出:布

这次你赢了!

请出拳:1、石头  2、剪刀  3、布

4

输入有误!

请出拳:1、石头  2、剪刀  3、布

3

你  出:布

我  出:布

这次是平局

请出拳:1、石头  2、剪刀  3、布

1

你  出:石头

我  出:石头

这次是平局

你赢了  1:0

菜单:

1、开始猜拳

9、退出

请选择:9

退出成功

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和猜拳比赛心得的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

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