Sortowanie kart

0

Witam
Mam problem ze zrozumieniem, co za tym idzie z napisaniem metody sortowania kart.
Działać do ma mniej więcej tak:

  • Tworzę sobie pustą arraylistę,
  • Losują wartość karty (przedział od 0 - 13)
  • jeżeli jest równe 0, przerywam tworzenie talii kart
  • jeżeli jest różne od 0, losuję kolor karty (0 - 3)
  • Tak stworzoną kartę muszę spróbować upchać do listy na właściwa pozycję. Nie mogę najpierw wygenerować listy, a potem ją posortować -niestety, takie wymagania. I z tym mam największy problem.

Nie mogę używać sort, nie mogę używać comparatorów, muszę to jakoś w przebiegu pętli znaleźć.

Dodam, że jestem całkiem początkujący stąd moje pytanie ląduje w dziale Newbie.

Co mi się udało napisać?

public class Talia
{
    ArrayList<Karta> talia = new ArrayList<Karta>();
    int liczba_kart = 0;
    
    public void losuj() {
        int w, k;
        
        while((w= (int)(Math.random() * 14)) != 0) {
            k = (int)(Math.random() * 4);
            
            if(liczba_kart == 0) {
                talia.add(new Karta(w, k));
                liczba_kart++;
            }
            else {
                    // Nie mam zielonego pojęcia co tutaj wpisać

                liczba_kart++;
            }
            
        }
    }
} 

Proszę Was o pomoc.

Pozdrawiam.
Sizzla.

0

Zmodyfikuj sobie odpowiednio wyszukiwanie binarne, aby znajdywało miejsce w które musisz wstawić kartę - czyli takie gdzie poprzednia karta jest mniejsza niż wylosowana, oraz następna jest większa niż wylosowana. Wartości kart obliczysz sobie w prosty sposób - kolor*numer karty. Zakładając, że chcesz sortować tak:

dwójka wino
trójka wino
..
as wino
dwójka czerwo
trójka czerwo
..
as czerwo

..czyli tak, jak posortowane są nowe karty.

0

Ogólnie wg mnie to trzeba najpierw podzielić karty na grupy wg kolorów a następnie posortować wg wartości.

1 użytkowników online, w tym zalogowanych: 0, gości: 1