哈利路亚
Let's take one million years picnic
欢迎来到Sean Cleveland的博客
JAVA学习日报 8.2

今天咱们来做一个石头剪刀布,这个是近期暑假程序设计技能实训的作业之一

虽说为了完成任务需要有一个分析出拳规律的环节,但有点麻烦所以我只做了简单到不能再简单的分析,这也算是一种折衷嘛。

代码如下:

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("这九局的胜负结果如下:\n");
           for(int i=0;i<9;i++)
           {
               System.out.print("第"+(i+1)+"局胜负为:\n");
               if(win[i]==0)
               {System.out.print("平局\n");}
               else if(win[i]==1)
               {System.out.print("用户方胜利\n");}
               else if(win[i]==2)
               {System.out.print("机器方胜利\n");}
           }
       }
};
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("请出拳\n");
             System.out.print("|1 石头| |2 剪刀| |3 布 |\n");
             cases=input.nextInt();
             while(cases>3||cases<1)
             {
                System.out.print("没有这一选项,请重新输入");
                cases=input.nextInt();
             }
             if(casec==cases)
             {
                 if(casec==1)
                 {System.out.print("石头对石头\n");w.u[i]=1;}
                 else if(casec==2)
                 {System.out.print("剪刀对剪刀\n");w.u[i]=2;}
                 else if(casec==3)
                 {System.out.print("布对布\n");w.u[i]=3;}
                 System.out.print("平局!\n");
             }
             if(cases==1)              /*胜负判断,下同*/
             {
                 if(casec==2)
                 {System.out.print("石头对剪刀\n");System.out.print("你赢了!\n");w.u[i]=1;w.win[i]=1;}
                 if(casec==3)
                 {System.out.print("石头对布\n");System.out.print("你输了!\n");w.u[i]=1;w.win[i]=2;}
             }
             if(cases==2)
             {
                 if(casec==1)
                 {System.out.print("剪刀对石头\n");System.out.print("你输了!\n");w.u[i]=2;w.win[i]=2;}
                 if(casec==3)
                 {System.out.print("剪刀对布\n");System.out.print("你赢了!\n");w.u[i]=2;w.win[i]=1;}
             }
             if(cases==3)
             {
                 if(casec==2)
                 {System.out.print("布对剪刀\n");System.out.print("你输了!\n");w.u[i]=3;w.win[i]=2;}
                 if(casec==1)
                 {System.out.print("布对石头\n");System.out.print("你赢了!\n");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("电脑分析了你的操作,变得强了一点\n");
                 System.out.print("要继续挑战吗?    Y/N\n");
                 redo=input.next();
                 if(redo!="N")
                 {i=0;}
             }
            }
     }

}

运行结果:

 

 (这个真的谜之好玩)

posted on 2020-08-02 21:16  哈利路亚#0207  阅读(94)  评论(0编辑  收藏  举报
Live2D