重游java(猜拳项目)

该博客记录了一个猜拳游戏,玩家与电脑进行石头剪刀布,每回合依次出拳,显示结果并判定胜负。回合结束后询问玩家是否继续,若结束则统计总局数、玩家胜场、平局场数、失败场数及胜率,根据胜场判断最终胜负。

记录生活吧,自己乱搞的,肯定有很多需要优化的地方,各位大佬多多谅解

游戏规则
猜拳游戏
玩家和电脑进行猜拳(石头剪刀布)
每回合分别由玩家和电脑依次出拳
打印显示双方出拳的结果,并对结果进行判定
回合结束后询问玩家是否要继续游戏
如果玩家选择继续游戏则开启下一个回合的猜拳
否则游戏结束
游戏结束后统计前面回合的数据
数据要求显示游戏的总局数,玩家胜利的场数,平局的场数以及失败的场数并显示胜率
根据胜利的场数打印显示最终结果(玩家胜场大于电脑胜场则表示玩家胜利)

import java.io.Serializable;
import java.util.Random;
import java.util.SplittableRandom;

/**
 * 电脑类
 */
public class Computer {


    /**
     * 出拳的方法
     */
    public int showFinger(){
        //使用随机数(1-3)出拳
    Random  a= new Random();
    int b=a.nextInt(3)+1;
    return b;
    }

}

package com.igeek.demo1;

import javax.xml.stream.events.StartDocument;
import java.awt.image.PixelInterleavedSampleModel;
import java.util.Scanner;

/**
 * 游戏类 封装了游戏的业务内容
 */
public class Game {
    //玩家
    private Player player = new Player();
    //电脑
    private Computer cpu = new Computer();

    int players;
    int cpus;
    /**
     * 开启游戏
     */
    public void  start() {
        player.setWinCount(0);
        player.setLoseCount(0);
        player.setDogfallCount(0);
        //执行游戏回合
        gameLogic();
        //显示游戏统计结果

    }
    /**
     * 每个回合的游戏内容
     */
    public void gameLogic() {
        players = player.showFinger();
        //玩家出拳
        cpus = cpu.showFinger();
        //电脑出拳
        //显示出拳结果
        System.out.println("玩家 :"+changeFinger(players));
        System.out.println("电脑 :"+changeFinger(cpus));
        //判定出拳结果
        //询问玩家是否继续游戏
        showResult();
      while(continues()==1){
           gameLogic();
       }

    }

    /**
     * 将出拳的数值转换为字符信息(石头剪刀布)的方法
     *
     * @param figer
     * @return
     */
    public String changeFinger(int figer) {
        if (figer == 1) {
            return "石头";
        } else if (figer == 2) {
            return "剪刀";
        } else {
            return "布";
        }
    }
        /**
         * 游戏结果的显示统计
         */
        public void showResult () {
           pandingResult(players,cpus);
           System.out.println("平局为:"+player.getDogfallCount());
           System.out.println("胜局为:"+player.getWinCount());
           System.out.println("败局为:"+player.getLoseCount());
        }

        public int continues(){
            System.out.println("是否继续:继续则输1;退出则输0" );
            Scanner input =new Scanner(System.in);
            int b=input.nextInt();
            return b;
     }

    public void pandingResult (int a,int b) {
        if(a==1&&b==1){
            player.setDogfallCount(player.getDogfallCount()+1);
        }else if(a==2&&b==2){
            player.setDogfallCount(player.getDogfallCount()+1);
        }else if(a==3&&b==3){
            player.setDogfallCount(player.getDogfallCount()+1);
        }else if(a==1&&b==2){
            player.setWinCount(player.getWinCount()+1);
        }else if(a==1&&b==3){
            player.setLoseCount(player.getLoseCount()+1);
        }else if(a==2&&b==1){
            player.setLoseCount(player.getLoseCount()+1);
        }else if(a==2&&b==3){
            player.setWinCount(player.getWinCount()+1);
        }else if(a==3&&b==1){
            player.setWinCount(player.getWinCount()+1);
        }else if(a==3&&b==2){
            player.setLoseCount(player.getLoseCount()+1);
        }
        }


}

package com.igeek.demo1;

import com.sun.jdi.PathSearchingVirtualMachine;

import java.util.Scanner;

/**
 * 玩家类
 */
public class Player {
    //胜场
    private  int winCount;
    //平场
    private int dogfallCount;
    //输场
    private int loseCount;

    /**
     * 出拳的方法
     */
    public int showFinger(){
        System.out.println("请输入1:石头;2:剪刀;3:布");
        Scanner input =new Scanner(System.in);
        int b=input.nextInt();
        return b;
    }

    public int getWinCount() {
        return winCount;
    }

    public void setWinCount(int winCount) {
        this.winCount = winCount;
    }

    public int getDogfallCount() {
        return dogfallCount;
    }

    public void setDogfallCount(int dogfallCount) {
        this.dogfallCount = dogfallCount;
    }

    public int getLoseCount() {
        return loseCount;
    }

    public void setLoseCount(int loseCount) {
        this.loseCount = loseCount;
    }
}


package com.igeek.demo1;

public class main {
    public static void main(String[] args) {
        Game am=new Game();
           am.start();
           }
           }
       



在这里插入图片描述

评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寻梦&之璐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值