简单的石头、剪刀、布小游戏(一)

简单的石头、剪刀、布小游戏

描述:可以在intellij IDE控制台就行小型的猜拳游戏。

import java.util.Random;
import java.util.Scanner;

/**

  • @author zangye03@gmail.com

  • @date 2019/11/18 16:31
    */
    public class Test {

    public static void main(String[] args){
    Scanner sc=new Scanner(System.in);
    boolean loop=true;
    int[] arr = new int[10];
    int[] arr1 = new int[10];
    boolean key=false;//检查是否登录
    boolean key1=true;//检查是否继续游戏
    int name=0;//当前玩家
    int namei=0;//玩家对应的分数
    int count=0;

     while (loop){
         System.out.println("石头剪刀布游戏");
         System.out.println("1、注册");
         System.out.println("2、登录");
         System.out.println("3、注销");
         System.out.println("4、排行榜");
         System.out.println("5、游戏");
         System.out.println("6、退出");
    
         int fs=sc.nextInt();
    
    
         switch (fs){
             case 1:
                 System.out.println("请输入注册的用户名:");
                 int um = sc.nextInt();
    
                 int i = register(um,arr);
                 if(i == 1){
                     System.out.println("用户注册成功!");
                 }else {
                     System.out.println("用户注册失败!");
                 }
    
                 System.out.println("-------------");
                 break;
             case 2:
                 System.out.println("请输入登录的用户名:");
                 int um1 = sc.nextInt();
    
                 int j = login(um1,arr);
                 if(j == 1){
                     System.out.println("用户登录成功!");
                     name=um1;
                 }else {
                     System.out.println("用户登录失败!");
                 }
                 key=true;
                 System.out.println("-------------");
                 break;
             case 3:
                 System.out.println("请输入注销的用户名:");
                 int um2 = sc.nextInt();
    
                 int k = detory(um2,arr,arr1);
                 if(k == 1){
                     System.out.println("用户注销成功!");
                 }else {
                     System.out.println("用户注销失败!");
                 }
                 key=false;
                 System.out.println("-------------");
                 break;
             case 4:
                 dayin(arr,arr1);
    
                 System.out.println("-------------");
                 break;
             case 5:
                 if(key){
                     while (key1){
                         System.out.println("请输入你的选择://定义1-拳头,2-剪刀,3-布");
                         int fsy=sc.nextInt();
                         int l=game(fsy);
                         if(l == 1){
                             count++;
                             System.out.println("恭喜你赢得这场比赛!");
                         }else if(l == -1){
                             count--;
                             System.out.println("很不幸你输了!");
                         }else{
                             System.out.println("平局");
                         }
    
                         System.out.println("请确认是否继续游戏:1继续,0退出");
                         int fsz=sc.nextInt();
                         if(fsz==1){
                             key1=true;
                         }else{
                             key1=false;
                         }
    
    
                         for(int asd = 0;asd<arr.length;asd++){
                             if(name == arr[asd]){
                                 namei=asd;
                             }
                         }
                         System.out.println("你的分数是"+count);
                         arr1[namei]=count;
    
                     }
                     count=0;
                     key1=true;
    
                 }else{
                     System.out.println("请登录!!!");
                 }
    
    
                 System.out.println("-------------");
                 break;
             case 6:
                 //退出
                 sc.close();
                 loop=false;
                 break;
             default:
                 break;
         }
     }
    

    }

    // 1.用户注册
    public static int register(int uname,int[] arr) {
    //判断传来的数据是否合法
    if (uname <= 0){
    return -1;
    }

     //判断用户名是否存在
     for(int i = 0;i<arr.length;i++){
         //跟存在的用户比较
         if(arr[i] != 0){
             if(uname == arr[i]){
                 return -1;
             }
         }else{
             //注册成功把数据保存起来
             arr[i] = uname;
             break;
         }
     }
     return 1;
    

    }

    //2.用户登录
    public static int login(int uname,int[] arr){
    //判断传来的数据是否合法
    if(uname<=0){
    return -1;
    }

     //判断用户名是否存在
     for(int i=0;i<arr.length;i++){
         if(arr[i]!=0){
             if(uname == arr[i]){
                 //登录成功
                 return 1;
             }
         }else{
             //登录失败
             break;
         }
     }
     return -1;
    

    }

    //3.用户注销
    public static int detory(int uname, int[] arr,int[] arr1){
    //判断传来的数据是否合法
    if(uname<=0){
    return -1;
    }

     //判断用户名是否存在
     for(int i=0;i<arr.length;i++){
         if(arr[i]!=0){
             if(uname == arr[i]){
                 //注销成功
                 arr[i]=0;
                 arr1[i]=0;
                 return 1;
             }
         }else{
             //注销失败
             break;
         }
     }
     return -1;
    

    }

    //4.查看排行榜获取分数最高的前10个用户信息获取用户信息
    public static int dayin(int[] arr,int arr1[]){

     //选择排序
     for(int i=0;i<arr1.length-1;i++) {
         int maxIndex=i;
         int max=arr1[i];
         int max1=arr[i];
         for(int j=i+1;j<arr.length;j++) {
             if(max<arr1[j]) {
                 //说明假定的最小值,并不是最小
                 max=arr1[j];//重置min,将最小的给了min
                 max1=arr[j];//
                 maxIndex=j;//重置minIndex,将最小的id给了minIndex
             }
         }
    
         //将最小值,放在arr[0],及交换
         if(maxIndex!=i) {
             arr1[maxIndex]=arr1[i];
             arr1[i]=max;
             arr[maxIndex]=arr[i];
             arr[i]=max1;
         }
     }
    
    
    
    
     for(int a:arr){
         System.out.print("("+a+")");
     }
     System.out.println();
     for(int a:arr1){
         System.out.print("("+a+")");
     }
     System.out.println();
     return 1;
    

    }

    //5.游戏
    public static int game(int fsy){
    //定义1-拳头,2-剪刀,3-布
    Random random=new Random();
    int fsx=random.nextInt(3)+1;
    if((fsy1&&fsx2)||(fsy2&&fsx3)||(fsy3&&fsx1)){

         return 1;
     }else if((fsy==1&&fsx==3)||(fsy==2&&fsx==1)||(fsy==3&&fsx==2)){
    
         return -1;
     }else{
         return 0;
     }
    

    }
    }

备注:这个小游戏仅供参考,稍微提醒下他有个小bug,希望大家帮忙改一下。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值