'LAMIBLOG 8 lipiec 2016
CLS
todrukujemy = 0
'zerojeden = 1
niedrukuj = 0 '0 to drukuje 1 to nie drukuje
DIM I(30) 'wskaznik tablic ZL,SP
DIM POLE(19) 'pola plastra miodu
DIM SL(19, 19) 'sasiednie liczby
FOR ii = 1 TO 19
FOR jj = 1 TO 19
IF ABS(ii - jj) >= 5 THEN SL(ii, jj) = 1
NEXT jj
NEXT ii
DIM WSP(19) 'WSP(7)=3 znaczy ze pole o nr 7 ma 3 sasiadow z mniejszymi numerami
OPEN "wsp3.txt" FOR INPUT AS #1
FOR ii = 2 TO 19
INPUT #1, WSP(ii)
NEXT ii
CLOSE 1
DIM SP(19, 6) 'sasiednie pola
OPEN "sp3.txt" FOR INPUT AS #2
FOR ii = 2 TO 19
FOR jj = 1 TO WSP(ii)
INPUT #2, SP(ii, jj)
NEXT jj
NEXT ii
CLOSE 2
DIM ZL(19) 'ZL(7)=1 liczba 7 jest juz wstawiona w plaster, ZL(zajete liczby)
licznik = 0 'zlicza dobre kombinacje
numerpola = 1 'aktualny numer pola plastra
'---------------------------------------------------------------
'pole numer 1
I(numerpola) = 0 'liczba wpisana do aktualnego numeru pola plastra
nasti1:
I(numerpola) = I(numerpola) + 1
PRINT numerpola, I(numerpola)
IF I(numerpola) = 20 THEN STOP
POLE(numerpola) = I(numerpola)
ZL(POLE(numerpola)) = 1
IF niedrukuj = 1 THEN GOTO hop1
PRINT numerpola; "---"; POLE(1); POLE(2); POLE(3); POLE(4)
' DO
' LOOP UNTIL INKEY$ = CHR$(27) '27 is the ASCII code for Esc.
hop1:
'---------------------------------------------------------------
nastepnywezel: 'wezel = pole !!!!!!!!
numerpola = numerpola + 1
'---------------------------------------------------------------
'pola od 2 do 19
I(numerpola) = 0
DO
nasti: 'dla danego numerpola sprawdzamy nastepna liczbe czy moze byc tu wpisana
I(numerpola) = I(numerpola) + 1
'''''''''''''''''''''''''''''''''''PRINT numerpola, I(numerpola)
IF I(numerpola) = 20 THEN GOTO skok
IF ZL(I(numerpola)) = 1 THEN GOTO skok 'w tablicy ZL sprawdzamy ktore liczby sa wolne
'liczba jest wolna
warunek = 1
FOR pom = 1 TO WSP(numerpola)
warunek = warunek * SL(I(numerpola), POLE(SP(numerpola, pom))) 'warunek=1 to sprawdzana liczba I(numerpola) moze byc wpisana w pole = numerpola
NEXT pom
IF warunek = 0 THEN GOTO skok 'liczba I(numerpola) NIE moze byc wpisana w pole = numerpola
POLE(numerpola) = I(numerpola) 'warunek=1
ZL(POLE(numerpola)) = 1
IF niedrukuj = 1 THEN GOTO hop
IF numerpola = 19 THEN licznik = licznik + 1: PRINT licznik; "---"; POLE(1); POLE(2); POLE(3); POLE(4); POLE(5); POLE(6); POLE(7); POLE(8); POLE(9); POLE(10); POLE(11); POLE(12); POLE(13); POLE(14); POLE(15); POLE(16); POLE(17); POLE(18); POLE(19)
'DO
'LOOP UNTIL INKEY$ = CHR$(27) '27 is the ASCII code for Esc.
hop:
IF numerpola < 19 THEN GOTO nastepnywezel ELSE GOTO hop19
skok:
LOOP UNTIL I(numerpola) = 20
'sprawdzone wszystkie 19 liczb wiec cofamy sie o jedno pole
ZL(POLE(numerpola)) = 0: POLE(numerpola) = 0: ZL(POLE(numerpola - 1)) = 0: POLE(numerpola - 1) = 0
numerpola = numerpola - 1
IF numerpola > 1 THEN GOTO nasti ELSE GOTO nasti1
hop19:
'zapisujemy dobra kombinacje
OPEN "wplastx3.txt" FOR APPEND AS #10
WRITE #10, licznik, POLE(1), POLE(2), POLE(3), POLE(4), POLE(5), POLE(6), POLE(7), POLE(8), POLE(9), POLE(10), POLE(11), POLE(12), POLE(13), POLE(14), POLE(15), POLE(16), POLE(17), POLE(18), POLE(19)
CLOSE 10
ZL(POLE(numerpola)) = 0: POLE(numerpola) = 0: ZL(POLE(numerpola - 1)) = 0: POLE(numerpola - 1) = 0: numerpola = numerpola - 1
GOTO nasti
your text goes here