diff options
author | Thomas Günther <tom@toms-cafe.de> | 2007-09-21 01:43:48 +0200 |
---|---|---|
committer | Thomas Günther <tom@toms-cafe.de> | 2007-09-21 01:43:48 +0200 |
commit | b39a6bf3e7add336dbb127394e8c611ec1d29cd6 (patch) | |
tree | ab3b1c27a8ec9769ba0725b9b5179dd19a7bb785 /deck.c | |
parent | a9e755360f08ce8da20d15b1aa1593ea753393de (diff) | |
download | vdr-plugin-spider-b39a6bf3e7add336dbb127394e8c611ec1d29cd6.tar.gz vdr-plugin-spider-b39a6bf3e7add336dbb127394e8c611ec1d29cd6.tar.bz2 |
Renamed *.c files to C++ suffix *.cpp
Diffstat (limited to 'deck.c')
-rw-r--r-- | deck.c | 89 |
1 files changed, 0 insertions, 89 deletions
@@ -1,89 +0,0 @@ -/* - * Spider-Arachnid: A plugin for the Video Disk Recorder - * - * Copyright (C) 2005-2007, Thomas Günther <tom@toms-cafe.de> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * $Id: deck.c 87 2007-06-22 22:37:36Z tom $ - */ - -#include "deck.h" -#include <vdr/config.h> -#include <vdr/tools.h> -#include <stdlib.h> - - -/** Random number 0 .. max-1 */ -unsigned int rand(unsigned int max) -{ - static unsigned int seed = cTimeMs::Now(); - return (unsigned int)((double)max * rand_r(&seed) / (RAND_MAX + 1.0)); -} - - -/** --- class Deck --------------------------------------------------------- **/ - -/** Constructor */ -Deck::Deck(int cards, int suits, int decks) : - allCards(cards * suits * decks) -{ - cardsInSuit = cards; - suitCount = suits; - deckCount = decks; - shuffle(); -} - -/** Current count of cards */ -int Deck::count() const -{ - return allCards.size(); -} - -/** Card in deck */ -const Card& Deck::card(int position) const -{ - return allCards[position]; -} - -/** Shuffle the deck */ -void Deck::shuffle() -{ - for (unsigned int i = 0; i < allCards.size(); ++i) - { - int pos = -1; - while (pos < 0) - pos = rand(allCards.size()); - while (allCards[pos].suit >= 0) - pos = (pos + 1) % allCards.size(); - allCards[pos] = Card((i / cardsInSuit) % suitCount, i % cardsInSuit); - } -} - - -/** --- class Card --------------------------------------------------------- **/ - -/** Constructor */ -Card::Card(int s, int r) -{ - suit = s; - rank = r; -} - -/** Matches this card to an other card? */ -bool Card::matchesTo(const Card& other) const -{ - return (suit == other.suit && rank + 1 == other.rank); -} |