I'm developing a card game that requires one deck of 52 cards using Java. The 52 card has 4 suits from top to bottom: diamonds (d), clubs (c), hearts (h), and spades (s). Each card has a point. The rest of the instructions are in the images. Based on the code below, it outputs the maximum points of all 5 sorted cards. Instead, I need the total point chosen from the suit that gives the highest point. The images shown are for reference purposes. import java.util.HashMap; import java.io.*; public class CardPointsList { static HashMap Code = new HashMap<>(); static HashMap Order = new HashMap<>(); static String[][] hand= {{ "c5","s6","sK","dK","dA"},{"s7","s4","dJ","sA","h5"},{"sQ","d3","c9","hK","d5"}}; static int[] scores={0,0,0}; public static void sortHand() { String temp; for (int h=0;h<3;h++) {for (int i=0;i<5;i++) { for (int j=i+1;j<5;j++) { if (hand[h][j].charAt(0) < hand[h][i].charAt(0)) {temp = hand[h][j]; hand[h][j] = hand[h][i]; hand[h][i] = temp; } else if (hand[h][j].charAt(0) == hand[h][i].charAt(0)) { if (Order.get(hand[h][j].charAt(1)) < Order.get(hand[h][i].charAt(1))) {temp = hand[h][j]; hand[h][j] = hand[h][i]; hand[h][i] = temp; } } } //for j } // for i }// for h } public static void printHand() { for (int h=0;h<3;h++) { for (int i=0;i<5;i++) { System.out.println(hand[h][i]);} System.out.println(); } } public static void getPoints( ) { int total=0; for (int h=0;h<3;h++) { for (int i=0;i<5;i++) { String myStr = Character.toString(hand[h][i].charAt(1)); total += Code.get(myStr); } scores[h]=total; System.out.println(scores[h]); total=0; } } public static int getmax() { int max=0; int handNum=0; for (int h=0;h<3;h++) { if (scores[h]>max) {max=scores[h]; handNum=h; } } System.out.println("Maximum points :" + max); return handNum+1; } public static void main(String[] args) throws IOException { Code.put("A",1); Code.put("2",2); Code.put("3",3); Code.put("4",4); Code.put("5",5); Code.put("6",6); Code.put("7",7); Code.put("8",8); Code.put("9",9); Code.put("X",10); Code.put("J",10); Code.put("K",10); Code.put("Q",10); Order.put('A',1); Order.put('2',2); Order.put('3',3); Order.put('4',4); Order.put('5',5); Order.put('6',6); Order.put('7',7); Order.put('8',8); Order.put('9',9); Order.put('X',10); Order.put('K',11); Order.put('Q',12); Order.put('J',13); sortHand(); printHand(); getPoints(); int maxh=getmax(); System.out.println("Maximum points are for hand " + maxh); } }
I'm developing a card game that requires one deck of 52 cards using Java. The 52 card has 4 suits from top to bottom: diamonds (d), clubs (c), hearts (h), and spades (s). Each card has a point. The rest of the instructions are in the images. Based on the code below, it outputs the maximum points of all 5 sorted cards. Instead, I need the total point chosen from the suit that gives the highest point. The images shown are for reference purposes. import java.util.HashMap; import java.io.*; public class CardPointsList { static HashMap Code = new HashMap<>(); static HashMap Order = new HashMap<>(); static String[][] hand= {{ "c5","s6","sK","dK","dA"},{"s7","s4","dJ","sA","h5"},{"sQ","d3","c9","hK","d5"}}; static int[] scores={0,0,0}; public static void sortHand() { String temp; for (int h=0;h<3;h++) {for (int i=0;i<5;i++) { for (int j=i+1;j<5;j++) { if (hand[h][j].charAt(0) < hand[h][i].charAt(0)) {temp = hand[h][j]; hand[h][j] = hand[h][i]; hand[h][i] = temp; } else if (hand[h][j].charAt(0) == hand[h][i].charAt(0)) { if (Order.get(hand[h][j].charAt(1)) < Order.get(hand[h][i].charAt(1))) {temp = hand[h][j]; hand[h][j] = hand[h][i]; hand[h][i] = temp; } } } //for j } // for i }// for h } public static void printHand() { for (int h=0;h<3;h++) { for (int i=0;i<5;i++) { System.out.println(hand[h][i]);} System.out.println(); } } public static void getPoints( ) { int total=0; for (int h=0;h<3;h++) { for (int i=0;i<5;i++) { String myStr = Character.toString(hand[h][i].charAt(1)); total += Code.get(myStr); } scores[h]=total; System.out.println(scores[h]); total=0; } } public static int getmax() { int max=0; int handNum=0; for (int h=0;h<3;h++) { if (scores[h]>max) {max=scores[h]; handNum=h; } } System.out.println("Maximum points :" + max); return handNum+1; } public static void main(String[] args) throws IOException { Code.put("A",1); Code.put("2",2); Code.put("3",3); Code.put("4",4); Code.put("5",5); Code.put("6",6); Code.put("7",7); Code.put("8",8); Code.put("9",9); Code.put("X",10); Code.put("J",10); Code.put("K",10); Code.put("Q",10); Order.put('A',1); Order.put('2',2); Order.put('3',3); Order.put('4',4); Order.put('5',5); Order.put('6',6); Order.put('7',7); Order.put('8',8); Order.put('9',9); Order.put('X',10); Order.put('K',11); Order.put('Q',12); Order.put('J',13); sortHand(); printHand(); getPoints(); int maxh=getmax(); System.out.println("Maximum points are for hand " + maxh); } }
Chapter7: Developing An Excel Application
Section: Chapter Questions
Problem 3.10CP
Related questions
Question
I'm developing a card game that requires one deck of 52 cards using Java.
The 52 card has 4 suits from top to bottom: diamonds (d), clubs (c), hearts (h), and spades (s). Each card has a point. The rest of the instructions are in the images.
Based on the code below, it outputs the maximum points of all 5 sorted cards. Instead, I need the total point chosen from the suit that gives the highest point. The images shown are for reference purposes.
import java.util.HashMap;
import java.io.*;
public class CardPointsList {
static HashMap<String,Integer> Code = new HashMap<>();
static HashMap<Character,Integer> Order = new HashMap<>();
static String[][] hand= {{ "c5","s6","sK","dK","dA"},{"s7","s4","dJ","sA","h5"},{"sQ","d3","c9","hK","d5"}};
static int[] scores={0,0,0};
public static void sortHand()
{ String temp;
for (int h=0;h<3;h++)
{for (int i=0;i<5;i++)
{ for (int j=i+1;j<5;j++)
{ if (hand[h][j].charAt(0) < hand[h][i].charAt(0))
{temp = hand[h][j];
hand[h][j] = hand[h][i];
hand[h][i] = temp;
}
else
if (hand[h][j].charAt(0) == hand[h][i].charAt(0))
{ if (Order.get(hand[h][j].charAt(1)) < Order.get(hand[h][i].charAt(1)))
{temp = hand[h][j];
hand[h][j] = hand[h][i];
hand[h][i] = temp;
}
}
} //for j
} // for i
}// for h
}
public static void printHand()
{ for (int h=0;h<3;h++) {
for (int i=0;i<5;i++)
{ System.out.println(hand[h][i]);}
System.out.println();
}
}
public static void getPoints( )
{ int total=0;
for (int h=0;h<3;h++)
{
for (int i=0;i<5;i++)
{ String myStr = Character.toString(hand[h][i].charAt(1));
total += Code.get(myStr);
}
scores[h]=total;
System.out.println(scores[h]);
total=0;
}
}
public static int getmax()
{ int max=0;
int handNum=0;
for (int h=0;h<3;h++)
{ if (scores[h]>max)
{max=scores[h];
handNum=h;
}
}
System.out.println("Maximum points :" + max);
return handNum+1;
}
public static void main(String[] args) throws IOException {
Code.put("A",1);
Code.put("2",2);
Code.put("3",3);
Code.put("4",4);
Code.put("5",5);
Code.put("6",6);
Code.put("7",7);
Code.put("8",8);
Code.put("9",9);
Code.put("X",10);
Code.put("J",10);
Code.put("K",10);
Code.put("Q",10);
Order.put('A',1);
Order.put('2',2);
Order.put('3',3);
Order.put('4',4);
Order.put('5',5);
Order.put('6',6);
Order.put('7',7);
Order.put('8',8);
Order.put('9',9);
Order.put('X',10);
Order.put('K',11);
Order.put('Q',12);
Order.put('J',13);
sortHand();
printHand();
getPoints();
int maxh=getmax();
System.out.println("Maximum points are for hand " + maxh);
}
}
Expert Solution
This question has been solved!
Explore an expertly crafted, step-by-step solution for a thorough understanding of key concepts.
This is a popular solution!
Trending now
This is a popular solution!
Step by step
Solved in 2 steps
Knowledge Booster
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.Recommended textbooks for you
Np Ms Office 365/Excel 2016 I Ntermed
Computer Science
ISBN:
9781337508841
Author:
Carey
Publisher:
Cengage
COMPREHENSIVE MICROSOFT OFFICE 365 EXCE
Computer Science
ISBN:
9780357392676
Author:
FREUND, Steven
Publisher:
CENGAGE L
Np Ms Office 365/Excel 2016 I Ntermed
Computer Science
ISBN:
9781337508841
Author:
Carey
Publisher:
Cengage
COMPREHENSIVE MICROSOFT OFFICE 365 EXCE
Computer Science
ISBN:
9780357392676
Author:
FREUND, Steven
Publisher:
CENGAGE L