View Javadoc
1 /*** 2 * Copyright (c) 2003 held jointly by the individual authors. 3 * 4 * This library is free software; you can redistribute it and/or modify it 5 * under the terms of the GNU Lesser General Public License as published 6 * by the Free Software Foundation; either version 2.1 of the License, or 7 * (at your option) any later version. 8 * 9 * This library is distributed in the hope that it will be useful, but 10 * WITHOUT ANY WARRANTY; with out even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 * GNU Lesser General Public License for more details. 13 * 14 * You should have received a copy of the GNU Lesser General Public License 15 * along with this library; if not, write to the Free Software Foundation, 16 * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. 17 * 18 * > http://www.gnu.org/copyleft/lesser.html 19 * > http://www.opensource.org/licenses/lgpl-license.php 20 */ 21 package net.mlw.gfw.ext.card; 22 23 import java.util.List; 24 import java.util.Random; 25 26 /*** 27 * @author Matthew L. Wilson 28 * @version $Revision: 1.4 $ $Date: 2004/06/29 20:32:54 $ 29 */ 30 public class DefaultDealer implements Dealer 31 { 32 private int numberOfPlayers; 33 private int maxNumberOfCards; 34 private Card[] cards; 35 36 public DefaultDealer(int numberOfPlayers, int maxNumberOfCards) 37 { 38 this.maxNumberOfCards = maxNumberOfCards; 39 this.numberOfPlayers = numberOfPlayers; 40 } 41 42 /*** 43 * @param cards The cards to set. 44 */ 45 public void setCards(List cards) 46 { 47 this.cards = (Card[]) cards.toArray(new Card[] { 48 }); 49 } 50 51 /*** 52 * @see net.mlw.gfw.ext.card.Dealer#deal() 53 */ 54 public DealResults deal(DealResults results, int numberOfCards) 55 { 56 Random random = new Random(); 57 58 /*** Shuffle the cards. **/ 59 for (int i = 0, length = cards.length; i < length; i++) 60 { 61 int rand = random.nextInt(length); 62 Card card = cards[i]; 63 cards[i] = cards[rand]; 64 cards[rand] = card; 65 } 66 67 /*** Deal the cards. **/ 68 for (int cardIndex = 0; cardIndex < numberOfCards; cardIndex++) 69 { 70 for (int playerIndex = 0; playerIndex < numberOfPlayers; playerIndex++) 71 { 72 int index = playerIndex + (cardIndex * numberOfPlayers); 73 results.getHandModels()[playerIndex].addCard(cards[index]); 74 cards[index] = null; 75 } 76 } 77 78 for (int i = (this.cards.length - 1);(this.cards[i] != null); i--) 79 { 80 results.getLeftOverCards().add(this.cards[i]); 81 this.cards[i] = null; 82 } 83 return results; 84 } 85 }

This page was automatically generated by Maven