【porttunnel源码】【智能回归线源码】【163邮箱编辑源码模式】java猜拳源码_java猜拳代码

时间:2024-12-28 22:37:00 来源:工作日报管理系统源码 分类:休闲

1.Java使用循环,猜拳猜拳实现猜拳游戏统计多少局及胜率?
2.java编程 用循环方式实现和计算机玩猜拳的程序 (设定胜出条件--输3次或赢3次即退出)
3.java编程人机猜拳类和对象做求代码

java猜拳源码_java猜拳代码

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

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

       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().divide(new BigDecimal(sum), 2, BigDecimal.ROUND_HALF_UP)) + "%");

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

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

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

       new BigDecimal(resultArray[2]).multiply(new BigDecimal().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文件内容统计即可。163邮箱编辑源码模式

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

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

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

       /

*

       猜拳游戏思路

       1、定义输入函数

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

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

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

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

       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(a>0){ //假如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==1&&y==2||x==2&&y==3||x==3&&y==1){  //开始判断赢的情况

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

       win++;//win1

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

       all++;

       }else if(x==2&&y==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==1&&y==3){

       lose++;

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

       all++;

       }else if(x==2&&y==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编程人机猜拳类和对象做求代码

       先建立个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()*)%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 Game<computer> {

        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