新しく発言する  EXIT  インデックスへ

パズル「数独」(ヒントつきプレイモード)


  パズル「数独」(ヒントつきプレイモード) 山中和義 2008/05/09 19:06:15  (修正1回)
  つづき 山中和義 2008/05/09 19:07:12  (修正1回)
  │└つづき 山中和義 2008/05/09 19:08:40  (修正1回)
Re: つづき  返事を書く  ノートメニュー
山中和義 <drdlxujciw> 2008/05/09 19:08:40 ** この記事は1回修正されてます
つづき


!「数」の入力
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
  │ └つづき 山中和義 2008/05/11 20:53:30 
  !9×9数独をプログラムで解く 山中和義 2008/05/12 13:57:38  (修正1回)
   └数独を解く!数独ソルバー 片山博文MZ 2008/08/04 13:11:52 

 インデックスへ  EXIT
新規発言を反映させるにはブラウザの更新ボタンを押してください。