Avatar billede chris0905 Nybegynder
11. februar 2012 - 18:54 Der er 7 kommentarer og
1 løsning

En enklere måde?

Hej Eksperter!

Jeg er (MEGET) ny i Java, og ville derfor høre om der var en enklere måde at lave denne kode på?:


if( (t1.værdi == 6 && t2.værdi == 6 && t3.værdi == 6)  || (t1.værdi == 6 && t2.værdi == 6 && t4.værdi == 6 )  || (t1.værdi == 6 && t3.værdi == 6 && t4.værdi == 6 )  || (t2.værdi == 6 && t3.værdi == 6 && t4.værdi == 6 ) ) sekser = true;


Bare for at ridse op, så skal den se om 3 (eller mere) af de fire felter har værdien "6"...

På forhånd tak!

Mvh
Christoffer
Avatar billede claes57 Ekspert
11. februar 2012 - 19:03 #1
start med at definere et tal=0
og så
if (t1.værdi == 6) tal+=tal;
if (t2.værdi == 6) tal+=tal;
if (t3.værdi == 6) tal+=tal;
if (t4.værdi == 6) tal+=tal;
(de 4 linjer kan du lave i et loop, hvis det skal være)
og så
if (tal >= 3) sekser = true;
Avatar billede chris0905 Nybegynder
11. februar 2012 - 19:09 #2
tak!
det var en brugbar løsning! :)
smid svar!
Avatar billede claes57 Ekspert
11. februar 2012 - 19:48 #3
bare læg et svar selv og luk...
Avatar billede Slettet bruger
12. februar 2012 - 01:06 #4
tal+=tal -> tal++
Avatar billede chris0905 Nybegynder
21. februar 2012 - 21:39 #5
lukker!
Avatar billede arne_v Ekspert
21. februar 2012 - 21:47 #6
public class Count {
    public static boolean isThreeSixes1(Dice d1, Dice d2, Dice d3, Dice d4) {
        if( (d1.getValue() == 6 && d2.getValue() == 6 && d3.getValue() == 6)
        || (d1.getValue() == 6 && d2.getValue() == 6 && d4.getValue() == 6 )
        || (d1.getValue() == 6 && d3.getValue() == 6 && d4.getValue() == 6 )
        || (d2.getValue() == 6 && d3.getValue() == 6 && d4.getValue() == 6 ) ) {
            return true;
        } else {
            return false;
        }
    }
    public static boolean isThreeSixes2(Dice d1, Dice d2, Dice d3, Dice d4) {
        return (d1.getValue() == 6 && d2.getValue() == 6 && d3.getValue() == 6)
            || (d1.getValue() == 6 && d2.getValue() == 6 && d4.getValue() == 6 )
            || (d1.getValue() == 6 && d3.getValue() == 6 && d4.getValue() == 6 )
            || (d2.getValue() == 6 && d3.getValue() == 6 && d4.getValue() == 6 );
    }
    public static boolean isThreeSixes3(Dice d1, Dice d2, Dice d3, Dice d4) {
        int n6 = 0;
        if(d1.getValue() == 6) n6++;
        if(d2.getValue() == 6) n6++;
        if(d3.getValue() == 6) n6++;
        if(d4.getValue() == 6) n6++;
        if(n6 >= 3) {
            return true;
        } else {
            return false;
        }
    }
    public static boolean isThreeSixes4(Dice d1, Dice d2, Dice d3, Dice d4) {
        int n6 = 0;
        if(d1.getValue() == 6) n6++;
        if(d2.getValue() == 6) n6++;
        if(d3.getValue() == 6) n6++;
        if(d4.getValue() == 6) n6++;
        return n6 >= 3;
    }
    public static boolean isThreeSixes5(Dice d1, Dice d2, Dice d3, Dice d4) {
        if( ("" + d1.getValue() + d2.getValue() + d3.getValue() + d4.getValue()).replaceAll("[^6]", "").length() >= 3 ) {
            return true;
        } else {
            return false;
        }
    }
    public static boolean isThreeSixes6(Dice d1, Dice d2, Dice d3, Dice d4) {
        return ("" + d1.getValue() + d2.getValue() + d3.getValue() + d4.getValue()).replaceAll("[^6]", "").length() >= 3;
    }
    public static void test(Dice d1, Dice d2, Dice d3, Dice d4) {
        System.out.println(isThreeSixes1(d1, d2, d3 ,d4));
        System.out.println(isThreeSixes2(d1, d2, d3 ,d4));
        System.out.println(isThreeSixes3(d1, d2, d3 ,d4));
        System.out.println(isThreeSixes4(d1, d2, d3 ,d4));
        System.out.println(isThreeSixes5(d1, d2, d3 ,d4));
        System.out.println(isThreeSixes6(d1, d2, d3 ,d4));
    }
    public static void main(String[] args) {
        test(new Dice(6), new Dice(5), new Dice(6), new Dice(6));
        test(new Dice(6), new Dice(5), new Dice(4), new Dice(6));
        test(new Dice(6), new Dice(6), new Dice(6), new Dice(6));
    }
}

class Dice {
    private int value;
    public Dice(int value) {
        this.value = value;
    }
    public int getValue() {
        return value;
    }
}
Avatar billede chris0905 Nybegynder
21. februar 2012 - 21:52 #7
jeg er ikke helt med... er det der en "enklere" måde??? ;)
Avatar billede arne_v Ekspert
21. februar 2012 - 22:03 #8
Det er 6 forskellige maader at goere det paa. Saa kan du selv vurdere hvilken du synes er enklest.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester