atarionline.pl Program do losowania totolotka - Forum Atarum

Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.

  • :
  • :

Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.

    • 1: CommentAuthorwery
    • CommentTime11 Feb 2024 zmieniony
     
    Witam. Poszukuję listingów programów do losowania liczb w totolotku. Mogą to być proste lub bardziej złożone programy.
    Pozdrawiam
    • 2:
       
      CommentAuthorpirx
    • CommentTime11 Feb 2024 zmieniony
     
    10 MAX=65:CNT=6:F.I=1TOCNT:?INT(RND(0)*MAX+0.5);" ";:N.I:?:G.10
    • 3:
       
      CommentAuthorjhusak
    • CommentTime12 Feb 2024 zmieniony
     
    Oj, chyba błąd :)

    10 MAX=65:CNT=6:F.I=1TOCNT:?INT(RND(0)*MAX+1);" ";:N.I:?:G.10


    No i jeszcze kwestia powtarzania się wyników, ale te można odrzucić.
    • 4:
       
      CommentAuthorpirx
    • CommentTime12 Feb 2024
     
    hehe no tak :))) takie z odrzutem jeszcze by się w linijce zmieściło chyba.
    • 5:
       
      CommentAuthorBca
    • CommentTime15 Feb 2024 zmieniony
     
    Kiedyś TOTOLOTEK był wylosowywany za pomocą takiej analogowej betoniarki. Sam ostatnio pytałem GPT czy zna już najbliższe wyniki lotto... Takie czasy. A program bym tak poprawił MAX=49
    • 6:
       
      CommentAuthorPeri Noid
    • CommentTime15 Feb 2024
     
    Na próbę @QTZ: ->link<-
    • 7:
       
      CommentAuthorKaz
    • CommentTime15 Feb 2024
     
    Pozwoliłem sobie na modyfikację tytułu wątku, usuwając dopisek o emulatorach, bo zbędny, a teraz jest czytelniej.
    • 8: CommentAuthorastrofor
    • CommentTime15 Feb 2024
     
    Ale jak atari wylosuje mi szczęśliwe numery to wygram milion w starych czy nowych złotych ?
    • 9:
       
      CommentAuthorKaz
    • CommentTime16 Mar 2024 zmieniony
     
    Był też program w Bajtku Leszka Stróżowskiego (zapodaję niżej, ale jeśli chcesz go przepisać to pamiętaj, ze w którymś następnym numerze była errata, bo były jakieś błędy podczas składu pisma - OIDP).
    • 10: CommentAuthorwery
    • CommentTime17 Mar 2024
     
    Errata jest w Bajtek nr 1991_02.
    Załączam plik
    • 11: CommentAuthorlzd
    • CommentTime17 Mar 2024 zmieniony
     
    Na prośbę QTZ:
    • 12: CommentAuthorlzd
    • CommentTime17 Mar 2024
     

    pirx:

    takie z odrzutem jeszcze by się w linijce zmieściło chyba.

    W Atari Basicu nie zmieści się, bo spełniony warunek IF działa do końca linii. W innych dialektach też będzie problem ze względu na ograniczenie długości linii do 120 znaków.
    10 DIM R(6):M=49:C=6
    15 FOR I=0 TO C-1
    20 R(I)=INT(RND(0)*M+1)
    25 FOR J=0 TO I-1
    30 IF R(I)=R(J) THEN 20
    25 NEXT J
    30 ? R(I);" ";
    35 NEXT I
    40 ? :GOTO 15
    • 13:
       
      CommentAuthorpirx
    • CommentTime18 Mar 2024
     
    10 M=49:C=6 :DIM R(C-1)
    15 FOR I=0 TO C-1
    20 R=INT(RND(0)*M+1)
    30 FOR J=0 TO I-1
    40 IF R=R(J) THEN POP :GOTO 20
    50 NEXT J
    60 R(I)=R:? R;" ";
    70 NEXT I
    100 ? :RUN
    • 14: CommentAuthorwery
    • CommentTime15 Jul 2024
     
    Jak go zmienić, aby po wylosowaniu 6 z 49 liczb bez powtórzeń zapisać je jako zmienne liczbowe A1,A2,A3,A4,A5,A6?
    10 M=49:C=6 :DIM R(C-1)
    15 FOR I=0 TO C-1
    20 R=INT(RND(0)*M+1)
    30 FOR J=0 TO I-1
    40 IF R=R(J) THEN POP :GOTO 20
    50 NEXT J
    60 R(I)=R:? R;" ";
    70 NEXT I
    • 15: CommentAuthorlzd
    • CommentTime15 Jul 2024
     
    80 A1=R(0):A2=R(1):A3=R(2):A4=R(3):A5=R(4):A6=R(5)
    :-)
    • 16:
       
      CommentAuthorPeri Noid
    • CommentTime15 Jul 2024 zmieniony
     
    Zaproponuję inne podejście:
    10 M=49:C=6:DIM R(C-1)
    20 FOR I=M TO 1 STEP -1
    30 S=INT(RND(0)*I)
    40 IF S<C THEN C=C-1:R(C)=I;? I
    50 IF C=0 THEN END
    60 NEXT I
    • 17: CommentAuthorwery
    • CommentTime17 Jul 2024
     
    Dziękuję za porady. W niedzielę postaram się zastosować proponowane rozwiązania. Ewentualnie poproszę o dalszą pomoc.
    Już nie mam atari, do basica wykorzystuję emulator Atari800Win Plus 4.1. Czy w tym emulatorze można przewijać kod programu, np. poruszając się kursorem (strzałkami) góra, dół.
    Pozdrawiam
    • 18:
       
      CommentAuthorpirx
    • CommentTime17 Jul 2024
     
    nie, ale jeśli masz ochotę na takie edytowanie to spójrz w fastbasic ->link<-

    Tutaj masz ładny edytor, składnia jest trochę inna, szczególnie jeśli chodzi o obsługę napisów, ale daje się ogarnąć.
    • 19: CommentAuthorwery
    • CommentTime5 dni temu
     
    FastBasic na razie całkowicie mnie przerasta. Brak znajomości angielskiego a translator może wprowadzać w błąd.
    Wolę dokształcać się w ataribasic.
    Mój projekt działania programu wygląda następująco.

    100 PRINT "podaj 6 liczb z 49, bez powtórzeń, w dowolnej kolejności"
    110 INPUT L1,L2,L3,L4,L5,L6
    120 PRINT L1;" ";L2;" ";L3;" ";L4;" ";L5;" ";L6
    200 REM Wylosuj 6 z 49 bez powtórzeń. zapisz je jako A1,A2,A3,A4,A5,A6
    290 PRINT A1;" ";A2;" ";A3;" ";A4;" ";A5;" ";A6
    300 REM Wylosuj 6 z 49 bez powtórzeń. zapisz je jako B1,B2,B3,B4,B5,B6
    390 PRINT B1;" ";B2;" ";B3;" ";B4;" ";B5;" ";B6
    400 REM Wylosuj 6 z 49 bez powtórzeń. zapisz je jako D1,D2,D3,D4,D5,D6
    490 PRINT D1;" ";D2;" ";D3;" ";D4;" ";D5;" ";D6
    500 IF L1=A1 AND L2=A2 AND L3=A3 AND L4=A4 AND L5=A5 AND L6=A6 THEN STOP

    Program ma tak długo losować w pętli i wyświetlać na ekranie liczby A1...A6, B1...B6,D1...D6 aż spełni się warunek z linii 500.

    Linie programu 200 do 290 do losowania liczb A1...A6 mogły by wyglądać, jak kolega pirx napisał:

    200 M=49:C=6 :DIM A(C-1)
    215 FOR I=0 TO C-1
    220 A=INT(RND(0)*M+1)
    230 FOR J=0 TO I-1
    240 IF A=A(J) THEN POP :GOTO 220
    250 NEXT J
    260 A(I)=A:? R;" ";
    270 NEXT I

    Nie umiem tego zastosować do losowań i wydruku na ekranie liczb B1...B6, D1...D6
    • 20:
       
      CommentAuthorYosh
    • CommentTime5 dni temu zmieniony
     
    Jednolinijkowiec bez powtórzeń do totka:

    1 DIM K(48):FOR I=0 TO 48:K(I)=I+1:NEXT I:FOR I=0 TO 5:G=INT(RND(0)*(49-I))+I:? K(G):K(G)=K(I):NEXT I


    zapisywanie wyników pod K(0)...K(5) tez wejdzie, ale trzeba używać N. zamiast NEXT.
    • 21:
       
      CommentAuthorYosh
    • CommentTime5 dni temu
     
    @wery, używając programu z przykładu wyniki masz w A(0)..A(5) to tablica ale działa tak jak twoje A0 A1 A2 (od biedy)

    tablice zadeklaruj na samym początku swojej zabawki (line 200 przenieś gdzieś na początek swojego programu) i potem wołaj procedurę kolegi przez GOSUB 215. przyda tez się "280 RETURN" aby z niej wracać do twojego kodu. Pewnie przydalo by sie poprawic numeracje lini aby procedurka prix byla np na koncu zawsze