java 剪刀,石头,布,游戏

局数没有使用Tom类的属性调用,如果有会的,请指教一下

import java.util.Random;
import java.util.Scanner;
public class Homework014 { 
	//编写一个main方法
	public static void main(String[] args) {
		Tom t = new Tom();
		int winTime = 0;
	    int[][] arr1 = new int[3][3];
	    int j = 0;

	    String[] arr2 = new String[3];

	    int countNum = 0;
        //输入对象扫描器
	    Scanner myScanner = new Scanner(System.in);
	    for (int i = 0;i < 3 ;i++ ) {
	    	//玩家出拳
	    	System.out.println("请输入Tom要出的拳头  0-拳头,1-剪刀,2-布");
	    	int num = myScanner.nextInt();
	    	t.setTomNum(num);
	    	int tomNum = t.getTomTactic();
	    	arr1[i][j + 1] = tomNum;
	    	//电脑出拳
	    	int comNum = t.computerNum();
	    	arr1[i][j + 2] = comNum;
	    	//出拳作比较
	    	String result = t.vsResult();
	    	// arr1[i][j] = t.countNum;   //如何自加? 
	    	//字符串输出
	    	arr2[i] = result;
	    	//计数器,没有使用属性
	    	countNum ++;
	    	arr1[i][j] = countNum;
            //每单轮输出,这里和一维数组无关,并且基本调用Tom属性输出
	    	System.out.println("=========================================");                           
            System.out.println("局数\t玩家的出拳\t电脑的出拳\t输赢情况");                                             
            System.out.println(countNum + "\t" + tomNum + "\t\t" + comNum + "\t\t" + t.vsResult());
            System.out.println("=========================================");                          
            System.out.println("\n\n");                                                               
             winTime = t.winCount(result);//记录赢的次数
	    }
	    //二维数组加单列数组输出
	    System.out.println("局数\t玩家的出拳\t电脑的出拳\t\t输赢情况");
	    for (int a = 0;a < arr1.length ;a++ ) {
	    	for (int b = 0;b < arr1[a].length ;b++ ) {
	    		System.out.print(arr1[a][b] + "\t\t");//前3行3列二位数组输出
	    	}
	    	System.out.print(arr2[a]);//一维数组的字符串使用,在最后一列                                                            
            System.out.println();
	    }
	    System.out.println("共赢" + winTime + "局");
	}
}
/*有人Tom设计他的成员变量。成员方法,可以电脑猜拳。戴
电脑每次都会随机生成0,1,2,
0表示石头,1表示剪刀,2表示布
并且可以显示Tom的输赢次数(清单)

*/
class Tom  {
	// int count = 1;   //这里的计数器不知如何引用
    int tomTactic;
    int comTactic;
    int winCountNum;
    // 创建电脑的随机值
    public int computerNum() {
    	Random r = new Random();
    	comTactic = r.nextInt(3);
    	return comTactic;
    }
    //Tom输入数据不再范围的情况
    public void setTomNum(int tomTactic){
    	if (tomTactic < 0 || tomTactic > 2) {
    		throw new IllegalArgumentException("数字输入错误");
    	}
    		this.tomTactic = tomTactic;
    }
    //Tom输入数值的返回属性
    public int getTomTactic() {
    	return tomTactic;
    }
    //与电脑比,返回字符串,准备输出的字符串
    public String vsResult(){
    	if (tomTactic == 0 && comTactic == 1) {
    		return "Tom赢了";
    	} else if (tomTactic == 1 && comTactic == 2) {
    		return "Tom赢了";
    	} else if (tomTactic == 2 && comTactic == 0) {
    		return "Tom赢了";
    	} else if (tomTactic == comTactic) {
    		return "平局";
    	} else {
    		return "Tom输了";
    	}
    }
    //对Tom赢的情况进行计算,返回属性
    public int winCount(String s){
    	if (s.equals("Tom赢了")) {
    		winCountNum ++;
    	}
    	return winCountNum;
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
剪刀石头是一种经典的小游戏,我们可以使用Java程序来实现它。首先,我们需要用Scanner类获取用户的输入,然后利用Random类生成计算机的选择。接下来,我们可以使用switch语句来比较用户和计算机的选择,并根据规则判断胜负。最后,我们可以根据判断结果输出对应的信息,告诉玩家是赢了、输了还是平局。 下面是一个示例代码: ```java import java.util.Scanner; import java.util.Random; public class RockPaperScissors { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); Random random = new Random(); System.out.println("剪刀石头游戏开始!"); System.out.println("请选择:0-石头,1-,2-剪刀"); int userChoice = scanner.nextInt(); int computerChoice = random.nextInt(3); switch (userChoice) { case 0: if (computerChoice == 0) { System.out.println("平局!"); } else if (computerChoice == 1) { System.out.println("你输了!"); } else { System.out.println("你赢了!"); } break; case 1: if (computerChoice == 0) { System.out.println("你赢了!"); } else if (computerChoice == 1) { System.out.println("平局!"); } else { System.out.println("你输了!"); } break; case 2: if (computerChoice == 0) { System.out.println("你输了!"); } else if (computerChoice == 1) { System.out.println("你赢了!"); } else { System.out.println("平局!"); } break; default: System.out.println("无效的选择!"); } scanner.close(); } } ``` 请注意,上述代码仅是一个简单的示例,你可以根据需要进行修改和扩展,例如添加循环来实现多局游戏等。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值