つづき
!「数」の入力 IF left=1 THEN !左クリックなら IF ix<1 OR ix>9 OR iy<1 OR iy>9 THEN ELSE !盤内なら IF m(iy,ix)<=0 THEN !入力できるマスなら SET LINE width 3 !プロンプト SET LINE COLOR 2 PLOT LINES: ix,iy; ix+1,iy; ix+1,iy+1; ix,iy+1; ix,iy INPUT PROMPT "数字を入力してください。": a$ IF a$<>"" THEN !キャンセル以外なら IF a$="0" THEN !元に戻す場合 LET m(iy,ix)=0 !未確定へ ELSE !確定する場合 LET t$=num$(ix,iy) !整合性を確認する FOR i=1 TO 9 IF a$=t$(i:i) THEN !候補にあれば LET m(iy,ix)=-i !※負 EXIT FOR END IF NEXT i IF i>9 THEN PRINT "不正な数字です。" END IF END IF ELSE PRINT "ここには入力できません。" END IF END IF END IF LET flg=1 !全マスが確定しているか確認する FOR x=1 TO 9 FOR y=1 TO 9 IF m(y,x)=0 THEN LET flg=0 NEXT y NEXT x IF flg=1 THEN !確定なら MAT PRINT USING "## ## ## ## ## ## ## ## ##": m !解答の表示 PRINT "終了!" STOP END IF LOOP UNTIL right=1 !右クリックされたら、プログラムを終了する
SUB box(x,y,c) !矩形を描く SET AREA COLOR 6 PLOT AREA: x,y; x+1,y; x+1,y+1; x,y+1 CALL putc(x,y,8,c) !LET m(y,x)=-c !確定する END SUB SUB putc(x,y,c,n) !文字を表示する SET TEXT COLOR c SET TEXT HEIGHT 0.5 PLOT TEXT ,AT x+0.5,y+0.5: STR$(n) END SUB
|