Click here to Skip to main content
15,921,989 members
Home / Discussions / C#
   

C#

 
QuestionDrawing cards from a deck Pin
Tony Pottier15-Jan-09 2:18
Tony Pottier15-Jan-09 2:18 
AnswerRe: Drawing cards from a deck Pin
CPallini15-Jan-09 2:41
mveCPallini15-Jan-09 2:41 
GeneralRe: Drawing cards from a deck Pin
Tony Pottier15-Jan-09 4:01
Tony Pottier15-Jan-09 4:01 
AnswerRe: Drawing cards from a deck Pin
benjymous15-Jan-09 2:50
benjymous15-Jan-09 2:50 
GeneralRe: Drawing cards from a deck Pin
Tony Pottier15-Jan-09 4:03
Tony Pottier15-Jan-09 4:03 
GeneralRe: Drawing cards from a deck Pin
Tony Pottier15-Jan-09 4:16
Tony Pottier15-Jan-09 4:16 
GeneralRe: Drawing cards from a deck Pin
benjymous15-Jan-09 4:55
benjymous15-Jan-09 4:55 
GeneralRe: Drawing cards from a deck Pin
Guffa15-Jan-09 5:56
Guffa15-Jan-09 5:56 
Don't move the data around so much... Instead of shifting half the deck to remove a card, just move the last card into the empty slot.

Runs in 125 ms. on my puter: Smile | :)
public class Deck {

	private int[] _cards;
	private int _used;
	private Random _rnd;

	public Deck() {
		_cards = new int[52];
		_used = 0;
		_rnd = new Random();
	}

	public void Init() {
		for (int i = 0; i < 52; i++) {
			_cards[i] = i;
		}
		_used = 52;
	}

	public void GetHand(int[] hand) {
		for (int i=0;i<5;i++) {
			int index = _rnd.Next(_used);
			hand[i] = _cards[index];
			_used--;
			_cards[index] = _cards[_used];
		}
	}

}

Deck deck = new Deck();
int[] hand = new int[5];
for (int i = 0; i < 1000000; i++) {
	deck.Init();
	deck.GetHand(hand);
}


Despite everything, the person most likely to be fooling you next is yourself.

AnswerRe: Drawing cards from a deck [modified] Pin
Luc Pattyn15-Jan-09 5:38
sitebuilderLuc Pattyn15-Jan-09 5:38 
GeneralRe: Drawing cards from a deck Pin
Guffa15-Jan-09 6:32
Guffa15-Jan-09 6:32 
GeneralRe: Drawing cards from a deck Pin
Tony Pottier15-Jan-09 6:40
Tony Pottier15-Jan-09 6:40 
AnswerRe: Drawing cards from a deck [modified] Pin
Luc Pattyn15-Jan-09 6:42
sitebuilderLuc Pattyn15-Jan-09 6:42 
GeneralRe: Drawing cards from a deck Pin
Guffa15-Jan-09 6:55
Guffa15-Jan-09 6:55 
AnswerRe: Drawing cards from a deck [modified] Pin
Luc Pattyn15-Jan-09 6:59
sitebuilderLuc Pattyn15-Jan-09 6:59 
GeneralRe: Drawing cards from a deck Pin
Tony Pottier15-Jan-09 7:27
Tony Pottier15-Jan-09 7:27 
AnswerRe: Drawing cards from a deck [modified] Pin
Luc Pattyn15-Jan-09 7:31
sitebuilderLuc Pattyn15-Jan-09 7:31 
AnswerRe: Drawing cards from a deck Pin
Henry Minute15-Jan-09 12:34
Henry Minute15-Jan-09 12:34 
GeneralRe: Drawing cards from a deck Pin
Tony Pottier15-Jan-09 12:42
Tony Pottier15-Jan-09 12:42 
QuestionWildcards Pin
boiDev15-Jan-09 2:15
boiDev15-Jan-09 2:15 
AnswerRe: Wildcards Pin
SeMartens15-Jan-09 2:24
SeMartens15-Jan-09 2:24 
AnswerRe: Wildcards [modified] PinPopular
EliottA15-Jan-09 2:52
EliottA15-Jan-09 2:52 
GeneralRe: Jerkface Pin
EliottA15-Jan-09 3:09
EliottA15-Jan-09 3:09 
GeneralRe: Jerkface Pin
DaveyM6915-Jan-09 3:30
professionalDaveyM6915-Jan-09 3:30 
GeneralRe: Jerkface Pin
EliottA15-Jan-09 3:36
EliottA15-Jan-09 3:36 
GeneralRe: Jerkface Pin
DaveyM6915-Jan-09 3:40
professionalDaveyM6915-Jan-09 3:40 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.