Java剪刀石头布代码

第一个文件 game1

import java.util.Scanner;

public class game1 {
    public static void main(String[] args) {
        //定义全局变量,玩家名字player_name,电脑名字com_name,玩家出拳player_choice,电脑出拳com_choice
        String player_name;
        String com_name;
        int player_choice;
        int com_choice;
        //按照流程写程序
        //欢迎界面
        System.out.println("**********************************");
        System.out.println("    游戏:剪刀石头布");
        System.out.println("                作者:XXXXXX");
        System.out.println("                版本:v1.0");
        System.out.println("*********************************");
        System.out.println("欢迎进入本游戏,请输出游戏玩家的名字:");
        //获取输入设备
        Scanner scanner = new Scanner(System.in);
        //结合上下文的变量来决定当前等式的变量,nextLine()游戏玩家的名字可以带空格
        player_name=scanner.nextLine();
        //选择电脑的玩家
        System.out.println("********************************");
        System.out.println("1-----蜡笔小新");
        System.out.println("2-----葫芦娃");
        System.out.println("*********************************");
        //需要用户选择玩家
        String com_no=scanner.next();
        if (com_no.equals("1")){
            com_name="蜡笔小新";
        }else if(com_no.equals("2")){
            com_name="葫芦娃";
        }else{
            com_name="匿名用户";
        }
        //玩家出拳
        System.out.println("****请玩家选择出拳的代表数字*********");
        System.out.println("1------剪刀");
        System.out.println("2------石头");
        System.out.println("3------布");
        System.out.println("*********************************");
        //玩家出拳为了运算方便,使用数字,next()接收的是字符串,如果用户输入1.2
        player_choice=scanner.nextInt();
        //电脑出拳(Math.random()产生0-1 +1 1-2 Math.round四舍五入取整( 1,2),如果把Math.random()扩大2倍 0-2 +1 1-3
        //把Math.random()*2扩大2倍,再加1,再round四舍五入,就会把数字变成1,2,3
        //这里(int)强制转化,把long型的8个字节,只用4个字节存储,丢掉了4个字节,这里只有1,2,3
        com_choice=(int)Math.round(Math.random()*2+1);
        //判断数值计算用==
        if(player_choice-com_choice==1 || player_choice-com_choice==-2){
            System.out.println("玩家:"+player_name+"赢");
        }else if(com_choice-player_choice==1 || com_choice-player_choice==-2){
            System.out.println("电脑:"+com_name+"赢");
        }else{
            System.out.println("平局");
        }
    }
}

第二个文件

import java.util.Scanner;

public class game1_modi {
    public static void main(String[] args) {
        //定义全局变量,玩家名字player_name,电脑名字com_name,玩家出拳player_choice,电脑出拳com_choice
        String player_name;
        String com_name;
        int player_choice;
        int com_choice;
        //增加的bug变量,玩家的出拳名称 player_choice_name 电脑出拳名称 com_choice_name
        String player_choice_name;
        String com_choice_name;
        //按照流程写程序
        //欢迎界面
        System.out.println("**********************************");
        System.out.println("    游戏:剪刀石头布");
        System.out.println("                作者:XXXXXX");
        System.out.println("                版本:v1.1");
        System.out.println("*********************************");
        System.out.println("欢迎进入本游戏,请输出游戏玩家的名字:");
        //获取输入设备
        Scanner scanner = new Scanner(System.in);
        //结合上下文的变量来决定当前等式的变量,nextLine()游戏玩家的名字可以带空格
        player_name=scanner.nextLine();
        //玩家可能输入空格,哪一个结果为true,就是player_name的变量内容
//        System.out.println(player_name.equals(""));
        //这个变量的空格也可能是多个,包含空格 contains,这种 contains包含空格,但是中间也有,中间有合法
        //只有player变量全是空格,不合法,trim()方法去掉字符串开头和结尾的空格
//        System.out.println(player_name.trim().equals(""));
        if(player_name.trim().equals("")){
            player_name="匿名玩家";
        }
//        if(player_name)
        //选择电脑的玩家
        System.out.println("********************************");
        System.out.println("1-----蜡笔小新");
        System.out.println("2-----葫芦娃");
        System.out.println("*********************************");
        //需要用户选择玩家
        String com_no=scanner.next();
        if (com_no.equals("1")){
            com_name="蜡笔小新";
        }else if(com_no.equals("2")){
            com_name="葫芦娃";
        }else{
            com_name="匿名用户";
        }
        //玩家出拳
        System.out.println("****请玩家选择出拳的代表数字*********");
        System.out.println("1------剪刀");
        System.out.println("2------石头");
        System.out.println("3------布");
        System.out.println("*********************************");
        //玩家出拳为了运算方便,使用数字,next()接收的是字符串,如果用户输入1.2
//        player_choice=scanner.nextInt();
        //因为变量player_choice是int型,直接接收可能会报错,这里使用字符串变量
        String tmp_choice=scanner.next();
        if(tmp_choice.equals("1") || tmp_choice.equals("2")||tmp_choice.equals("3")){
            //因为不同类型String转化成整理,用到整型的大写Integer,调用parseInt方法,除char型和int型
            //前面类型全称大写.parse类型,如Integer.parseInt,把后面变量的类型转化成需要的类型
            player_choice=Integer.parseInt(tmp_choice);
        }else{
            //如果用户的选择在1,2,3之外,就随机给一个
            player_choice=(int)Math.round(Math.random()*2+1);
        }
        //根据player_choice的名字,决定player_choice_name的名字,这里player_choice只有1,2,3
        if(player_choice==1){
            player_choice_name="剪刀";
        }else if(player_choice==2){
            player_choice_name="石头";
        }else{
            player_choice_name="布";
        }
        //当用户出拳出的是1.2,看player_choice
//        System.out.println(player_choice);
        //电脑出拳(Math.random()产生0-1 +1 1-2 Math.round四舍五入取整( 1,2),如果把Math.random()扩大2倍 0-2 +1 1-3
        //把Math.random()*2扩大2倍,再加1,再round四舍五入,就会把数字变成1,2,3
        //这里(int)强制转化,把long型的8个字节,只用4个字节存储,丢掉了4个字节,这里只有1,2,3
        com_choice=(int)Math.round(Math.random()*2+1);
        //如果你采用0,1,2,直接用(int)Math.random()*3
        //也要判断电脑的出拳名称
        if(com_choice==1){
            com_choice_name="剪刀";
        }else if(com_choice==2){
            com_choice_name="石头";
        }else{
            com_choice_name="布";
        }
        //判断数值计算用==
        if(player_choice-com_choice==1 || player_choice-com_choice==-2){
            System.out.println("玩家:"+player_name+",出拳:"+player_choice_name+"赢");
            System.out.println("电脑:"+com_name+",出拳:"+com_choice_name+"输");
        }else if(com_choice-player_choice==1 || com_choice-player_choice==-2){
            System.out.println("电脑:"+com_name+",出拳:"+com_choice_name+"赢");
            System.out.println("玩家:"+player_name+",出拳:"+player_choice_name+"输");
        }else{
            System.out.println("电脑:"+com_name+",出拳:"+com_choice_name+"平局");
            System.out.println("玩家:"+player_name+",出拳:"+player_choice_name+"平局");
        }
    }
}

第三个文件

import java.util.Scanner;

