Assigning A Point value to images to calculate A score
If I have the images of a standard 52 card deck and wanted to create a game in which 4 players randomly select a card from the deck and whoever has the highest value card wins. How would I assign values to the card images? I currently have a random number being assigned to pick the card for each player...
Button p1 = new Button("Player 1");
p1.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
int n = rand.nextInt(52)+0;
deckView.setImage(cards.get((n)%cards.size()));
event.consume();
p1.setDisable(true);
Collections.shuffle(cards);
}
});
deck view is an object that displays the card above player one. As shown below:
OverView of game
Do I need create 52 card objects and assign them values there? If I do that, do I need to find another way to find a random value using the objects of the cards instead of N? Here are the instructions if I did not explain clearly.
(The winner of the game is the player who won the most rounds. Each round, a player plays one card. The player with the highest value card wins the round. 2 is the lowest value and Ace is the highest value card. If multiples of the same card value is drawn, the suits determine the winner. Spades > Clubs > Diamonds > Hearts")
javafx
add a comment |
If I have the images of a standard 52 card deck and wanted to create a game in which 4 players randomly select a card from the deck and whoever has the highest value card wins. How would I assign values to the card images? I currently have a random number being assigned to pick the card for each player...
Button p1 = new Button("Player 1");
p1.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
int n = rand.nextInt(52)+0;
deckView.setImage(cards.get((n)%cards.size()));
event.consume();
p1.setDisable(true);
Collections.shuffle(cards);
}
});
deck view is an object that displays the card above player one. As shown below:
OverView of game
Do I need create 52 card objects and assign them values there? If I do that, do I need to find another way to find a random value using the objects of the cards instead of N? Here are the instructions if I did not explain clearly.
(The winner of the game is the player who won the most rounds. Each round, a player plays one card. The player with the highest value card wins the round. 2 is the lowest value and Ace is the highest value card. If multiples of the same card value is drawn, the suits determine the winner. Spades > Clubs > Diamonds > Hearts")
javafx
Do the card image names follow a certain pattern, e.g.S10.pngfor ten of spades andHQ.pngfor queen of hearts?
– fabian
Nov 25 '18 at 22:52
Yes each are labeled accordingly 10_of_spades.png or ace_of_hearts.png
– raywrigh
Nov 25 '18 at 23:06
add a comment |
If I have the images of a standard 52 card deck and wanted to create a game in which 4 players randomly select a card from the deck and whoever has the highest value card wins. How would I assign values to the card images? I currently have a random number being assigned to pick the card for each player...
Button p1 = new Button("Player 1");
p1.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
int n = rand.nextInt(52)+0;
deckView.setImage(cards.get((n)%cards.size()));
event.consume();
p1.setDisable(true);
Collections.shuffle(cards);
}
});
deck view is an object that displays the card above player one. As shown below:
OverView of game
Do I need create 52 card objects and assign them values there? If I do that, do I need to find another way to find a random value using the objects of the cards instead of N? Here are the instructions if I did not explain clearly.
(The winner of the game is the player who won the most rounds. Each round, a player plays one card. The player with the highest value card wins the round. 2 is the lowest value and Ace is the highest value card. If multiples of the same card value is drawn, the suits determine the winner. Spades > Clubs > Diamonds > Hearts")
javafx
If I have the images of a standard 52 card deck and wanted to create a game in which 4 players randomly select a card from the deck and whoever has the highest value card wins. How would I assign values to the card images? I currently have a random number being assigned to pick the card for each player...
Button p1 = new Button("Player 1");
p1.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
int n = rand.nextInt(52)+0;
deckView.setImage(cards.get((n)%cards.size()));
event.consume();
p1.setDisable(true);
Collections.shuffle(cards);
}
});
deck view is an object that displays the card above player one. As shown below:
OverView of game
Do I need create 52 card objects and assign them values there? If I do that, do I need to find another way to find a random value using the objects of the cards instead of N? Here are the instructions if I did not explain clearly.
(The winner of the game is the player who won the most rounds. Each round, a player plays one card. The player with the highest value card wins the round. 2 is the lowest value and Ace is the highest value card. If multiples of the same card value is drawn, the suits determine the winner. Spades > Clubs > Diamonds > Hearts")
javafx
javafx
asked Nov 25 '18 at 22:26
raywrighraywrigh
62
62
Do the card image names follow a certain pattern, e.g.S10.pngfor ten of spades andHQ.pngfor queen of hearts?
– fabian
Nov 25 '18 at 22:52
Yes each are labeled accordingly 10_of_spades.png or ace_of_hearts.png
– raywrigh
Nov 25 '18 at 23:06
add a comment |
Do the card image names follow a certain pattern, e.g.S10.pngfor ten of spades andHQ.pngfor queen of hearts?
– fabian
Nov 25 '18 at 22:52
Yes each are labeled accordingly 10_of_spades.png or ace_of_hearts.png
– raywrigh
Nov 25 '18 at 23:06
Do the card image names follow a certain pattern, e.g.
S10.png for ten of spades and HQ.png for queen of hearts?– fabian
Nov 25 '18 at 22:52
Do the card image names follow a certain pattern, e.g.
S10.png for ten of spades and HQ.png for queen of hearts?– fabian
Nov 25 '18 at 22:52
Yes each are labeled accordingly 10_of_spades.png or ace_of_hearts.png
– raywrigh
Nov 25 '18 at 23:06
Yes each are labeled accordingly 10_of_spades.png or ace_of_hearts.png
– raywrigh
Nov 25 '18 at 23:06
add a comment |
1 Answer
1
active
oldest
votes
Just keep a list of the values / suits somewhere. If you put them into ascending order, you can quite easily create the cards in order of ascending value by using a nested loop for iterating over values and suits respectively, the outer loop being the one iterating the values.
As for drawing cards: You probably don't want repetition, so you should remove a card from the deck after drawing it.
public enum Suit {
HEART("hearts"), SPADE("spades"), CLUB("clubs"), DIAMOND("diamonds");
private final String imageString;
Suit(String imageString) {
this.imageString = imageString;
}
public String getImageString() {
return imageString;
}
}
public enum CardValue {
TWO("2"),
THREE("3"),
FOUR("4"),
FIVE("5"),
SIX("6"),
SEVEN("7"),
EIGHT("8"),
NINE("9"),
TEN("10"),
JACK("jack"),
QUEEN("queen"),
KING("king"),
ACE("ace");
private final String imageString;
CardValue(String imageString) {
this.imageString = imageString;
}
public String getImageString() {
return imageString;
}
}
public final class Card implements Comparable<Card> {
private final CardValue value;
private final Suit suit;
private final int cardValue;
public Card(Suit suit, CardValue value) {
if (suit == null || value == null) {
throw new IllegalArgumentException();
}
this.suit = suit;
this.value = value;
this.cardValue = value.ordinal() * 4 + suit.ordinal();
}
public CardValue getValue() {
return value;
}
public Suit getSuit() {
return suit;
}
@Override
public int compareTo(Card o) {
return cardValue - o.cardValue;
}
public Image createImage() {
return new Image(value.getImageString() + "_of_" + suit.getImageString() + ".png");
}
@Override
public int hashCode() {
return cardValue;
}
@Override
public boolean equals(Object obj) {
return obj != null
&& (obj instanceof Card)
&& (((Card)obj).cardValue == cardValue);
}
}
private final Random random = new Random();
Create deck:
private final List<Card> cards;
{
cards = new ArrayList<>(suits.length * values.length);
Suit suits = Suit.values();
CardValue values = CardValue.values();
List<Card> cards = new ArrayList<>(suits.length * values.length);
for (CardValue val : values) {
for (Suit suit : suits) {
cards.add(new Card(suit, val));
}
}
}
put all cards on a deck and shuffle
// create copy to avoid having to recreate all the cards when putting all cards back in the deck
List<Card> deck = new ArrayList<>(cards);
Collections.shuffle(deck, random);
Remove "topmost" card from the deck (in this case the last one in the list for efficiency):
Card card = deck.remove(deck.size() - 1);
Instead you could also not use Collections.shuffle on deck and instead remove a random card every time you draw a card:
Card card = deck.remove(random.nextInt(deck.size()));
The Card class provides a method for creating an image for it and comparing the card values.
So if the cards are already in a folder, each having its own file name, instead of creating the cards how would I assign values?
– raywrigh
Nov 26 '18 at 0:05
You could of course also take the file names, split them and compare the parts, but this is harder to implement. Furthermore if you include the images as resources in a jar, it's much more problematic to list them. For this reason I recommend creating the image urls based on the card values as shown in the answer.
– fabian
Nov 26 '18 at 0:13
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53472640%2fassigning-a-point-value-to-images-to-calculate-a-score%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Just keep a list of the values / suits somewhere. If you put them into ascending order, you can quite easily create the cards in order of ascending value by using a nested loop for iterating over values and suits respectively, the outer loop being the one iterating the values.
As for drawing cards: You probably don't want repetition, so you should remove a card from the deck after drawing it.
public enum Suit {
HEART("hearts"), SPADE("spades"), CLUB("clubs"), DIAMOND("diamonds");
private final String imageString;
Suit(String imageString) {
this.imageString = imageString;
}
public String getImageString() {
return imageString;
}
}
public enum CardValue {
TWO("2"),
THREE("3"),
FOUR("4"),
FIVE("5"),
SIX("6"),
SEVEN("7"),
EIGHT("8"),
NINE("9"),
TEN("10"),
JACK("jack"),
QUEEN("queen"),
KING("king"),
ACE("ace");
private final String imageString;
CardValue(String imageString) {
this.imageString = imageString;
}
public String getImageString() {
return imageString;
}
}
public final class Card implements Comparable<Card> {
private final CardValue value;
private final Suit suit;
private final int cardValue;
public Card(Suit suit, CardValue value) {
if (suit == null || value == null) {
throw new IllegalArgumentException();
}
this.suit = suit;
this.value = value;
this.cardValue = value.ordinal() * 4 + suit.ordinal();
}
public CardValue getValue() {
return value;
}
public Suit getSuit() {
return suit;
}
@Override
public int compareTo(Card o) {
return cardValue - o.cardValue;
}
public Image createImage() {
return new Image(value.getImageString() + "_of_" + suit.getImageString() + ".png");
}
@Override
public int hashCode() {
return cardValue;
}
@Override
public boolean equals(Object obj) {
return obj != null
&& (obj instanceof Card)
&& (((Card)obj).cardValue == cardValue);
}
}
private final Random random = new Random();
Create deck:
private final List<Card> cards;
{
cards = new ArrayList<>(suits.length * values.length);
Suit suits = Suit.values();
CardValue values = CardValue.values();
List<Card> cards = new ArrayList<>(suits.length * values.length);
for (CardValue val : values) {
for (Suit suit : suits) {
cards.add(new Card(suit, val));
}
}
}
put all cards on a deck and shuffle
// create copy to avoid having to recreate all the cards when putting all cards back in the deck
List<Card> deck = new ArrayList<>(cards);
Collections.shuffle(deck, random);
Remove "topmost" card from the deck (in this case the last one in the list for efficiency):
Card card = deck.remove(deck.size() - 1);
Instead you could also not use Collections.shuffle on deck and instead remove a random card every time you draw a card:
Card card = deck.remove(random.nextInt(deck.size()));
The Card class provides a method for creating an image for it and comparing the card values.
So if the cards are already in a folder, each having its own file name, instead of creating the cards how would I assign values?
– raywrigh
Nov 26 '18 at 0:05
You could of course also take the file names, split them and compare the parts, but this is harder to implement. Furthermore if you include the images as resources in a jar, it's much more problematic to list them. For this reason I recommend creating the image urls based on the card values as shown in the answer.
– fabian
Nov 26 '18 at 0:13
add a comment |
Just keep a list of the values / suits somewhere. If you put them into ascending order, you can quite easily create the cards in order of ascending value by using a nested loop for iterating over values and suits respectively, the outer loop being the one iterating the values.
As for drawing cards: You probably don't want repetition, so you should remove a card from the deck after drawing it.
public enum Suit {
HEART("hearts"), SPADE("spades"), CLUB("clubs"), DIAMOND("diamonds");
private final String imageString;
Suit(String imageString) {
this.imageString = imageString;
}
public String getImageString() {
return imageString;
}
}
public enum CardValue {
TWO("2"),
THREE("3"),
FOUR("4"),
FIVE("5"),
SIX("6"),
SEVEN("7"),
EIGHT("8"),
NINE("9"),
TEN("10"),
JACK("jack"),
QUEEN("queen"),
KING("king"),
ACE("ace");
private final String imageString;
CardValue(String imageString) {
this.imageString = imageString;
}
public String getImageString() {
return imageString;
}
}
public final class Card implements Comparable<Card> {
private final CardValue value;
private final Suit suit;
private final int cardValue;
public Card(Suit suit, CardValue value) {
if (suit == null || value == null) {
throw new IllegalArgumentException();
}
this.suit = suit;
this.value = value;
this.cardValue = value.ordinal() * 4 + suit.ordinal();
}
public CardValue getValue() {
return value;
}
public Suit getSuit() {
return suit;
}
@Override
public int compareTo(Card o) {
return cardValue - o.cardValue;
}
public Image createImage() {
return new Image(value.getImageString() + "_of_" + suit.getImageString() + ".png");
}
@Override
public int hashCode() {
return cardValue;
}
@Override
public boolean equals(Object obj) {
return obj != null
&& (obj instanceof Card)
&& (((Card)obj).cardValue == cardValue);
}
}
private final Random random = new Random();
Create deck:
private final List<Card> cards;
{
cards = new ArrayList<>(suits.length * values.length);
Suit suits = Suit.values();
CardValue values = CardValue.values();
List<Card> cards = new ArrayList<>(suits.length * values.length);
for (CardValue val : values) {
for (Suit suit : suits) {
cards.add(new Card(suit, val));
}
}
}
put all cards on a deck and shuffle
// create copy to avoid having to recreate all the cards when putting all cards back in the deck
List<Card> deck = new ArrayList<>(cards);
Collections.shuffle(deck, random);
Remove "topmost" card from the deck (in this case the last one in the list for efficiency):
Card card = deck.remove(deck.size() - 1);
Instead you could also not use Collections.shuffle on deck and instead remove a random card every time you draw a card:
Card card = deck.remove(random.nextInt(deck.size()));
The Card class provides a method for creating an image for it and comparing the card values.
So if the cards are already in a folder, each having its own file name, instead of creating the cards how would I assign values?
– raywrigh
Nov 26 '18 at 0:05
You could of course also take the file names, split them and compare the parts, but this is harder to implement. Furthermore if you include the images as resources in a jar, it's much more problematic to list them. For this reason I recommend creating the image urls based on the card values as shown in the answer.
– fabian
Nov 26 '18 at 0:13
add a comment |
Just keep a list of the values / suits somewhere. If you put them into ascending order, you can quite easily create the cards in order of ascending value by using a nested loop for iterating over values and suits respectively, the outer loop being the one iterating the values.
As for drawing cards: You probably don't want repetition, so you should remove a card from the deck after drawing it.
public enum Suit {
HEART("hearts"), SPADE("spades"), CLUB("clubs"), DIAMOND("diamonds");
private final String imageString;
Suit(String imageString) {
this.imageString = imageString;
}
public String getImageString() {
return imageString;
}
}
public enum CardValue {
TWO("2"),
THREE("3"),
FOUR("4"),
FIVE("5"),
SIX("6"),
SEVEN("7"),
EIGHT("8"),
NINE("9"),
TEN("10"),
JACK("jack"),
QUEEN("queen"),
KING("king"),
ACE("ace");
private final String imageString;
CardValue(String imageString) {
this.imageString = imageString;
}
public String getImageString() {
return imageString;
}
}
public final class Card implements Comparable<Card> {
private final CardValue value;
private final Suit suit;
private final int cardValue;
public Card(Suit suit, CardValue value) {
if (suit == null || value == null) {
throw new IllegalArgumentException();
}
this.suit = suit;
this.value = value;
this.cardValue = value.ordinal() * 4 + suit.ordinal();
}
public CardValue getValue() {
return value;
}
public Suit getSuit() {
return suit;
}
@Override
public int compareTo(Card o) {
return cardValue - o.cardValue;
}
public Image createImage() {
return new Image(value.getImageString() + "_of_" + suit.getImageString() + ".png");
}
@Override
public int hashCode() {
return cardValue;
}
@Override
public boolean equals(Object obj) {
return obj != null
&& (obj instanceof Card)
&& (((Card)obj).cardValue == cardValue);
}
}
private final Random random = new Random();
Create deck:
private final List<Card> cards;
{
cards = new ArrayList<>(suits.length * values.length);
Suit suits = Suit.values();
CardValue values = CardValue.values();
List<Card> cards = new ArrayList<>(suits.length * values.length);
for (CardValue val : values) {
for (Suit suit : suits) {
cards.add(new Card(suit, val));
}
}
}
put all cards on a deck and shuffle
// create copy to avoid having to recreate all the cards when putting all cards back in the deck
List<Card> deck = new ArrayList<>(cards);
Collections.shuffle(deck, random);
Remove "topmost" card from the deck (in this case the last one in the list for efficiency):
Card card = deck.remove(deck.size() - 1);
Instead you could also not use Collections.shuffle on deck and instead remove a random card every time you draw a card:
Card card = deck.remove(random.nextInt(deck.size()));
The Card class provides a method for creating an image for it and comparing the card values.
Just keep a list of the values / suits somewhere. If you put them into ascending order, you can quite easily create the cards in order of ascending value by using a nested loop for iterating over values and suits respectively, the outer loop being the one iterating the values.
As for drawing cards: You probably don't want repetition, so you should remove a card from the deck after drawing it.
public enum Suit {
HEART("hearts"), SPADE("spades"), CLUB("clubs"), DIAMOND("diamonds");
private final String imageString;
Suit(String imageString) {
this.imageString = imageString;
}
public String getImageString() {
return imageString;
}
}
public enum CardValue {
TWO("2"),
THREE("3"),
FOUR("4"),
FIVE("5"),
SIX("6"),
SEVEN("7"),
EIGHT("8"),
NINE("9"),
TEN("10"),
JACK("jack"),
QUEEN("queen"),
KING("king"),
ACE("ace");
private final String imageString;
CardValue(String imageString) {
this.imageString = imageString;
}
public String getImageString() {
return imageString;
}
}
public final class Card implements Comparable<Card> {
private final CardValue value;
private final Suit suit;
private final int cardValue;
public Card(Suit suit, CardValue value) {
if (suit == null || value == null) {
throw new IllegalArgumentException();
}
this.suit = suit;
this.value = value;
this.cardValue = value.ordinal() * 4 + suit.ordinal();
}
public CardValue getValue() {
return value;
}
public Suit getSuit() {
return suit;
}
@Override
public int compareTo(Card o) {
return cardValue - o.cardValue;
}
public Image createImage() {
return new Image(value.getImageString() + "_of_" + suit.getImageString() + ".png");
}
@Override
public int hashCode() {
return cardValue;
}
@Override
public boolean equals(Object obj) {
return obj != null
&& (obj instanceof Card)
&& (((Card)obj).cardValue == cardValue);
}
}
private final Random random = new Random();
Create deck:
private final List<Card> cards;
{
cards = new ArrayList<>(suits.length * values.length);
Suit suits = Suit.values();
CardValue values = CardValue.values();
List<Card> cards = new ArrayList<>(suits.length * values.length);
for (CardValue val : values) {
for (Suit suit : suits) {
cards.add(new Card(suit, val));
}
}
}
put all cards on a deck and shuffle
// create copy to avoid having to recreate all the cards when putting all cards back in the deck
List<Card> deck = new ArrayList<>(cards);
Collections.shuffle(deck, random);
Remove "topmost" card from the deck (in this case the last one in the list for efficiency):
Card card = deck.remove(deck.size() - 1);
Instead you could also not use Collections.shuffle on deck and instead remove a random card every time you draw a card:
Card card = deck.remove(random.nextInt(deck.size()));
The Card class provides a method for creating an image for it and comparing the card values.
answered Nov 25 '18 at 23:55
fabianfabian
53k115373
53k115373
So if the cards are already in a folder, each having its own file name, instead of creating the cards how would I assign values?
– raywrigh
Nov 26 '18 at 0:05
You could of course also take the file names, split them and compare the parts, but this is harder to implement. Furthermore if you include the images as resources in a jar, it's much more problematic to list them. For this reason I recommend creating the image urls based on the card values as shown in the answer.
– fabian
Nov 26 '18 at 0:13
add a comment |
So if the cards are already in a folder, each having its own file name, instead of creating the cards how would I assign values?
– raywrigh
Nov 26 '18 at 0:05
You could of course also take the file names, split them and compare the parts, but this is harder to implement. Furthermore if you include the images as resources in a jar, it's much more problematic to list them. For this reason I recommend creating the image urls based on the card values as shown in the answer.
– fabian
Nov 26 '18 at 0:13
So if the cards are already in a folder, each having its own file name, instead of creating the cards how would I assign values?
– raywrigh
Nov 26 '18 at 0:05
So if the cards are already in a folder, each having its own file name, instead of creating the cards how would I assign values?
– raywrigh
Nov 26 '18 at 0:05
You could of course also take the file names, split them and compare the parts, but this is harder to implement. Furthermore if you include the images as resources in a jar, it's much more problematic to list them. For this reason I recommend creating the image urls based on the card values as shown in the answer.
– fabian
Nov 26 '18 at 0:13
You could of course also take the file names, split them and compare the parts, but this is harder to implement. Furthermore if you include the images as resources in a jar, it's much more problematic to list them. For this reason I recommend creating the image urls based on the card values as shown in the answer.
– fabian
Nov 26 '18 at 0:13
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53472640%2fassigning-a-point-value-to-images-to-calculate-a-score%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Do the card image names follow a certain pattern, e.g.
S10.pngfor ten of spades andHQ.pngfor queen of hearts?– fabian
Nov 25 '18 at 22:52
Yes each are labeled accordingly 10_of_spades.png or ace_of_hearts.png
– raywrigh
Nov 25 '18 at 23:06