Skip to content

Instantly share code, notes, and snippets.

@Happsson
Created September 17, 2014 12:19
Show Gist options
  • Save Happsson/ec3a0d27988a14bd5953 to your computer and use it in GitHub Desktop.
Save Happsson/ec3a0d27988a14bd5953 to your computer and use it in GitHub Desktop.
mathematica1.java
package math;
import java.util.ArrayList;
import java.util.Arrays;
public class Mathematica1 {
static float farghander = 0;
static float par = 0;
static float triss = 0;
static float fyrtal = 0;
static float hus = 0;
static float stegar = 0;
static float tvapar = 0;
static float fargstage = 0;
static ArrayList<Card> cards;
static ArrayList<ArrayList<Card>> hands;
public static void main (String[] args){
setUpCardDeck();
checkResult();
printOut();
}
private static void setUpCardDeck() {
cards = new ArrayList<Card>();
hands = new ArrayList<ArrayList<Card>>();
for(int black = 1; black <= 10; black++){
Card card = new Card("black", black);
cards.add(card);
}
for(int red = 1; red <= 8; red++){
Card card = new Card("red", red);
cards.add(card);
}
for(int green = 1; green <= 8; green++){
Card card = new Card("green", green);
cards.add(card);
}
for(int blue = 1; blue <= 7; blue++){
Card card = new Card("blue", blue);
cards.add(card);
}
for(int kort1 = 0; kort1 < cards.size(); kort1++){
for(int kort2 = kort1+1; kort2 < cards.size(); kort2++){
for(int kort3 = kort2+1; kort3 < cards.size(); kort3++){
for(int kort4 = kort3+1; kort4 < cards.size(); kort4++){
for(int kort5 = kort4+1; kort5 < cards.size(); kort5++){
ArrayList<Card> hand = new ArrayList<Card>();
hand.add(cards.get(kort1));
hand.add(cards.get(kort2));
hand.add(cards.get(kort3));
hand.add(cards.get(kort4));
hand.add(cards.get(kort5));
hands.add(hand);
}
}
}
}
}
}
private static void checkResult() {
for(ArrayList<Card> hand : hands){
int[] numbers = {0,0,0,0,0,0,0,0,0,0};
boolean[] suits = new boolean[4];
Arrays.fill(suits, true);
checkNumber(numbers, hand);
checkSuite(suits, hand);
checkPair(numbers);
checkSuithands(suits,numbers,hand);
checkStege(numbers);
}
}
private static void printOut() {
System.out.println("Totalt antal kort: " + cards.size());
System.out.println("Totalt antal händer: " + hands.size());
System.out.println("Par: " + par + " st.\t\t Sannolikhet: " + par/hands.size()*100f + "%");
System.out.println("Tvåpar: " + tvapar + " st.\t\t Sannolikhet: " + tvapar/hands.size()*100f + "%");
System.out.println("Triss: " + triss + " st.\t\t Sannolikhet: " + triss/hands.size()*100f + "%");
System.out.println("Stege: " + stegar + " st.\t\t Sannolikhet: " + stegar/hands.size()*100f + "%");
System.out.println("Kåk: " + hus + " st. \t\t Sannolikhet: " + hus/hands.size()*100f + "%");
System.out.println("Färg: " + farghander + " st.\t\t\t Sannolikhet: " + farghander/hands.size()*100f + "%");
System.out.println("Fyrtal: " + fyrtal + " st.\t\t Sannolikhet: " + fyrtal/hands.size()*100f + "%");
System.out.println("Färgstege: " + fargstage + " st.\t\t Sannolikhet: " + fargstage/hands.size()*100f + "%");
System.out.println("Tot vinsthänder: " + (par+tvapar+triss+hus+fyrtal+stegar+fargstage+farghander) +
" st.\t Sannolikhet: " + (par+tvapar+triss+hus+fyrtal+stegar+fargstage+farghander)/hands.size()*100f + "%");
}
private static void checkStege(int[] numbers) {
for(int j = 0; j < 6; j++){
if(
numbers[j+0] == 1 &&
numbers[j+1] == 1 &&
numbers[j+2] == 1 &&
numbers[j+3] == 1 &&
numbers[j+4] == 1){
stegar++;
}
}
}
private static void checkSuithands(boolean[] suits, int[] numbers, ArrayList<Card> hand) {
for(int i = 0; i < 4; i++){
if(suits[i]==true){
farghander++;
for(int j = 0; j < 6; j++){
if(
numbers[j+0] == 1 &&
numbers[j+1] == 1 &&
numbers[j+2] == 1 &&
numbers[j+3] == 1 &&
numbers[j+4] == 1){
fargstage++;
farghander--;
stegar--;
}
}
}
}
}
private static void checkPair(int[] numbers) {
int parCheck = 0;
int trissCheck = 0;
for(int i = 0; i < numbers.length; i++){
if(numbers[i] == 2) parCheck++;
if(numbers[i] == 3) trissCheck++;
if(numbers[i] == 4) {
fyrtal++;
}
}
if(parCheck == 1 && trissCheck == 0) par++;
if(parCheck == 2) tvapar++;
if(parCheck == 1 && trissCheck == 1) {
hus++;
}
if(trissCheck == 1 && parCheck == 0) {
triss++;
}
}
private static void checkNumber(int[] numbers, ArrayList<Card> hand) {
for(Card card : hand){
numbers[card.getNumber()-1]++;
}
}
private static void checkSuite(boolean[] suits, ArrayList<Card> hand) {
for(Card card : hand){
if(card.getColor() != "black") {
suits[0] = false;
}
if(card.getColor() !="red") {
suits[1] = false;
}
if(card.getColor() != "green") {
suits[2] = false;
}
if(card.getColor() != "blue") {
suits[3] = false;
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment