⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 deck.java

📁 java learn PPT java learn PPT java learn PPT java learn PPT
💻 JAVA
字号:
     import java.util.*;

     // 表示任何数量的一副牌
     public class Deck
     {
          // Card对象的栈
          protected Stack cards;

          // 所有已取出牌的集合
          protected List drawnCards;

          // 在上面的列表中允许随机获取
          protected Random random;

          // 按照给定的数量创建一个Deck 
          public Deck(int size)
          {
               // 把给定数目的牌压入栈中
               cards = new Stack();
               for(int i = 0; i < size; i++)
               {
                    cards.push(new Card(i));
               }

               // 为已取出的牌创建一个池,并创建数字产生器
               drawnCards = new ArrayList();
               random = new Random();

               // 洗牌
               shuffle();
          }

          // 返回和这幅牌相关的数字
          public int getSize()
          {
               return cards.size() + drawnCards.size();
          }

          // 从顶部取牌
          public Card draw()
          {
               // 如果栈为空,使用使用取出的牌填充
               if(cards.isEmpty())
               {
                    shuffle();
               }

               // 弹出顶部的牌,把它加到堆中,然后返回它 
               Object card = cards.pop(); 
               drawnCards.add(card); 
               return (Card)card;              
          }

          // 随机取出一张牌
          public void shuffle()
          {
               // 清空栈
               while(!cards.isEmpty())
               {
                    drawnCards.add(cards.pop());
               }

               // 把取出的牌随机放回到栈中
               Object card = null;
               while(!drawnCards.isEmpty())
               {
                    card = drawnCards.remove(Math.abs(random.nextInt())%drawnCards.size());
                    cards.push(card);
               }
          }
     }    // Deck

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -