java吧 关注:1,235,112贴子:12,701,944
  • 17回复贴,共1

请教问题: 各位路过的大佬看看指点一下

只看楼主收藏回复

这是一个书上的练习题。
大小王是2个字符串。难道要把数组变成 String 类型吗 ?
能在现有基础上进行增加改变么
另外吐槽的 我才学到 一维数组。 -_-|| 水平有限


IP属地:湖北1楼2018-09-19 20:03回复
    给个题目


    IP属地:四川来自Android客户端2楼2018-09-19 20:07
    回复(1)
      分析: 一副牌有54张
      * int[] deck = new int[54] ;
      * 花色有 4 种 : 方片 黑桃 红桃 梅花 每样各有13张 1张 大王 1张皇后
      * 随机出4张
      * for(i = 0 ; i < 54 ; i ++)
      * sc=random()*deck.length ;
      *
      * suits / 13 决定牌花色
      * ranks % 13 决定具体花色中的哪张牌
      * 需要随机打乱数组 random shuffle :
      * for(int i = deck.length-1 ; i>0; i--){
      * int j = (int) (Math.random() *(deck.length ) ;
      * int temp = deck[i] ;
      * deck[i] = deck[j];
      * deck[i] = temp ;
      *


      IP属地:湖北3楼2018-09-19 20:32
      回复
        可以考虑1.2.3....15 让1等于ace ,11等于j 12=Q试试


        IP属地:四川来自Android客户端4楼2018-09-19 20:33
        收起回复
          if(dock[i]<52){
          System.out.println(花色+大小);
          }else if(dock[i]==52){
          System.out.println("小王");
          }else {
          System.out.println("大王");
          }


          IP属地:北京5楼2018-09-19 20:34
          收起回复

            刚运行了一边程序得到的结果 @GTA小鸡 @晨灬曦:


            IP属地:湖北6楼2018-09-19 20:40
            回复
              public class DeckOfCards{
              public static void main(String[]args) {
              int [] deck =new int [54] ; //规定扑克张数
              String[] suits = { "方片" ,"黑桃 " ,"梅花 " ," 红桃" } ;
              String [] ranks = {"Ace ","2","3","4","5","6","7","8","9","10","Jack","Queen","King" } ;
              for(int i = 0 ; i < deck.length ; i++) // 得到扑克牌的下标
              deck[i] =i ;
              for( int i =0; i< deck.length ; i++) { // 洗牌
              int j = (int) (Math.random() * deck.length ) ;
              int temp = deck[i] ; // 把现有的一张牌赋给一个临时值
              deck[i] = deck[j]; // 把随机得到的牌赋给现在的牌面
              deck[j] = temp ; // 把临时牌面的牌赋值给随机牌面
              }
              // 下面代码块不在控制牌数循环内
              for( int i = 0 ; i < deck.length-1 ; i++) {
              String suit = suits[ deck[i] / 13 ] ;
              String rank = ranks[ deck[i] % 13 ] ;
              if( i>= deck.length-1 )
              System.out.print("底牌是: "+ rank+suit );
              else if( i % 3==0)
              System.out.printf(rank+suit+ " " );
              else if(i % 3 == 1 )
              System.out.print(" "+ rank+suit );
              else if( i % 3 == 2 )
              System.out.println(" "+ rank+suit );
              }
              }
              }
              @♬晨灬曦 @GTA小鸡 我把程序贴上来了


              IP属地:湖北7楼2018-09-19 20:59
              收起回复
                用二维数组,就会很简单了,你再想想怎么做,我也懒得帮你做了,int【5】【13】;5代表方片,黑桃,梅花,红桃,王;13张代表每一种都有13张,大小王只需要2张即可


                8楼2018-09-20 09:51
                回复