Page MenuHomePhabricator (Chris)

No OneTemporary

Authored By
Unknown
Size
6 KB
Referenced Files
None
Subscribers
None
diff --git a/card.h b/card.h
index 89d177b..107f8d8 100644
--- a/card.h
+++ b/card.h
@@ -1,16 +1,23 @@
#ifndef CARD_H
#define CARD_H
#include <string>
+#include <array>
+namespace efc {
+const static std::array<std::string, 4> cardsTypes = {
+ "stop", "card", "diamond", "diamond x 2"
+};
+
+}
class Card
{
public:
Card();
int id;
int elementNumber; //location
int amount;
std::string cardType;
int cardTypeInt;
};
#endif // CARD_H
diff --git a/cardsdeck.cpp b/cardsdeck.cpp
index f8ad4ac..86b9b9a 100644
--- a/cardsdeck.cpp
+++ b/cardsdeck.cpp
@@ -1,153 +1,154 @@
#include "cardsdeck.h"
CardsDeck::CardsDeck(TextureHolder *textures, sf::Font *gameFont, Command *command)
{
commandManager=command;
std::array<std::array<int,2>,4> cardsPos = {
{
{1087,95}, {1225, 95}, {1225, 277}, {1087, 277}
}
};
this->textures = textures;
for (int i=0;i<=3;i++)
{
// spriteCardBases[i].setTexture(this->textures->textureCardBases[i]);
spriteCardBases[i].setPosition(cardsPos[i][0],cardsPos[i][1]);
textPileTitle[i].setFont(*gameFont);
textPileTitle[i].setCharacterSize(10);
textPileTitle[i].setPosition(cardsPos[i][0]+10,cardsPos[i][1]+100);
for (int j=0;j<efc::cardsDistribution.size();j++)
{
int cardTypeInt = efc::cardsDistribution[j];
cardsList[i].cardsPile[j].cardType = efc::cardsTypes[cardTypeInt];
cardsList[i].cardsPile[j].cardTypeInt = cardTypeInt;
spriteCardBases[i].setTexture(this->textures->cardsTextures[i][cardTypeInt]);
}
- reloadCards();
}
+ reloadCards();
+
}
void CardsDeck::reloadCards(){
for (int i=0;i<=3;i++)
{
cardsList[i].shufflePile();
setTitles(i);
}
}
void CardsDeck::draw(sf::RenderTarget& target, sf::RenderStates states) const
{
states.transform *= getTransform();
for (int i=0;i<=3;i++)
{
if ((cardsList[i].invisibleLeft==0.0f) and (cardsList[i].active))
{
target.draw(spriteCardBases[i], states);
target.draw(textPileTitle[i], states);
}
}
}
void CardsDeck::setTitles(int number)
{
int cardTypeInt = getCardTypeInt(number);
textPileTitle[number].setString(efc::cardsTypes[cardTypeInt]);
// int val = getCardTypeInt(number);
spriteCardBases[number].setTexture(textures->cardsTextures[number][cardTypeInt]);
}
void CardsDeck::setSprites(int number)
{
// for (int i=0;i<=3;i++)
// {
// int val = getCardTypeInt(i);
// std::string title = getTitle(i);
// std::cout <<i<< " << hjehe >> " << val << std::endl;
// sf::Texture tmpText = textures->cardsTextures[i][val];
// spriteCardBases[i].setTexture(tmpText);
// }
}
void CardsDeck::setFonts(sf::Font *gameFont)
{
for (int i=0;i<=3;i++)
{
textPileTitle[i].setFont(*gameFont);
}
}
void CardsDeck::nextCard(int pileNumber)
{
if (cardsList[pileNumber].active)
{
cardsList[pileNumber].invisibleLeft = 0.75f;
int currentCard = getCurrentCard(pileNumber);
if (currentCard>=efc::cardsDistribution.size()-1)
{
cardsList[pileNumber].active = false;
commandManager->removeAllCardElement(pileNumber);
} else
{
currentCard += 1;
if ((currentCard>3) || (currentCard<0))
currentCard = 0;
cardsList[pileNumber].currentCard = currentCard;
setTitles(pileNumber);
}
}
// setSprites(pileNumber);
}
int CardsDeck::getCurrentCard(int pileNumber)
{
int currentCard = cardsList[pileNumber].currentCard;
return currentCard;
}
std::string CardsDeck::getTitle(int pileNumber)
{
std::string currentText = efc::cardsTypes[getCardTypeInt(pileNumber)];
return currentText;
}
int CardsDeck::getCardTypeInt(int pileNumber)
{
int result = cardsList[pileNumber].cardsPile[getCurrentCard(pileNumber)].cardTypeInt;
return result;
}
void CardsDeck::update(sf::Time deltaTime)
{
for (int i=0;i<=3;i++)
{
if (cardsList[i].invisibleLeft>0.0f)
{
cardsList[i].invisibleLeft -= deltaTime.asSeconds();
}
if (cardsList[i].invisibleLeft<0.0f)
{
cardsList[i].invisibleLeft = 0.0f;
}
}
}
diff --git a/cardsdeck.h b/cardsdeck.h
index 02f7f9b..0c3c97c 100644
--- a/cardsdeck.h
+++ b/cardsdeck.h
@@ -1,46 +1,38 @@
#ifndef CARDSDECK_H
#define CARDSDECK_H
#include <array>
#include <SFML/Graphics.hpp>
#include <iostream>
#include "textureholder.h"
#include "cardslist.h"
#include "command.h"
-namespace efc {
-const static std::array<std::string, 4> cardsTypes = {
- "stop", "card", "diamond", "diamond x 2"
-};
-
-
-
-}
class CardsDeck: public sf::Drawable, public sf::Transformable
{
public:
CardsDeck(TextureHolder *textures, sf::Font *gameFont, Command *command);
std::array<CardsList, 4> cardsList;
std::array<sf::Sprite, 4> spriteCardBases;
std::array<sf::Text, 4> textPileTitle;
TextureHolder *textures;
Command *commandManager;
void draw(sf::RenderTarget &target, sf::RenderStates states) const;
// void setTitles();
void setSprites(int number);
void setFonts(sf::Font *gameFont);
void nextCard(int pileNumber);
int getCurrentCard(int pileNumber);
std::string getTitle(int pileNumber);
void update(sf::Time deltaTime);
int getCardTypeInt(int pileNumber);
void setTitles(int number);
void reloadCards();
};
#endif // CARDSDECK_H
diff --git a/cardslist.h b/cardslist.h
index 0027930..e97d83e 100644
--- a/cardslist.h
+++ b/cardslist.h
@@ -1,48 +1,47 @@
#ifndef CARDSLIST_H
#define CARDSLIST_H
#include <vector>
-#include <array>
#include <iostream> // std::cout
#include <algorithm> // std::shuffle
#include <random> // std::default_random_engine
#include <chrono> // std::chrono::system_clock
#include "card.h"
namespace efc {
const static std::array<int,32> cardsDistribution = {
0,0,0,0,0,0,0,0,
1,1,1,1,1,1,1,1,
2,2,2,2,2,2,2,2,2,2,
3,3,3,3,3,3
};
const static std::array<int,2> cardsDistributionDebug = {
2,3
};
const static int PILE_SIZE = efc::cardsDistribution.size();
}
class CardsList
{
public:
CardsList(); // To create an array of CardsList
CardsList(int element);
int amount;
// std::vector<Card*> sd;
/*!
* \brief element Number of the element
*/
std::array<Card, efc::PILE_SIZE> cardsPile;
int currentCard;
int element; /*!< Number of the element */
bool active;
float invisibleLeft;
void shufflePile();
};
#endif // CARDSLIST_H

File Metadata

Mime Type
text/x-diff
Expires
Tue, Jun 16, 12:16 AM (2 w, 2 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
71044
Default Alt Text
(6 KB)

Event Timeline