10 'Расстановка 8 ферзей. Минимальное время работы - 14 минут. 30 COLOR 1,15,8:SCREEN 2,1:VV=0:OPEN"grp:" AS#1 40 DATA a,b,c,d,e,f,g,h 50 A$=CHR$(0)+CHR$(16)+CHR$(146)+CHR$(84)+CHR$(40)+CHR$(124)+CHR$(0)+CHR$(0) '"Внешний облик" ферзей. 60 FOR J1=20 TO 160 STEP 20:FOR J2=20 TO 160 STEP 20 70 LINE(J2,J1)-(J2+20,J1+20),2,B 80 NEXT J2:PRESET(6,J1+6):PRINT #1,J1/20:NEXT J1 90 FOR I=1 TO 8:READ C$:PRESET (20*I+6,182):PRINT #1,C$:NEXT I'Нарисовано поле. 100 SPRITE$(1)=A$:N1=1:N2=1:N3=1:N4=1:N5=1:N6=1:N7=1:N8=1:GOSUB 500 110 PRESET(184,100):PRINT #1,"Восемь":PRESET(184,110):PRINT #1,"ферзей!":GOSUB 470:SPRITE$(1)=A$ 120 'Проверка условий (строки 120-400). 130 FOR N1=1 TO 8:FOR N2=1 TO 9:IF N2=N1 OR N1-N2=1 OR N2-N1=1 THEN 420 140 IF N2=9 THEN N2=1:GOTO 430 150 FOR N3=1 TO 9:IF N3=N1 OR N3=N2 OR N1-N3=2 OR N2-N3=1 OR N3-N1=2 OR N3-N2=1 THEN 410 160 IF N3=9 THEN N3=1:GOTO 420 170 FOR N4=1 TO 9:IF N4=N1 OR N4=N2 OR N4=N3 THEN 400 180 IF N1-N4=3 OR N2-N4=2 OR N3-N4=1 OR N4-N1=3 OR N4-N2=2 OR N4-N3=1 THEN 400 190 IF N4=9 THEN N4=1:GOTO 410 200 FOR N5=1 TO 9:IF N5=N1 OR N5=N2 OR N5=N3 OR N5=N4 THEN 390 210 IF N1-N5=4 OR N2-N5=3 OR N3-N5=2 OR N4-N5=1 OR N5-N1=4 OR N5-N2=3 OR N5-N3=2 OR N5-N4=1 THEN 390 220 IF N5=9 THEN N5=1:GOTO 400 230 FOR N6=1 TO 9:IF N6=N1 OR N6=N2 OR N6=N3 OR N6=N4 OR N6=N5 THEN 380 240 IF N1-N6=5 OR N2-N6=4 OR N3-N6=3 OR N4-N6=2 OR N5-N6=1 THEN 380 250 IF N6-N1=5 OR N6-N2=4 OR N6-N3=3 OR N6-N4=2 OR N6-N5=1 THEN 380 260 IF N6=9 THEN N6=1:GOTO 390 270 FOR N7=1 TO 9:IF N7=N1 OR N7=N2 OR N7=N3 OR N7=N4 OR N7=N5 OR N7=N6 THEN 370 280 IF N1-N7=6 OR N2-N7=5 OR N3-N7=4 OR N4-N7=3 OR N5-N7=2 OR N6-N7=1 THEN 370 290 IF N7-N1=6 OR N7-N2=5 OR N7-N3=4 OR N7-N4=3 OR N7-N5=2 OR N7-N6=1 THEN 370 300 IF N7=9 THEN N7=1:GOTO 380 310 FOR N8=1 TO 9:IF N8=N1 OR N8=N2 OR N8=N3 OR N8=N4 OR N8=N5 OR N8=N6 OR N8=N7 THEN 360 320 IF N1-N8=7 OR N2-N8=6 OR N3-N8=5 OR N4-N8=4 OR N5-N8=3 OR N6-N8=2 OR N7-N8=1 THEN 360 330 IF N8-N1=7 OR N8-N2=6 OR N8-N3=5 OR N8-N4=4 OR N8-N5=3 OR N8-N6=2 OR N8-N7=1 THEN 360 340 IF N8=9 THEN N8=1:GOTO 370 350 GOSUB 500:GOSUB 460 360 NEXT N8 370 NEXT N7 380 NEXT N6 390 NEXT N5 400 NEXT N4 410 NEXT N3 420 NEXT N2 430 NEXT N1 440 SCREEN3:PRESET(20,10):PRINT #1,"ВСЕГО":PRESET(5,80):PRINT #1,"ХОРОШЕГО" 450 GOTO 450 'Конец программы. 460 VV=VV+1:PRESET(182,2):PRINT #1,"Способ":PRESET(182,11):PRINT #1,"номер ";VV 470 PRESET(190,160):PRINT #1,"Нажмите":PRESET(190,170):PRINT #1,"любую":PRESET(190,180):PRINT #1,"клавишу" 480 F$=INPUT$(1):LINE(182,0)-(256,192),15,BF:RETURN 490 'Расстановка 8 ферзей. 500 PUT SPRITE 1,(20*N1+2,20*1+2),8,1 510 PUT SPRITE 2,(20*N2+2,20*2+2),8,1 520 PUT SPRITE 3,(20*N3+2,20*3+2),8,1 530 PUT SPRITE 4,(20*N4+2,20*4+2),8,1 540 PUT SPRITE 5,(20*N5+2,20*5+2),8,1 550 PUT SPRITE 6,(20*N6+2,20*6+2),8,1 560 PUT SPRITE 7,(20*N7+2,20*7+2),8,1 570 PUT SPRITE 8,(20*N8+2,20*8+2),8,1 580 RETURN