public class game1_modi2 {
    public static void main(String[] args) {
        //定义全局变量,玩家名字player_name,电脑名字com_name,玩家出拳player_choice,电脑出拳com_choice
        String player_name;
        String com_name;
        int player_choice;
        int com_choice;
        //增加的bug变量,玩家的出拳名称 player_choice_name 电脑出拳名称 com_choice_name
        String player_choice_name;
        String com_choice_name;
        //按照流程写程序
        //欢迎界面
        System.out.println("**********************************");
        System.out.println("    游戏:剪刀石头布");
        System.out.println("                作者:XXXXXX");
        System.out.println("                版本:v1.2");
        System.out.println("*********************************");
        System.out.println("欢迎进入本游戏,请输出游戏玩家的名字:");
        //获取输入设备
        Scanner scanner = new Scanner(System.in);
        //结合上下文的变量来决定当前等式的变量,nextLine()游戏玩家的名字可以带空格
        player_name=scanner.nextLine();
        //玩家可能输入空格,哪一个结果为true,就是player_name的变量内容
//        System.out.println(player_name.equals(""));
        //这个变量的空格也可能是多个,包含空格 contains,这种 contains包含空格,但是中间也有,中间有合法
        //只有player变量全是空格,不合法,trim()方法去掉字符串开头和结尾的空格
//        System.out.println(player_name.trim().equals(""));
        if(player_name.trim().equals("")){
            player_name="匿名玩家";
        }
//        if(player_name)
        //选择电脑的玩家
        System.out.println("********************************");
        System.out.println("1-----蜡笔小新");
        System.out.println("2-----葫芦娃");
        System.out.println("*********************************");
        //需要用户选择玩家
        String com_no=scanner.next();
        //把if换成switch.switch结构
        /*
            swtich (变量名){
            case 值1:break;
            case 值2:break;
            default(其它):
         */
        switch(com_no){
            case "1":
                com_name="蜡笔小新";
                break;
            case "2":
                com_name="葫芦娃";
                break;
            default:
                com_name="匿名用户";
        }
//        if (com_no.equals("1")){
//            com_name="蜡笔小新";
//        }else if(com_no.equals("2")){
//            com_name="葫芦娃";
//        }else{
//            com_name="匿名用户";
//        }
        //玩家出拳
        System.out.println("****请玩家选择出拳的代表数字*********");
        System.out.println("1------剪刀");
        System.out.println("2------石头");
        System.out.println("3------布");
        System.out.println("*********************************");
        //玩家出拳为了运算方便,使用数字,next()接收的是字符串,如果用户输入1.2
//        player_choice=scanner.nextInt();
        //因为变量player_choice是int型,直接接收可能会报错,这里使用字符串变量
        String tmp_choice=scanner.next();
        //把if改成switch
        switch(tmp_choice){
            case "1":
                player_choice=Integer.parseInt(tmp_choice);
                break;
            case "2":
                player_choice=Integer.parseInt(tmp_choice);
                break;
            case "3":
                player_choice=Integer.parseInt(tmp_choice);
                break;
            default:
                player_choice=(int)Math.round(Math.random()*2+1);

        }
//        if(tmp_choice.equals("1") || tmp_choice.equals("2")||tmp_choice.equals("3")){
//            //因为不同类型String转化成整理,用到整型的大写Integer,调用parseInt方法,除char型和int型
//            //前面类型全称大写.parse类型,如Integer.parseInt,把后面变量的类型转化成需要的类型
//            player_choice=Integer.parseInt(tmp_choice);
//        }else{
//            //如果用户的选择在1,2,3之外,就随机给一个
//            player_choice=(int)Math.round(Math.random()*2+1);
//        }
        //根据player_choice的名字,决定player_choice_name的名字,这里player_choice只有1,2,3
//        if(player_choice==1){
//            player_choice_name="剪刀";
//        }else if(player_choice==2){
//            player_choice_name="石头";
//        }else{
//            player_choice_name="石头";
//        }
        //把if改成switch
        switch(player_choice){
            case 1:
                player_choice_name="剪刀";
                break;
            case 2:
                player_choice_name="石头";
                break;
            default:
                player_choice_name="布";

        }
        //当用户出拳出的是1.2,看player_choice
//        System.out.println(player_choice);
        //电脑出拳(Math.random()产生0-1 +1 1-2 Math.round四舍五入取整( 1,2),如果把Math.random()扩大2倍 0-2 +1 1-3
        //把Math.random()*2扩大2倍,再加1,再round四舍五入,就会把数字变成1,2,3
        //这里(int)强制转化,把long型的8个字节,只用4个字节存储,丢掉了4个字节,这里只有1,2,3
        com_choice=(int)Math.round(Math.random()*2+1);
        //如果你采用0,1,2,直接用(int)Math.random()*3
        //也要判断电脑的出拳名称
//        if(com_choice==1){
//            com_choice_name="剪刀";
//        }else if(com_choice==2){
//            com_choice_name="石头";
//        }else{
//            com_choice_name="布";
//        }
        switch(com_choice){
            case 1:
                com_choice_name="剪刀";
                break;
            case 2:
                com_choice_name="石头";
                break;
            default:
                com_choice_name="布";

        }
        //判断数值计算用==
        if(player_choice-com_choice==1 || player_choice-com_choice==-2){
            System.out.println("玩家:"+player_name+",出拳:"+player_choice_name+"赢");
            System.out.println("电脑:"+com_name+",出拳:"+com_choice_name+"输");
        }else if(com_choice-player_choice==1 || com_choice-player_choice==-2){
            System.out.println("电脑:"+com_name+",出拳:"+com_choice_name+"赢");
            System.out.println("玩家:"+player_name+",出拳:"+player_choice_name+"输");
        }else{
            System.out.println("电脑:"+com_name+",出拳:"+com_choice_name+"平局");
            System.out.println("玩家:"+player_name+",出拳:"+player_choice_name+"平局");
        }
    }
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值