Feladat: KSz.24 Korcsoport: 16-17 Nehézségi fok: átlagos
Füzet: 1985/október, 314 - 315. oldal  PDF file
Témakör(ök): Feladat
Hivatkozás(ok):Feladatok: 1985/január: KSz.24

Egy négyzethálós papíron kijelölünk egy 6×6-os négyzetet, s kivágunk belőle 9 kis négyzetet. Ezzel az eszközzel úgy titkosítunk egy szöveget, hogy egy üres papírlapra helyezve a szöveg első kilenc betűjét a kivágott négyzetek helyére beírjuk, majd az eszközt középpontja körül balra elforgatjuk 90-kal, s most ismét beírunk 9 betűt stb. (L. Verne Gyula: Sándor Mátyás.) Írjunk olyan programot, amely
a) egy véletlenül választott,
b) az összes lehetséges eszközt meg tudja tervezni!

A szöveg csak Firefox böngészőben jelenik meg helyesen. Használja a fenti PDF file-ra mutató link-et a letöltésre.

Az első megoldást Tóth 254 Zoltán HT-1080-as gépre készítette el.

 


10 CLS: PRINT ''AAAA̲*** LOUGRAS *** ''
20 PRINT: INPUT ''A MEZO KOORDINATAI (A-H,1-8)'';
A$: IF LEN (A$)< > 2 THEN 20
30 X=ASC (A$) ‐ 64: Y = ASC (RIGHT $ (A$, 1) ) ‐ 48
40 IF X<1 OR X>8 OR Y<1 OR Y>-8 THEN PRINT
''ROSSZ ADAT!'': GO TO 20
50 IF X< 3 THEN A1 = 1 ELSE A1 = X‐2
60 IF X>6 THEN A2 = 8 ELSE A2 = X+2
70 IF Y< 3 THEN A3 = 1 ELSE A3 =Y‐2
80 IF Y>6 THEN A4 = 8 ELSE A4= Y+2
90 PRINT: PRINT ''A LO A KOVETKEZO MEZOKRE UGORHAT''
100 FOR N = A1 TO A2: FOR M + A3 TO A4
110 IF (ABS(X‐N) = 2 AND ABS(Y‐M) = 1) OR
(ABS(X‐N) = 1 AND ABS(Y‐M) = 2) THEN PRINT
CHR $ (64+ N) RIGHT $ (STR$(M), 1) '' '';
120 NEXT M, N
130 GO TO 20
 
A következő jó megoldás is HT‐1080-ra készült, beküldője Fasang András.
 

10 CLS
20 INPUT ''A LO HELYE''; A$, B
30 IF A$ = ''''THEN 20 ELSE A = ASC (A$) ‐ 64
40 IF A<1 OR A>8 OR B<1 OR B>8 THEN 20
50 FOR X = ‐2 TO 2:IF X = 0 THEN 80
60 Y = 3 ‐ ABS(X): GOSUB 90
70 Y = ‐Y: GOSUB 90

80 NEXT: PRINT: GO TO 20
90 J = A+X: K = B+Y
100 IF J< 1 OR J> 8 OR K<1 OR K>8 THEN RETURN
110 PRINT CHR $(J +64); K: RETURN
 

Megjegyzés. Úgy látszik, ez a feladat nehezebb volt az eddigieknél, mert nagyon sok beküldött program hibásan működött. A működő program beküldői között pedig volt olyan, aki nem ellenőrizte, hogy a kiindulási hely rajta van-e a sakktáblán (pl. A-9).
(B. L.)