Java 人机猜拳游戏 初版 + 最终版

本文详细介绍了一个使用Java实现的剪刀石头布游戏,通过循环和随机数生成实现了人机对战的三局两胜机制。游戏通过Scanner接收用户输入,并使用Random生成计算机的选择。
  • 剪刀石头布游戏
package package1;
import java.util.Scanner;
public class JavaTest(){
	public static void main(String[] args){
    	//人机猜拳
        //约定 1.剪刀 2.石头 3.布
        Scanner input = new Scanner(System.in);
        
        //第三次拓展,循环外加入count计数,实现 三局两胜
        
        //电脑计数器
        int cCount = 0;
        //玩家计数器
        int pCount = 0;
        
        //此处加入for循环实现 三局 (第一次拓展)
        //(第二次拓展)时更换i ++ 位置,移动到循环外
        for(int i = 1 ; i <= 3 ; ){
                       
            //这里利用random函数实现随机数(random范围:0 < random < 1 )[0到1之间]
            //然后 乘10 取值范围变为 0~9 
            //再 对3取余 得到结果只有 0 1 2 三个选项
            //最后 结果 +1 实现取值 1 2 3
            int computer =  ((int)(Math.random() * 10)) % 3 + 1 ;
                                    
            System.out.println("请输入猜拳的编号:1.剪刀 2.石头 3.布:");
            int player = input.nextInt();          
            
            //比较 判断玩家与电脑 平手 的情况
            if(player = computer){
                System.out.println("不错哟,打成平手,再接再厉!");
                
                //此处添加 continue 并将 i ++ 更换位置,达到 平局重来 的效果(第二次拓展)
                continue;
                
                //判断 玩家 赢 的情况
            }else if((player == 1 && computer == 3) || (player == 2 && computer == 1) || (player == 3 && computer == 2)){
                System.out.println("恭喜,你赢了!");
                
                //分别加入判断中(第三次拓展)
                pCount ++;
                
                //否则 输
            }else{
                System.out.println("可惜,你输啦!");
                
                //分别加入判断中(第三次拓展)
                cCount ++;
            } 
            
            //加入判断,任意一方赢两次之后结束比赛跳出(第三次拓展)
            if(cCount == 2 || pCount ==2){
            	break;//else if尝试输出哪方胜利
            }
            //将自增次数移到此处(三局)(第二次拓展)
            i ++;            
        }
    }
}

人机猜拳 最终版

//人机猜拳
//设定 1,剪刀 2,石头 3,布

package package1;

//导入Random和Scanner包
import java.util.Random;
import java.util.Scanner;

/**
 * @author Cg
 */

public class JavaTest{
    public static void main(String[] args) {
        //声明Scanner
        Scanner input = new Scanner(System.in);
        //声明Random
        Random rd = new Random();
        //设置计数器,达到三局两胜的效果,即任意一方赢两次后结束
        int cCount = 0;
        int pCount = 0;
        //采用三局两胜制,三局
        int game = 3;
        for(int i = 1 ; i <= game ; ){
            //电脑先出
            int computer = rd.nextInt(3) + 1;
            
            //此行可显示电脑猜拳编号
            //System.out.println("电脑出了" + computer);
            
            System.out.println("请输入您猜拳的编号:1.剪刀 2.石头 3.布:");
            //玩家控制从键盘输入(限定值 1剪刀 2石头 3布)
            int player = input.nextInt();
            
            //定义一个布尔变量,使得后方语句内变简洁
            boolean youWin = (computer == 1 && player == 2) || (computer == 2 && player == 3) || (computer == 3 && player == 1);
            
            if(computer == player){
                System.out.println("平局,请再来一次");
                continue;
            } else if(youWin){
                System.out.println("恭喜你,这次你赢了");
                pCount ++;
            }else{
                System.out.println("很抱歉,这次你输啦");
                cCount ++;
            }
            
            //每做完一轮后检测是否达到胜利需求
            if(pCount == 2){
                System.out.println("哎哟,精神小伙儿~你赢得了比赛");
                break;
            }else if(cCount ==2){
                System.out.println("啧啧啧,不太行啊~下次继续努力");
                break;
            }
            //将局数自增放到后面
            i ++;
        }
    }
}
//三局两胜,检测胜利,是否可以把条件 三局 去掉,只检测 两胜 ?
//测试后,通过,注解掉游戏次数,将for变成死循环后,(自增相应注解掉)只需修改胜利次数即可改变规则
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值