Stap 12: De getRandom methode
Deze methode is echt het vlees van de random aflevering suggestie functie van het programma.
Het programma controleert eerst, om ervoor te zorgen dat ten minste één seizoen checkbox is gemarkeerd. Als dit selectievakje niet in de plaats, het programma zou proberen om willekeurig genereren afleveringen voor onbepaalde tijd omdat geen van de gegenereerde afleveringen zal overeenkomt met een gecontroleerde seizoen (want er geen gecontroleerde seizoenen zijn). Als geen seizoenen niet zijn ingeschakeld, getRandom drukt een waarschuwing aan de gebruiker en geeft als resultaat de matrix {1,1}, die overeenkomt met de piloot.
Als ten minste één seizoen is aangevinkt, beweegt de getRandom op voor het genereren van een willekeurige suggestie. Een int-array wordt geïnstantieerd te houden van de suggestie, en een Booleaanse variabele "hasValidSuggestion" is gedefinieerd om aan te geven of de suggestie gehouden in "suggestie" is geldig (is niet onlangs gesuggereerd).
De manier waarop de tijdjelijn sectie werkt is: getRandom nieuwe aflevering suggesties zal genereren tot één van de twee gevallen is voldaan: de gegenereerde suggestie niet onlangs is voorgesteld en dus geldig is (de waarde van "hasValidSuggestion" instelt op true) of 1000 willekeurige afleveringen zijn gegenereerd zonder een geldige suggestie die zich kunnen voordoen, die aangeeft dat alle mogelijke afleveringen in de geselecteerde seizoenen reeds zijn geselecteerd. Bent u nieuwsgierig over waarom ik koos voor 1000 keer, laat een reactie en ik kan mezelf er uitleggen. :)
Na de while lus, ik eerst controleren om te zien of de while lus werd gestopt omdat "count" 1000 bereikt voordat een geldige suggestie werd gegenereerd. Ik neem dit betekent dat alle afleveringen in de geselecteerde seizoenen hebben gesuggereerd, en de gebruiker moet selecteren andere seizoenen of op beginstand zetten de "gecontroleerde" lijst. In dit geval de suggestie is ingesteld op de piloot en een waarschuwing wordt afgedrukt voor de gebruiker om te luisteren alvorens over te gaan.
Tot slot, als de "if(count == 1000)" voorwaarde is niet voldaan, dan de while lus werd gestopt omdat een geldige suggestie werd gegenereerd. getRandom roept de methode markSuggested om te markeren in de "gecontroleerde" array dat deze bijzondere aflevering is nu gesuggereerd, en geeft als de suggestie voor weergave resultaat.