Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Nejefektivnější vytvoření tabulek pro bingo

Zdarec. Mám vytvořit bingo pro několik desítek lidí. A aby to bylo rychlejší (pro ně), tak mám už předem vytisknout tabulky o rozměru 5x5 číslic.

Jak mám ale udělat to, aby se mi třeba několik desítek těchto tabulek automaticky vytvořilo s tím, že v žádné tabulce nebudou duplicitní hodnoty? Šlo by to nějak udělat v excelu? Protože jediný způsob, který mě napadá, je pomocí php a do toho se mi nechce.

Zkrátka a jasně - jak mám vytvořit několik tabulek 5x5 s čísly (třeba od 1-35, abych si ověřil funkci duplucity) tak, aby se v dané tabulce neobjevovaly duplicity?

Předem děkuji za rady. :)

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Tak obecne vyberes nahodne cislo, hodis ho do ty tabulky, pak vyberes dalsi cislo, zkontrolujes dupl… nový
Dwane Dibbley 30.08.2016 14:37
Dwane Dibbley
No, nakonec jsem si to sepsal sám pomocí php. :-D Takto to vypadá (design jsem neřešil nějak). Jinak… poslední
Vilak 31.08.2016 14:07
Vilak

Tak obecne vyberes nahodne cislo, hodis ho do ty tabulky, pak vyberes dalsi cislo, zkontrolujes duplicitu se vsemi predchozimi hodnotami a v pripade duplicity udelas "reroll" a znovu zkontrolujes.
Pokud mas ale vybrat hodne cisel z maleho rozsahu, mozna by bylo efektivnejsi udelat jednorozmerne pole se vsemi prvky a nahodne z neho vybrat a dany prvek z pole vytahnout. Pak nemusis resit duplicitu a spoustu "rerollu".

No, nakonec jsem si to sepsal sám pomocí php. :-D Takto to vypadá (design jsem neřešil nějak). Jinak díky za pomoc. :)

<!DOCTYPE html>
<html>
<head>
	<title>Figarovo bingíčko :3 :3</title>
	<meta charset="utf-8">
	<style type="text/css">
		.bingo_div {margin: 20px; float: left;}
	</style>
</head>
<body>
	<?php
		$size_min = 1;
		$size_max = 25;
		$numbers = array();
		function get_number($size_min, $size_max, $numbers) {
			$number = rand($size_min, $size_max);
			if (in_array($number, $numbers)) {
				$number = rand($size_min, $size_max);
				$c = 1;
				while ($c == 1) {
					if (in_array($number, $numbers)) {
						$number = rand($size_min, $size_max);
						$c = 1;
					}
					else {
						$c = 2;
						echo $number;
						$numbers[] = $number;
					}
				}
			}
			else {
				echo $number;
				$numbers[] = $number;
			}
			return $numbers;
		}

		$div = 1;
		$div_max = 50;
		while ($div <= $div_max) {
			echo "<div class=\"bingo_div\">";
			echo "<table class=\"bingo_tb\">";
				for ($i = 1; $i <= 5; $i++) { 
					echo "<tr>";
						for ($q = 1; $q <= 5; $q++) { 
							echo "<td>";
								$numbers = get_number($size_min, $size_max, $numbers);
							echo "</td>";
						}
					echo "</tr>";
				}
			$numbers = array();
			echo "</table>";
			echo "</div>";
			$div++;
		}
	?>
</body>
</html>

Zpět do poradny Odpovědět na původní otázku Nahoru