Report abuse

<?
header("Content-type: text/plain");

// Establishes the pool of cards
$cardPool = array('Spade', 'Heart', 'Diamond', 'Club');

// Sorts them alphabetically
sort($cardPool);

// Displays cardpool
print_r($cardPool);

// We want to count each try to get 10 hearts and first we set the counter to zero
$tryCounter = 0;

do {

	// Add 1 to the number of tries we've done
	$tryCounter++;

	// Establish and reset the "hand"
	$hand = array();

	// Tell our program to do something 10 times
	for($run = 1; $run <= 10; $run++) {

		// Randomly pick one card from the cardpool			
		$pickedCard = $cardPool[array_rand($cardPool)];

		// Accumulate the number of "picked card" in the hand by one
		$hand[$pickedCard]++;
	}

	//printf("Hearts after run %u: %u\n", $run, $cardSet['Heart']);

	// We have this to avoid making the program run infinitely if we screw up the code
	if( $tryCounter > 10000000 ) {
		break;
	}

// At end of try, see if we have 10 Hearts in hand, if so, stop loop
} while( $hand['Heart'] < 10 ); 

// Display a report on how many runs it took to gain a hand of only hearts
printf("Result reached after %u runs\n", $tryCounter);

// Print the full hand
print_r($hand);