Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Card-Jitsu Voice
# Card-Jitsu Voice Optimized Version

Card-Jitsu Voice is a remake of [Card-Jitsu](https://clubpenguin.fandom.com/wiki/Card-Jitsu) for the Amazon Alexa, made using Java and the [Alexa Skills Kit SDK](https://developer.amazon.com/en-US/docs/alexa/alexa-skills-kit-sdk-for-java/overview.html).

Expand Down
40 changes: 14 additions & 26 deletions src/main/java/com/polymars/game/Bank.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,31 +3,19 @@
import java.util.ArrayList;

public class Bank {
public static final int FIRE = 0;
public static final int WATER = 1;
public static final int SNOW = 2;
public static final int MIXED = 3;

public static final int RED = 0;
public static final int ORANGE = 1;
public static final int YELLOW = 2;
public static final int GREEN = 3;
public static final int BLUE = 4;
public static final int PURPLE = 5;

final String[] elements = {"fire", "water", "snow"};
final String[] colors = {"red", "orange", "yellow", "green", "blue", "purple"};

private ArrayList<Integer>[] bank = new ArrayList[3];
private final ArrayList<Integer>[] bank = new ArrayList[3];
private int winningElement;
private ArrayList<Integer> winningColors;

public Bank()
{
winningColors = new ArrayList<Integer>();
winningColors = new ArrayList<>();
for (int i = 0; i < bank.length; i++)
{
bank[i] = new ArrayList<Integer>();
bank[i] = new ArrayList<>();
}
}

Expand Down Expand Up @@ -70,9 +58,9 @@ public boolean hasWon()
{
for (int k = 0; k < bank[2].size(); k++)
{
if (bank[0].get(i) != bank[1].get(j) && bank[1].get(j) != bank[2].get(k) && bank[2].get(k) != bank[0].get(i))
if (!bank[0].get(i).equals(bank[1].get(j)) && !bank[1].get(j).equals(bank[2].get(k)) && !bank[2].get(k).equals(bank[0].get(i)))
{
winningElement = MIXED;
winningElement = Cards.MIXED;
winningColors.add(bank[0].get(i));
winningColors.add(bank[1].get(j));
winningColors.add(bank[2].get(k));
Expand All @@ -86,28 +74,28 @@ public boolean hasWon()

public String getWinningComboAsString()
{
String result = "";
StringBuilder result = new StringBuilder();
if (winningElement < 3)
{
for (int i = 0; i < winningColors.size(); i++)
{
if (i == winningColors.size() - 1)
{
result += "and " + colors[winningColors.get(i)] + " " + elements[winningElement];
result.append("and ").append(colors[winningColors.get(i)]).append(" ").append(elements[winningElement]);
}
else
{
result += colors[winningColors.get(i)] + " " + elements[winningElement] + ", ";
result.append(colors[winningColors.get(i)]).append(" ").append(elements[winningElement]).append(", ");
}
}
return result;
return result.toString();
}
return colors[winningColors.get(0)] + " Fire, " + colors[winningColors.get(1)] + " Water, and " + colors[winningColors.get(2)] + " Snow";
}

public String toString()
{
String result = "";
StringBuilder result = new StringBuilder();
int lastElement = bank.length - 1;
while (lastElement >= 0 && bank[lastElement].isEmpty())
{
Expand All @@ -126,19 +114,19 @@ public String toString()
{
if (i == firstElement && j == 0)
{
result += colors[bank[i].get(j)] + " " + elements[i];
result.append(colors[bank[i].get(j)]).append(" ").append(elements[i]);
}
else
{
result += "and " + colors[bank[i].get(j)] + " " + elements[i];
result.append("and ").append(colors[bank[i].get(j)]).append(" ").append(elements[i]);
}
}
else
{
result += colors[bank[i].get(j)] + " " + elements[i] + ", ";
result.append(colors[bank[i].get(j)]).append(" ").append(elements[i]).append(", ");
}
}
}
return result;
return result.toString();
}
}
12 changes: 1 addition & 11 deletions src/main/java/com/polymars/game/Card.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,6 @@

public class Card {

public static final int FIRE = 0;
public static final int WATER = 1;
public static final int SNOW = 2;

public static final int RED = 0;
public static final int ORANGE = 1;
public static final int YELLOW = 2;
public static final int GREEN = 3;
public static final int BLUE = 4;
public static final int PURPLE = 5;

final String[] elements = {"fire", "water", "snow"};
final String[] colors = {"red", "orange", "yellow", "green", "blue", "purple"};
Expand Down Expand Up @@ -59,7 +49,7 @@ public String getColorAsString()

public String getArticle()
{
if (color == ORANGE)
if (color == Cards.ORANGE)
{
return "an";
}
Expand Down
13 changes: 13 additions & 0 deletions src/main/java/com/polymars/game/Cards.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.polymars.game;

public class Cards {

public static final int FIRE = 0;
public static final int WATER = 1;
public static final int SNOW = 2;
public static final int MIXED = 3;

public static final int ORANGE = 1;
public static final int PURPLE = 5;

}
Comment thread
hdfsyu marked this conversation as resolved.
17 changes: 3 additions & 14 deletions src/main/java/com/polymars/game/Deck.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,7 @@
import java.util.Random;

public class Deck {
public static final int FIRE = 0;
public static final int WATER = 1;
public static final int SNOW = 2;

public static final int RED = 0;
public static final int ORANGE = 1;
public static final int YELLOW = 2;
public static final int GREEN = 3;
public static final int BLUE = 4;
public static final int PURPLE = 5;

private ArrayList<Card> deck;
private final ArrayList<Card> deck;
Random rand = new Random();

public Deck()
Expand All @@ -27,9 +16,9 @@ public void createCards()
{
for (int value = 2; value <= 12; value++)
{
for (int element = FIRE; element <= SNOW; element++)
for (int element = Cards.FIRE; element <= Cards.SNOW; element++)
{
int color = rand.nextInt(PURPLE + 1);
int color = rand.nextInt(Cards.PURPLE + 1);
Card card = new Card(element, value, color);
deck.add(card);
}
Expand Down
15 changes: 4 additions & 11 deletions src/main/java/com/polymars/game/Game.java
Original file line number Diff line number Diff line change
@@ -1,26 +1,19 @@
package com.polymars.game;

import com.polymars.game.Bank;
import com.polymars.game.Deck;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Random;

import static java.lang.Float.NaN;

public class Game {

public static final int FIRE = 0;
public static final int WATER = 1;
public static final int SNOW = 2;

public static final int WIN = 0;
public static final int LOSE = 1;
public static final int TIE = 2;

static final int MAX_HAND = 5;
static final ArrayList<String> elements = new ArrayList<String>(Arrays.asList("fire", "water", "snow"));
static final ArrayList<String> elements = new ArrayList<>(Arrays.asList("fire", "water", "snow"));

static boolean newGame = true;
static boolean startMatch = false;
Expand Down Expand Up @@ -97,8 +90,8 @@ else if (input.equals("no"))
{
return "You currently have " + playerHand.toString() + " in your hand.";
}
String args[] = input.split("\\s+");
if (args.length == 2 && elements.contains(args[0].toLowerCase()) && Integer.parseInt(args[1]) != NaN && Integer.parseInt(args[1]) > 1 && Integer.parseInt(args[1]) < 13)
String[] args = input.split("\\s+");
if (args.length == 2 && elements.contains(args[0].toLowerCase()) && !Float.isNaN(Integer.parseInt(args[1])) && Integer.parseInt(args[1]) > 1 && Integer.parseInt(args[1]) < 13)
{
currentPlayerCard = playerHand.useCard(elements.indexOf(args[0].toLowerCase()), Integer.parseInt(args[1]));
if (currentPlayerCard == null)
Expand Down Expand Up @@ -177,6 +170,6 @@ static int wonRound(Card playerCard, Card opponentCard)

static boolean isTypeAdvantage(int elementX, int elementY)
{
return (elementX == FIRE && elementY == SNOW) || (elementX == WATER && elementY == FIRE) || (elementX == SNOW && elementY == WATER);
return (elementX == Cards.FIRE && elementY == Cards.SNOW) || (elementX == Cards.WATER && elementY == Cards.FIRE) || (elementX == Cards.SNOW && elementY == Cards.WATER);
}
}
30 changes: 9 additions & 21 deletions src/main/java/com/polymars/game/Hand.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,12 @@
import java.util.ArrayList;

public class Hand {
public static final int FIRE = 0;
public static final int WATER = 1;
public static final int SNOW = 2;

public static final int RED = 0;
public static final int ORANGE = 1;
public static final int YELLOW = 2;
public static final int GREEN = 3;
public static final int BLUE = 4;
public static final int PURPLE = 5;

private ArrayList<Card> hand;
private final ArrayList<Card> hand;

public Hand()
{
hand = new ArrayList<Card>();
hand = new ArrayList<>();
}

public void addCard(Card card)
Expand All @@ -28,11 +18,9 @@ public void addCard(Card card)

public Card getCard(int element, int value)
{
for (int i = 0; i < hand.size(); i++)
{
if (hand.get(i).getElement() == element && hand.get(i).getValue() == value)
{
return hand.get(i);
for (Card card : hand) {
if (card.getElement() == element && card.getValue() == value) {
return card;
}
}
return null;
Expand All @@ -58,18 +46,18 @@ public Card useCard(int index)

public String toString()
{
String result = "";
StringBuilder result = new StringBuilder();
for (int i = 0; i < hand.size(); i++)
{
if (i == hand.size() - 1)
{
result += "and " + hand.get(i).getArticle() + " " + hand.get(i).toString();
result.append("and ").append(hand.get(i).getArticle()).append(" ").append(hand.get(i).toString());
}
else
{
result += hand.get(i).getArticle() + " " + hand.get(i).toString() + ", ";
result.append(hand.get(i).getArticle()).append(" ").append(hand.get(i).toString()).append(", ");
}
}
return result;
return result.toString();
}
}