lundi 5 octobre 2015

Get first value of array and store in new array php

I am trying to make card game. I have 6 variable that are stored in array. Than I use fisherYates method to randomize array, and display four of them. Problem is, when I randomize it this way only, it will give only random output of those six, with all different types. So I want that some repeats like, if you draw four cards, you get output of ex: club, club, diamond,heart, or heart, star,star,heart.. if you get a point.. I thought to do it like this way: put the array in loop of 4 times, and every time it loops, it stores first, or last value in new array, so that way, I can have greater chances of combination of same cards in output array. But I'm stuck, and I don't know how to do it :/

this is what I've tried so far

$diamond = 'cube.jpg';
$heart = 'heart.jpg';
$spade = 'spade.jpg';
$club = 'tref.jpg';
$star='star.jpg';
$qmark='qmark.jpg';

$time=microtime(35);

$arr=[$diamond,$heart,$spade,$club,$star,$qmark];

function fisherYatesShuffle(&$items, $time)
{   



    for ($i = count($items) - 1; $i > 0; $i--)
    {
        $j = @mt_rand(0, $i);
        $tmp = $items[$i];
        $items[$i] = $items[$j];
        $items[$j] = $tmp;
    }
    return $items;
}

    $i=0;
    do {

        $niz[$i]=fisherYatesShuffle($arr,$time);
        reset($niz);


        $i++;
    } while ($i <= 3);




Aucun commentaire:

Enregistrer un commentaire