Bunte Kästchen!

Hi,

dann generiere dir doch so viele Farbcodes wie du brauchst. ;)

PHP:
$anzahl = 16;
$codes = array();
for ($i = 0; $i < $anzahl; $i++) {
  $codes[$i] = rand(0, 0xFFFFFF);
}

Best regards
 
Wäre es nicht evtl. besser pro Farbcode 3 Werte zu generieren und diese dann zum Farbcode zusammenzusetzen?

In etwa so
PHP:
$anzahl = 16;
$codes = array();
for ($i = 0; $i < $anzahl; $i++) {
	$codes[$i] = "";
	while(strlen($codes[$i]) < 6){
		$foo = dechex(rand(0, 0xFF));
		$codes[$i].= ( ( strlen( $foo ) < 2 ) ? '0' : '' ) . $foo;
	}
}
 
So leute ich habs :
HTML:
<html>
	<head>
		<title>Kunstwerk</title>
			<link rel="stylesheet" type="text/css" href="style1.css">
	</head>
<body>
	
	<div class = "matrix">
		<?php
		for($z=0; $z<4; $z++)
		{
			?><div class="reihe"><?php
			
				for ($s=0; $s<5; $s++)
				{
					$r = dechex(rand(0,255));
					$g = dechex(rand(0,255));
					$b = dechex(rand(0,255));
					
					$r = (strlen($r) == 1) ? "0{$r}" : $r;
					$g = (strlen($g) == 1) ? "0{$g}" : $g;
					$b = (strlen($b) == 1) ? "0{$b}" : $b;
					
					$farbe = $r.$g.$b;
					
					$border = $b.$g.$r;
					
					?><div class = "kasten" style="background-color:#<?php echo $farbe;?>; border: 10px solid #<?php echo $border;?>;"></div><?php
				}
			
			?></div><?php
		}
		?>
	</div>
</body>
</html>

Code:
.matrix {
}

.reihe {
	clear: both;
}

.kasten {
	width: 100px;
	height: 100px;
	float: left;
	margin: 5px;
}
 
Das ist aber eine 4x5 Matrix.
Um mal auf Post #8 zurückzukommen : warum hast du da 5 Werte wenn du nur 4x4 willst ? Logikfehler oder kannst du nicht damit umgehen das Arrays bei 0 anstatt bei 1 beginnen ?
 
Dann hätte man allerdings eine weitere Schleife. Die Ausgabe bei meiner Variante könnte man so gestalten:

PHP:
echo sprintf('%06X', $codes[$i]);

Könnte man, deine Codes zusammengefügt ergeben aber zumindest bei mir folgendes, relativ Blau-loses Ergebnis:
PHP:
$anzahl = 16;
$codes = array();
for ($i = 0; $i < $anzahl; $i++) {
  $codes[$i] = rand(0, 0xFFFFFF);
  echo sprintf('%06X', $codes[$i])."<br />"; 
}  
/*
B8E600
2E6000
5F5200
F25C00
999E00
ECB800
3ACA00
F47400
CDD600
389000
55C200
000C00
0D8E00
69E800
283A00
2D2400
*/

Hab daran auch etwas rumgefuddelt um mal andere Ergebnisse zu erzeugen, allerdings mit relativ wenig Erfolg. Irgendwo hatte ich letztendlich immer eine 0... Den Ansatz finde ich allerdings knorke!
 

Neue Beiträge

Zurück