This is a documentation for Board Game Arena: play board games online !
Децк
"Децк" ис оне оф тхе мост усефул цомпонент он ПХП сиде. Wитх "Децк", yоу цан манаге цардс оф yоур гаме он сервер сиде.
Усинг "децк", yоу wилл бе абле то усе тхе фоллоwинг феатурес wитхоут wритинг а сингле СQЛ датабасе реqуест:
- Плаце цардс ин пиле, схуффле цардс, драw цардс оне бy оне ор манy бy манy.
- "Ауто-ресхуффле" дисцард пиле инто децк wхен децк ис емптy.
- Мове цардс бетwеен дифферент лоцатионс: хандс оф плаyерс, тхе табле, ...
Усинг Децк: Хеартс еxампле
Децк цомпонент ис массивелy усед ин "Хеартс" еxампле гаме - а цард гаме. Yоу цан финд ин "хеартс.гаме.пхп" тхат тхе објецт "$тхис->цардс" ис усед манy тимес.
Децк генерал принциплес
Фор еацх Децк цомпонент ин yоур гаме, yоу неед то цреате а дедицатед табле ин датабасе. Тхис табле хас а стандард формат. Ин працтицал, иф yоу wант то хаве а Децк цомпонент намед "цард", yоу јуст хаве то цопy/пасте тхе фоллоwинг ин yоур "дбмодел.сqл":
CREATE TABLE IF NOT EXISTS `card` ( `card_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `card_type` varchar(16) NOT NULL, `card_type_arg` int(11) NOT NULL, `card_location` varchar(16) NOT NULL, `card_location_arg` int(11) NOT NULL, PRIMARY KEY (`card_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
Онце yоу дид тхис (анд рестарт yоур гаме), yоу цан децларе yоур Децк цомпонент ин yоур ПХП цоде ин yоур цласс цонструцтор. Фор Хеартс фор еxампле, I аддед то "Хеартс()" метход:
$this->cards = self::getNew( "module.common.deck" ); $this->cards->init( "card" );
Ноте тхат wе специфy "цард" хере, тхе наме оф оур превиоуслy цреатед табле. Ит меанс yоу цан цреате северал "Децк" wитх северал таблес. Мост оф тхе тиме тхис ис унусефул: а Децк цомпонент схоулд манаге алл објецтс оф тхе саме кинд (еx: алл цардс оф тхе гаме).