PHP Schachbrett

Sagst du uns auch einmal, was daran so schwer ist?
A-H gehst du ja schon in einer Schleife durch.
Drin machst du noch eine Schleife 1-8 (bzw. Arrayindex 0-7) und gibst das Element zwischen <td> und </td> aus.

Und bitte in Zukunft keine Drei- bzw. Vierfachposts.
 
PHP:
echo '<td class="'.$brett.'">'.$this->schachspiel[$z][$s].'</td>';
Und die Array's mit den gewünschten Figuren belegen...
PHP:
private $schachspiel = array(
    array('T','S','L','D','K','L','S','T'),
    array ('B','B','B','B','B','B','B','B'),
    array ('','','','','','','',''),
    array ('','','','','','','',''),
    array ('','','','','','','',''),
    array ('','','','','','','',''),
    array ('B','B','B','B','B','B','B','B'),
    array('T','S','L','K','D','L','S','T')
);

Gruß
 
Überprüfe während du das Feld erstellst, ob im Array an der Position wo du dich gerade beim Erstellen befindest, ein Bauer steht. Wenn "Ja" schreibs in das Feld.

Dafür brauchst du sicherlich kein dreidimensionales Array, außer du willst ein geniales 3D Schachspiel erstellen! ;)

MfG Alaitoc

Edith sagt ich war zu langsam...btw helfen Codeschnipsel nicht die Programmierkenntnisse zu verbessern, vll. sollte man ihn sich einfach mal ein wenig damit auseinandersetzen lassen...
 
Napofis, kannst du mir vielleicht deine erste for - Schleife erklären? :)

Ja klar.
PHP:
for($i=0,$n=0,$iEnd=count($this->schachspiel); $i<$iEnd; $i++ ){
$i und $n sind einfach nur Zählervariablen $i ist für die Brettreihen und $n für die Kästchen. $iEnd ist der Wert wann der Durchlauf der Schleife abgebrochen wird.
Man könnt auch einfach nur das Bit flippen.
PHP:
if ($n&1){}
Das ist eine wesentlich performantere Variante zu prüfen ob eine Zahl gerade oder ungerade ist als die Modulo(%) Variante (Dort sind sehr viele Rechenoperationen nötig). Es ist eine Bit Operation die prüft ob das letzte Flag einer Zahl auf 1 oder 0 gesetzt ist, denn das ist ausreichend dafür.

Hier noch mal alles:
PHP:
<?php
class Schachbrett {
	private $schachspiel = array(
		array('T','S','L','K','D','L','S','T'),
		array ('B','B','B','B','B','B','B','B'),
		array ('','','','','','','',''),
		array ('','','','','','','',''),
		array ('','','','','','','',''),
		array ('','','','','','','',''),
		array ('B','B','B','B','B','B','B','B'),
		array ('T','S','L','K','D','L','S','T'));

    public function Brett(){
        echo '<table class="t" border="1">';
        for($i=0,$n=true,$iEnd=count($this->schachspiel); $i<$iEnd; $i++ ){
            echo '<tr>';
            $n=!$n;
            foreach ($this->schachspiel[$i] as $field){
                echo '<td class="'.(($n=!$n)?'f':'d').'">'.$field.'</td>';
            }
            echo '</tr>';
        }
        echo '</table>';
    }
}
?> 
<html> 
<head> 
<title>Schach</title> 
<style>  
.t {float: left;}
.t td {width: 10px; height: 10px;} 
.t td.f {background-color: yellow;} 
.t td.d {background-color: red;} 
</style> 
</head> 
<body>
<?php 
$schachbrett = new Schachbrett(); 
$schachbrett->Brett(); 
?> 
</body> 
</html>

@sheel: Dame auf E, gell.
 
Zuletzt bearbeitet:
Von Schwarz/Weiss aus gesehen macht ja nichts.
Aber deins hat zu keinem der beiden gepasst.

König in die E-Reihe, Dame in D.
Egal ob Schwarz/Weiss.
 
Zurück