10行でTCLに15

すでに64行に反転しています 。 次に、タグを記述します。

画像







ソースコード(upuzzle.tcl)

パッケージにはTkが必要です
 foreach {p} {7 2 10 11 5 4 9 12 13 8 3 14 15 1 6} {i} {0 1 2 3 4 5 6 7 8 9 10 11 12 13 14} {
	ボタン$ p -relief solid -bd 1 -width 8 -height 4 -text $ p -command "move $ p"
	グリッド$ p -row [expr {$ i / 4}] -column [expr {$ i%4}] -padx 1 -pady 1}
 proc move {b} {
	 lassign [list [dict get [グリッド情報$ b] -column] [dict get [グリッド情報$ b] -row]] xy
	 foreach {ix iy} {0 -1 0 1 -1 0 1 0} {
		 lassign [list [expr {$ x + $ ix}] [expr {$ y + $ iy}]] ij
		 if {$ i> = 0 && $ i <= 3 && $ j> = 0 && $ j <= 3 &&![llength [グリッドスレーブ。  -col $ i -row $ j]]} {
			グリッド構成$ b -column $ i -row $ j}}}




ナックルとして通常のボタンが使用されます。 これらはグリッドマネージャを使用してウィンドウにまとめられ、ウィジェットの位置は仮想テーブルの行番号と列番号によって決定されます。



特定のナックルの移動手順では、考えられるすべての移動(上下、左右)をチェックし、必要に応じて、テーブル内のボタンの位置を変更します。



画像



参照:

ウィキペディアの15

ActiveTcl(Windows / OSX / LinuxのTclディストリビューション)

eTcl(Windows Mobile)







Habrausersからの代替:

ミチューリンのゲーム「フィフティーン」

SKYnvからMidp1.0-2.0の15



All Articles