Jump to content

Shane_N

New Members
  • Posts

    4
  • Joined

  • Last visited

Everything posted by Shane_N

  1. Kicken - thank you for taking the time to help - ill have a play with you you have provided and see where it takes me - thankyou!
  2. PS the output from my changes i tried above can be viewed here: http://culmstocklights.com/bingo-dev.php as you can see it simply creates extra rows with sequesnced numbers this is generated byu the following code: <?php /* Random bingo Generator - by Shane Nelson */ DEFINE('BR', "<br />\n"); $number_of_cards = 6; // the amount of unique cards to generate. don't make too many! $columns = array( range(1,9), range(10,19), range(20,29), range(30,39), range(40,49), range(50,59), range(60,69), range(70,79), range(80,89), range(90,99) ); $bingo_cards = array(); $card_hashes = array(); $i = 0; /* GENERATE THE CARDS */ while($i < $number_of_cards) { $bingo_card = array(); for($j=0; $j<5; $j++) { $random_keys = array_rand($columns[$j], 9); $random_values = array_intersect_key($columns[$j], array_flip($random_keys)); // http://stackoverflow.com/a/18047331/3625228 $bingo_card = array_merge($bingo_card, $random_values); } // generate a unique hash for this card and compare it to the ones we already have $card_hash = md5(json_encode($bingo_card)); // or whatever hashing algorithm is preferred if(!in_array($card_hash, $card_hashes)) { $bingo_cards[] = $bingo_card; $card_hashes[] = $card_hash; $i += 1; } if($i > 10000) break; // safety exit } /* OUTPUT, if needed (output with monospace font). could be made into an html table. */ foreach($bingo_cards as $card) { for($k=0; $k<(sizeof($card)/5); $k++) { echo(str_pad($card[$k], 2, ' ', STR_PAD_LEFT).' | '); echo($card[$k+5].' | '); echo($card[$k+10].' | '); echo($card[$k+15].' | '); echo($card[$k+20].BR); if($k < 4) echo(str_repeat('-', 22).BR); } echo(BR.BR); } ?>
  3. gw1500se, thank you for your repsonse - i was hoping that given the non commecial - comunity nature of this request that your answer may have been a little more charitable, im a complete beginner to PHP so really dont understand the code. That said i have tried what you suggested already I spotted the: $columns = array( range(1,15), range(16,30), range(31,45), range(46,60), range(61,90) ); part and expanded this to 9 'ranges' with the number outputs i was looking for i then changed $random_keys = array_rand($columns[$j], 5); to $random_keys = array_rand($columns[$j], 9); hoping that would solve my problem however the output didnt match my expecations i suspect thats becuase the output is driven from here: foreach($bingo_cards as $card) { for($k=0; $k<(sizeof($card)/5); $k++) { echo(str_pad($card[$k], 2, ' ', STR_PAD_LEFT).' | '); echo($card[$k+5].' | '); echo($card[$k+10].' | '); echo($card[$k+15].' | '); echo($card[$k+20].BR); if($k < 4) echo(str_repeat('-', 22).BR); } echo(BR.BR); however thats so far away from my basic HTML knowledge that i cant even begin to see what i might change here to fix it!
  4. Hi All, im a beginner so please bear with me - as part of teh COVID-19 response we have been running a little free bingo night for our local village the numbers are called on facebook live on a saturday night and the village join in for a bit of fun, its taken off well and were finding that issuing the tickets is taking all day so were trying to simplify it - Ive got half way there with a peice of code i found online - but i cant quite get 'the whole way'! Wouldbe greatful if someone could helpo with a few issues! <?php DEFINE('BR', "<br />\n"); $number_of_cards = 6; // the amount of unique cards to generate. don't make too many! $columns = array( range(1,15), range(16,30), range(31,45), range(46,60), range(61,90) ); $bingo_cards = array(); $card_hashes = array(); $i = 0; /* GENERATE THE CARDS */ while($i < $number_of_cards) { $bingo_card = array(); for($j=0; $j<5; $j++) { $random_keys = array_rand($columns[$j], 5); $random_values = array_intersect_key($columns[$j], array_flip($random_keys)); // http://stackoverflow.com/a/18047331/3625228 $bingo_card = array_merge($bingo_card, $random_values); } // generate a unique hash for this card and compare it to the ones we already have $card_hash = md5(json_encode($bingo_card)); // or whatever hashing algorithm is preferred if(!in_array($card_hash, $card_hashes)) { $bingo_cards[] = $bingo_card; $card_hashes[] = $card_hash; $i += 1; } if($i > 10000) break; // safety exit } /* OUTPUT, if needed (output with monospace font). could be made into an html table. */ foreach($bingo_cards as $card) { for($k=0; $k<(sizeof($card)/5); $k++) { echo(str_pad($card[$k], 2, ' ', STR_PAD_LEFT).' | '); echo($card[$k+5].' | '); echo($card[$k+10].' | '); echo($card[$k+15].' | '); echo($card[$k+20].BR); if($k < 4) echo(str_repeat('-', 22).BR); } echo(BR.BR); } ?> This code does what i need - sort of but creates a grid / table /array (?) thats 5 rows / 5 columns - what i would like to do is replciate (as close as possible) the tickets we have been sending out for the last few weeks these are 3 rows per ticket and 9 columns with the numbers 1-9 in C1, 10-19 in C2, 20-29 in c3 etc tec this makes it easy for older users to find the numbers while they are been called - see example below So far ive achieved this: http://culmstocklights.com/bingo.php each user visiting the page is presented with 3 Games (Green Pink and Brown) and 6 sets of numbers in each game (thats how we do it at the moment) Im 75% of the way there just need to get this to 3 rows and 9 columns per game and if possible randomly add the blanks. Any help would be massivly appreciated! Thanks in advance
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.