+ Reply to Thread
Results 1 to 2 of 2

Thread: Projekt Sazka

  1. #1

    Projekt Sazka

    Ahoj...
    Já jsem se po dlouhém uvažování rozhodl pro Javu v BlueJ a mám hnedka menši problém. Pracuju na projektu simulace sportky a nejde mi do hlavy proč musím mít dvě třídy?

    Našel by se tu někdo kdo by mi vysvětlil proč mám mít dvě třídy?? Přídou mi ,že smysl obouch je stejný - losuju šest čísel pomoci metody Random--to je u obouch, akorát u jedné je přidán ArrayList..???
    koukněte???:
    Code:
    import java.util.ArrayList;
    import java.util.Random;
    
    public class Sportka2 {
    // objekt tridy ArrayList, ktery predstavuje 49 micku
    
        private ArrayList micky;
    // pole, do ktereho se ukladaji tazena cisla
        public int[] tazenaCisla;
    // objekt tridy Random, pomoci ktereho se generuji nahodna cisla
        private Random generator;
    
        public Sportka2() {
    // vytvori objekt tridy ArrayList - kapacita 49 (49 micku)
            micky = new ArrayList(49);
    // vytvori pole sesti prvku typu int - tazena cisla
            tazenaCisla = new int[6];
    // vytvori objekt tridy Random
            generator = new Random();
    // zavola funkci reset, ktera "vytvori micky"
            reset();
        }
    
        /**
         * Provede nahodny vyber 6-ti micku
         */
        public void provedLosovani() {
    // zavola funkci reset, ktera "vytvori micky"
            reset();
    // cyklus o sesti opakovani - tah sesti micku
            for (int i = 0; i < 6; i++) {
    // vygeneruje se nahodne cislo od 0 do 48
                int nahodnyIndex = generator.nextInt(49 - i);
    // podle vygenerovaneho indexu se vybere micek
                Integer tazenyMicek = (Integer) (micky.get(nahodnyIndex));
    // vylosovany micek se odstrani
                micky.remove(nahodnyIndex);
    // hodnota micku (vylosovane cislo) se prida do pole tazenaCisla
                tazenaCisla[i] = tazenyMicek.intValue();
            }
        }
    
        /**
         * Vypise vysledek posledniho losovani
         */
        public void vypisVysledek() {
    // cyklus o sesti opakovani - vypsani sesti cisel
            for (int i = 0; i < 6; i++) {
                System.out.println(tazenaCisla[i]);
            }
    // provede odradkovani();
            System.out.println();
        }
    
        /**
         * funkce, ktera vytvori micky - naplni ArrayList micky objekty typu Integer
         */
        public void reset() {
    // vyprazdni ArrayList micky
            micky.clear();
    // cyklus o 49 opakovani
            for (int i = 0; i < 49; i++) {
    // priradi do ArrayListu micky objekt tridy Integer;
                micky.add(i, new Integer(i + 1));
            }
        }

    A druhý:

    Code:
    import java.util.Random;
    
    public class Sportka1 {
    // pole, do ktereho se ukladaji tazena cisla
    
        public int[] tazenaCisla;
    // objekt tridy Random, pomoci ktereho se generuji nahodna cisla
        private Random generator;
    
        public Sportka1() {
    // vytvori pole sesti prvku typu int - tazena cisla
            tazenaCisla = new int[6];
    // vytvori objekt tridy Random
            generator = new Random();
        }
    
        public void provedLosovani() {
    // cyklus s sesti opakovanimi - vybira sest cisel
            for (int i = 0; i < 6; i++) {
    // generuje nahodne cislo
                int nahodneCislo = generator.nextInt(49) + 1;
                boolean tazeno = false;
    // porovna tazene cislo s predtim tazenymi cisly
                for (int q = 0; q < i; q++) {
    // kdyz bylo tazene cislo uz predtim tazeno, nastavi tazeno na true
                    if (tazenaCisla[q] == nahodneCislo) {
                        tazeno = true;
                    }
                }
    // jestlize tazene cislo nebylo predtim tazeno, ulozi se do tazenych cisel
                if (tazeno == false) {
                    tazenaCisla[i] = nahodneCislo;
                } // jestlize bylo predtim tazeno, zmensi ridici promennou cyklu o jedna,
                // coz ma za nasledek opakovani tahu
                else {
                    i--;
                }
            }
        }
    
        /**
         * Vypise vysledek posledniho losovani
         */
        public void vypisVysledek() {
    // cyklus o sesti opakovani - vypsani sesti cisel
            for (int i = 0; i < 6; i++) {
                System.out.println(tazenaCisla[i]);
            }
    // provede odradkovani();
            System.out.println();
        }
    }
    Adminovy se předem omlovám za tento neforemný zapis...
    edit: Admin zápis opravil

    Nestačila by jen jedna třída????? prosím pomozte...díky

  2. #2

    Re: Projekt Sazka

    Tak obě třídy jsou stejné, v podstatě jde o to, že první třídá vybere míček z celkového počtu 49.
    Druhá třídá je totální blbost, protože nekontroluje zda už míček byl vybrán, ale prostě to vybirá druhý míček s počtu 48. Což je špatně. Nebudu ti tady psát celý kód, ale třeba ArrayList vůbec nemusíš používat.

+ Reply to Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts