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

Source: https://habr.com/ru/post/J89919/


All Articles