Skip to content

Instantly share code, notes, and snippets.

@karaliux887
Created March 24, 2016 21:09
import java.io.*;
import java.util.*;
public class MyClass {
public static void main(String[] args) {
File file = new File("data.txt");
int[] bamboo = new int[10];
int[] circle = new int[10];
int[] character = new int[10];
int[] bambooCp = new int[10];
int[] circleCp = new int[10];
int[] characterCp = new int[10];
//Read input
try {
Scanner input = new Scanner(file);
int c = input.nextInt();
System.out.printf("%d\n", c);
String line = input.nextLine();
char number;
for(int i = 0; i < c; i++) {
line = input.nextLine();
number = line.charAt(1);
if(number == 'a')
bamboo[Character.getNumericValue(line.charAt(7))]++;
if(number == 'i')
circle[Character.getNumericValue(line.charAt(7))]++;
if(number == 'h')
character[Character.getNumericValue(line.charAt(10))]++;
}
input.close();
} catch (FileNotFoundException ex){
System.out.printf("Error: %s\n", ex);
}
makeCopies(bamboo, circle, character, bambooCp, circleCp, characterCp);
boolean win = false;
//1 combination
deletePairs(bambooCp, circleCp, characterCp);
deleteSets(bambooCp, circleCp, characterCp);
deleteSequences(bambooCp, circleCp, characterCp);
win = checkHand(bambooCp, circleCp, characterCp);
if(win == true) {
System.out.printf("Winning hand.(1 comb.)\n");
System.exit(0);
}
makeCopies(bamboo, circle, character, bambooCp, circleCp, characterCp);
//2 combination
deletePairs(bambooCp, circleCp, characterCp);
deleteSequences(bambooCp, circleCp, characterCp);
deleteSets(bambooCp, circleCp, characterCp);
win = checkHand(bambooCp, circleCp, characterCp);
if(win == true) {
System.out.printf("Winning hand.(2 comb.)\n");
System.exit(0);
}
makeCopies(bamboo, circle, character, bambooCp, circleCp, characterCp);
//3 combination
deleteSets(bambooCp, circleCp, characterCp);
deletePairs(bambooCp, circleCp, characterCp);
deleteSequences(bambooCp, circleCp, characterCp);
win = checkHand(bambooCp, circleCp, characterCp);
if(win == true) {
System.out.printf("Winning hand.(3 comb.)\n");
System.exit(0);
}
makeCopies(bamboo, circle, character, bambooCp, circleCp, characterCp);
//4 combination
deleteSets(bambooCp, circleCp, characterCp);
deleteSequences(bambooCp, circleCp, characterCp);
deletePairs(bambooCp, circleCp, characterCp);
win = checkHand(bambooCp, circleCp, characterCp);
if(win == true) {
System.out.printf("Winning hand.(4 comb.)\n");
System.exit(0);
}
makeCopies(bamboo, circle, character, bambooCp, circleCp, characterCp);
//5 combination
deleteSequences(bambooCp, circleCp, characterCp);
deletePairs(bambooCp, circleCp, characterCp);
deleteSets(bambooCp, circleCp, characterCp);
win = checkHand(bambooCp, circleCp, characterCp);
if(win == true) {
System.out.printf("Winning hand.(5 comb.)\n");
System.exit(0);
}
makeCopies(bamboo, circle, character, bambooCp, circleCp, characterCp);
//6 combination
deleteSequences(bambooCp, circleCp, characterCp);
deleteSets(bambooCp, circleCp, characterCp);
deletePairs(bambooCp, circleCp, characterCp);
win = checkHand(bambooCp, circleCp, characterCp);
if(win == true) {
System.out.printf("Winning hand.(6 comb.)\n");
System.exit(0);
}
System.out.printf("Not a winning hand");
}
public static void deletePairs(int[] suit1, int[] suit2, int[] suit3) {
int i = 0;
while(i < 10) {
if(suit1[i] > 1)
suit1[i] = suit1[i] - 2;
else if(suit2[i] > 1)
suit2[i] = suit2[i] - 2;
else if(suit3[i] > 1)
suit3[i] = suit3[i] - 2;
else
i++;
}
}
public static void deleteSets(int[] suit1, int[] suit2, int[] suit3) {
int i = 0;
while(i < 10) {
if(suit1[i] > 2)
suit1[i] = suit1[i] - 3;
else if(suit2[i] > 2)
suit2[i] = suit2[i] - 3;
else if(suit3[i] > 2)
suit3[i] = suit3[i] - 3;
else
i++;
}
}
public static void deleteSequences(int[] suit1, int[] suit2, int[] suit3) {
int i = 0;
while(i < 10) {
if( (suit1[i] > 0) && (suit1[i + 1] > 0) && (suit1[i + 2] > 0) ) {
suit1[i]--;
suit1[i + 1]--;
suit1[i + 2]--;
}
else if( (suit2[i] > 0) && (suit2[i + 1] > 0) && (suit2[i + 2] > 0) ) {
suit2[i]--;
suit2[i + 1]--;
suit2[i + 2]--;
}
else if( (suit3[i] > 0) && (suit3[i + 1] > 0) && (suit3[i + 2] > 0) ) {
suit3[i]--;
suit3[i + 1]--;
suit3[i + 2]--;
}
else
i++;
}
}
public static void makeCopies(int[] suit1, int[] suit2, int[] suit3, int[] suit1Cp, int[] suit2Cp, int[] suit3Cp) {
for(int i = 0; i < 10; i++) {
suit1Cp[i] = suit1[i];
suit2Cp[i] = suit2[i];
suit3Cp[i] = suit3[i];
}
}
public static boolean checkHand(int[] suit1, int[] suit2, int[] suit3) {
int c = 0;
for(int i = 0; i < 10; i++) {
c = c + suit1[i] + suit2[i] + suit3[i];
}
if(c == 0)
return true;
else
return false;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment