2011年04月07日投稿 / 投稿者 : 名無しさん / タグ : 投稿プログラム 実用ツール QRコード 初代対応 1画面プログラム
ナンプレを解くだけのプログラムです。
表示が変わらないと寂しいので、試行錯誤の過程を表示するようにしてあります。
プログラム中のDATA文に、解きたいナンプレを入れて実行してください。
1~9の数字はそのまま入力し、スペースは"0"で入力してください。
1画面に収めたかったので、単純な総当りで解いています。
そのため、問題によっては解くのに恐ろしく時間がかかります。
また、エラー処理をしていないので、解けない問題を入れるとエラーで落ちます。
ありません。
プチコンmkII 向けの QR コードです。
- CLEAR:DIM B(81),P(81),N(241)
- CLS:S=−1:T=−1:FOR P=0 TO 80
- IF P%9==0 THEN READ B$:? B$
- B(P)=VAL(MID$(B$,P%9,1)):NEXT
- FOR P=0 TO 80:IF B(P) GOTO @N
- FOR I=1TO 9:A(I)=1:NEXT:J=P%9
- K=(P−P%3)%9+P−P%27FOR I=0TO 8
- A(B(P−J+I))=0:A(B(J+I*9))=0
- A(B(K+I/3+I%3*9))=0NEXT:S=S+1
- P(S)=P:T=T+1N(T)=0FOR I=1TO 9
- IF A(I) THEN T=T+1:N(T)=I
- NEXT :DATA 000000000
- FOR I=0 TO 1 :DATA 000000000
- P=P(S):S=S−1 :DATA 000000000
- I=N(T):T=T−1 :DATA 000000000
- LOCATE P%9,P/9:DATA 000000000
- ? I:B(P)=I :DATA 000000000
- NEXT:S=S+1 :DATA 000000000
- @N :DATA 000000000
- NEXT :DATA 000000000
候補が少ないところを優先して決定するようにした版です。
速度が重要であれば、こちらを入力してください。(2011/12/11 (日) 19:20:40)
- CLEAR:DIM B(81),P(81),N(455)
- CLS:DIM A(81,10):FOR Q=0TO 80
- IF Q%9<1THEN R=10:READ B$:?B$
- B(Q)=VAL(MID$(B$,Q%9,1)):NEXT
- FOR S=0TO 80FOR I=D*810TO 809
- A(I/R,I%R)=1:NEXT:FOR I=0TO 1
- N=B(P)K=P%9L=(P−P%3)%9+P−P%27
- FOR J=(N<1)*9TO 8A(P−K+J,N)=0
- A(K+J*9,N)=0:Q=L+J/3+J%3*9
- A(Q,N)=0:NEXT:P=P+1I=D+(P>80)
- NEXT:D=10FOR Q=0TO 80C=R*B(Q)
- FOR N=C+1TO 9:C=C+A(Q,N):NEXT
- IF D>C THEN D=C:P=Q
- NEXT:IF D>9THEN END
- N(T)=0T=T+1FOR N=1TO 9:N(T)=N
- T=T+A(P,N)NEXT:DATA 000000000
- P(S)=P:S=S+1 :DATA 000000000
- FOR N=0 TO 1 :DATA 000000000
- S=S−1:P=P(S) :DATA 000000000
- T=T−1:N=N(T) :DATA 000000000
- LOCATE P%9,P/9:DATA 000000000
- ? N:B(P)=N :DATA 000000000
- NEXT:P=P*(D>0):DATA 000000000
- LOCATE 0,9NEXT:DATA 000000000
この作品に対するコメントがあれば一言どうぞ。(作品に直接関係ない質問や雑談は掲示板へ)
表示モード : [ スマホ・3DS対応表示 | クラシック表示 ]
PukiWiki 1.4.7 Copyright © 2001-2006 PukiWiki Developers Team. License is GPL. Based on "PukiWiki" 1.3 by yu-ji
ページの処理時間 : 0.108 秒 | このページの最終更新 : 2022/09/20 (火) 12:43:54 (565d) | ログイン
Copyright(C) 2011-2014 プチコンまとめWiki ◆1sxkymI8ji30