今天咱们来做一个石头剪刀布,这个是近期暑假程序设计技能实训的作业之一
虽说为了完成任务需要有一个分析出拳规律的环节,但有点麻烦所以我只做了简单到不能再简单的分析,这也算是一种折衷嘛。
代码如下:
package test; import java.util.Scanner; import java.util.Random; class Winner { public int[] u= {0,0,0,0,0,0,0,0,0,0,0,0}; public int[] win={0,0,0,0,0,0,0,0,0,0,0,0}; public Winner(){} void showwin() { System.out.print("这九局的胜负结果如下: "); for(int i=0;i<9;i++) { System.out.print("第"+(i+1)+"局胜负为: "); if(win[i]==0) {System.out.print("平局 ");} else if(win[i]==1) {System.out.print("用户方胜利 ");} else if(win[i]==2) {System.out.print("机器方胜利 ");} } } }; public class Class11 { public static void main(String[] args) { int ishi=2; int hasami=5; int gu=8; int handc=0,casec=0,cases=0; String redo; Winner w=new Winner(); Random random = new Random(); Scanner input=new Scanner(System.in); for(int i=0;i<9;i++) { handc=random.nextInt(9); if(handc>=0&&handc<=ishi) { casec=1; } else if(handc>ishi&&handc<=hasami) { casec=2; } else if(handc>hasami&&handc<=gu) { casec=3; } System.out.print("请出拳 "); System.out.print("|1 石头| |2 剪刀| |3 布 | "); cases=input.nextInt(); while(cases>3||cases<1) { System.out.print("没有这一选项,请重新输入"); cases=input.nextInt(); } if(casec==cases) { if(casec==1) {System.out.print("石头对石头 ");w.u[i]=1;} else if(casec==2) {System.out.print("剪刀对剪刀 ");w.u[i]=2;} else if(casec==3) {System.out.print("布对布 ");w.u[i]=3;} System.out.print("平局! "); } if(cases==1) /*胜负判断,下同*/ { if(casec==2) {System.out.print("石头对剪刀 ");System.out.print("你赢了! ");w.u[i]=1;w.win[i]=1;} if(casec==3) {System.out.print("石头对布 ");System.out.print("你输了! ");w.u[i]=1;w.win[i]=2;} } if(cases==2) { if(casec==1) {System.out.print("剪刀对石头 ");System.out.print("你输了! ");w.u[i]=2;w.win[i]=2;} if(casec==3) {System.out.print("剪刀对布 ");System.out.print("你赢了! ");w.u[i]=2;w.win[i]=1;} } if(cases==3) { if(casec==2) {System.out.print("布对剪刀 ");System.out.print("你输了! ");w.u[i]=3;w.win[i]=2;} if(casec==1) {System.out.print("布对石头 ");System.out.print("你赢了! ");w.u[i]=3;w.win[i]=1;} } if(i==8) /*权重分析*/ { ishi=0;hasami=0;gu=0; for(int j=0;j<9;j++) { if(w.u[j]==1) {gu++;} if(w.u[j]==2) {ishi++;} if(w.u[j]==3) {hasami++;} } w.showwin(); System.out.print("电脑分析了你的操作,变得强了一点 "); System.out.print("要继续挑战吗? Y/N "); redo=input.next(); if(redo!="N") {i=0;} } } } }
运行结果:
(这个真的谜之好玩)