Hey ,

Ik ben bezig om een beetje OOP in PHP te verkennen ... en heb daarom gekozen om Texas Hold'em te maken ... (eerst klein beginnen met singleplayer) :p

Omdat ik niet echt thuis ben in de wereld van OOP heb ik enkele vragen en een error klaarliggen.

Index.php

<?php
class kaarten{
function create_deck() {
	$deck = array(		
					1 => array("2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "1"), //harten
					2 => array("2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "1"), //schoppen
					3 => array("2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "1"), //koeken
					4 => array("2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "1")  //klaveren
				);
	global $deck;
}
function genereer_gemeenschappelijke_kaarten() {
	for($x=1;$x=5;$x++){
	
	$rand_s = array();
	$rand_c = array();
	
	$rand_s[$x] = rand(1 ,4);
	$rand_c[$x] = rand(0, 12);
	echo $rand_s[$x];
	echo $rand_c[$x];
	}
}
$nieuw_object = new kaarten;
$nieuw_object->genereer_gemeenschappelijke_kaarten();
?>


Als je het antwoord weet van 1 van mijn volgende vragen mag je het altijd posten (bij voorbaat dank!).

1. Ik moet een deck hebben en zoals je ziet heb ik al een deckje inneengestoken, maar is het nodig om die global te maken?

2. Om 5 gemeenschappelijke kaarten te genereren is mijn optie de beste optie ? (for lus 10 willekeurige getallen generen om daarna uit de multidimensionale array ($deck) te halen)

3.
Parse error: syntax error, unexpected T_VARIABLE, expecting T_FUNCTION in C:\xampp\htdocs\Poker\index.php on line 24
ow :s? Roep ik mijn class verkeerd aan?

4. hoe kan ik bv in $deck[1][0] (harten 2) verwijderen ... zodat de computer of de speler geen 2 keer dezelfde kaarten kan hebben of krijgen na de wissel?
ok bedankt ... maar komt nog altijd geen output ^^ dit heb ik nu (heb beetje veranderd)

<pre>
<?php
class kaarten{
	public $deck, $rand_s = array(), $rand_c = array();
	function create_deck() {
    	$this->deck = array(        
                    1 => array("2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "1"), //harten
                    2 => array("2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "1"), //schoppen
                    3 => array("2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "1"), //koeken
                    4 => array("2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "1")  //klaveren
                );
    }
	
	function genereer_gemeenschappelijke_kaarten() {
      for($x=1;$x<6;$x++){
      $this->rand_s[$x] = rand(1 ,4);
      $this->rand_c[$x] = rand(0, 12);
     }
	 print_r($rand_s);
	 print_r($rand_c);
   }
}  
$nieuw_object = new kaarten;
echo $nieuw_object->genereer_gemeenschappelijke_kaarten();
?>
</pre>


^^ deze keer ook GEEN errors :s maar ook geen output ^^

[edit]
<?
$rand_s = array();
$rand_c = array();
	for($x=1;$x<6;$x++){
    $rand_s[$x] = rand(1 ,4);
    $rand_c[$x] = rand(0, 12);
    }
print_r($rand_s);
print_r($rand_c);
?>
... dit werkt perfect :|[/edit]
misschien zou je kunnen overwegen om het iets anders op te bouwen, bijv met een klasse Kaart die voor 1 enkele kaart staat en een klasse Hand die dan 2 (of in andere varianten meerdere) kaarten heeft. Verder kan je nog een klasse maken die kijkt naar of je iets hebt (pair, flush enz). Een getter is een functie die een instantie variabele teruggeeft.
met een getter bedoel ik:
<?
public function getRandS() {
return $this>rand_s;
}
public function getRandC() {
return $this>rand_c;
}
?>

de manier van tommy kan ook maar die is mij iets te dynamisch. Ik scrijf ze graag gewoon uit ivm code hinting. ook kan ik nu geen niet bestaande klasse variablene opvragen.

ik raad je in het algemeen aan eens wat tutorials te lezen omdat veel logica in je klassen nog niet kloppen.
een goede tutorial staat op phpfreakz:
http://phpfreakz.nl/artikelen.php?aid=116

Reageren