プチコンまとめWiki (初代/mkII)

投稿プログラム : 8Cheeses

パンくずリスト

2012年5月12日投稿 / 投稿者 : サブ / タグ : 投稿プログラム ゲーム パズル QRコード mkII専用

概要

左に積まれたチーズを全て右端に移動させるゲームです。移動するチーズより数字の大きいチーズの上には置けません。 要するにハノイの塔です。絵的にチーズに見えないと思いますがご勘弁ください。チーズの数は8,9,10のいずれかから選べます。

元ネタはH.E.Dudeneyの"The Canterbury Puzzles"というパズル本です。The Canterbury PuzzlesではThe Reve's Puzzlesという題で 載っていますが、今回は"8Cheeses"というわかりやすい題名にしました。

このゲームをクリアするのに必要な最小移動数は、チーズが8個のときは33手、9個のときは(たぶん)41手、10個のときは49手になります。 原文にはチーズが8,10個のときの答えは載っているのですが9個の場合が記載されていません。そのため9個の場合の最小移動数は僕が 計算しましたが、もしかしたら間違っているかもしれません。もし41手より少ない移動数でクリアできた時はご報告いただけるとうれしいです。

スクリーンショット・動画

QR コード

プチコンmkII 向けの QR コードです。

1/2

qr0.png

2/2

qr1.png

プログラムリスト

  1. CLEAR
  2. VISIBLE 1,1,0,0,0,0
  3. CLS
  4. NUM_STOOL=4
  5. MOVE=1
  6. MIN_MOVE=33
  7. PRINT”┌───────────────────┐”
  8. PRINT”│ヒタ゛リニツマレタチース゛ヲスヘ゛テ │”
  9. PRINT”│ミキ゛ハシニイト゛ウサセテクタ゛サイ。│”
  10. PRINT”│イト゛ウスルチース゛ヨリスウシ゛カ゛ │”
  11. PRINT”│オオキイチース゛ノウエニハオケマセン。│”
  12. PRINT”└───────────────────┘”
  13. INPUT”チースノカス゛ハ(8,9,10イツ゛レカ)”;CHS_NUM
  14. IF CHS_NUM!=9 AND CHS_NUM!=10 THEN CHS_NUM=8
  15. CLS
  16. IF CHS_NUM==9 THEN MIN_MOVE=41
  17. IF CHS_NUM==10 THEN MIN_MOVE=49
  18. DIM CHEESE$(CHS_NUM)
  19. DIM STOOL(NUM_STOOL)
  20. DIM CHS_POS(CHS_NUM*NUM_STOOL)
  21. DIM TOP(NUM_STOOL)
  22. DIM COLUMN(NUM_STOOL)
  23. FOR I=0 TO CHS_NUM−1
  24.  READ CHEESE$(I)
  25. NEXT
  26. DATA”├─0─┤”
  27. DATA”├─1─┤”
  28. DATA”├─2─┤”
  29. DATA”├─3─┤”
  30. DATA”├─4─┤”
  31. DATA”├─5─┤”
  32. DATA”├─6─┤”
  33. DATA”├─7─┤”
  34. DATA”├─8─┤”
  35. DATA”├─9─┤”
  36. FOR I=0 TO NUM_STOOL−1
  37.  STOOL(I)=I*6
  38. NEXT
  39. FOR I=1 TO NUM_STOOL−1
  40.  FOR J=0 TO CHS_NUM−1
  41.   CHS_POS(I*CHS_NUM+J)=−1
  42.  NEXT
  43. NEXT
  44. FOR K=0 TO CHS_NUM−1
  45.  CHS_POS(K)=K
  46. NEXT
  47. FOR I=1 TO NUM_STOOL−1
  48.  TOP(I)=CHS_NUM
  49. NEXT
  50. TOP(0)=0
  51. FOR I=1 TO NUM_STOOL−1
  52.  COLUMN(I)=0
  53. NEXT
  54. COLUMN(0)=CHS_NUM
  55. FOR I=0 TO CHS_NUM−1
  56.  LOCATE STOOL(0),I
  57.  PRINT CHEESE$(I)
  58. NEXT
  59. FOR I=0 TO NUM_STOOL−1
  60.  LOCATE STOOL(I)+1,CHS_NUM
  61.  PRINT”(”;I+1;”)”
  62. NEXT
  63. @MAIN
  64. LOCATE 0,CHS_NUM+2
  65. PRINT”MOVE:”;MOVE;” サイショウイト゛ウ ”;MIN_MOVE
  66. FROM_STL=0
  67. TO_STL=0
  68. GOSUB @INPUT
  69. PRINT FROM_STL;”カラ”;TO_STL;”ニイト゛ウ   ”
  70. F_STL=FROM_STL−1
  71. T_STL=TO_STL−1
  72. LOCATE STOOL(F_STL),CHS_NUM−COLUMN(F_STL)
  73. PRINT”     ”
  74. LOCATE STOOL(T_STL),CHS_NUM−COLUMN(T_STL−1)
  75. PRINT CHEESE$(TOP(F_STL))
  76. CHS_POS(CHS_NUM*F_STL+CHS_NUM−COLUMN(F_STL))=−1
  77. COLUMN(F_STL)=COLUMN(F_STL)−1
  78. COLUMN(T_STL)=COLUMN(T_STL)+1
  79. CHS_POS(CHS_NUM*T_STL+CHS_NUM−COLUMN(T_STL))=TOP(F_STL)
  80. TOP(T_STL)=TOP(F_STL)
  81. IF COLUMN(F_STL)==0 THEN TOP(F_STL)=CHS_NUM
  82. IF COLUMN(F_STL)>0 THEN TOP(F_STL)=CHS_POS(CHS_NUM*F_STL+CHS_NUM−COLUMN(F_STL))
  83. MOVE=MOVE+1
  84. IF COLUMN(NUM_STOOL−1)<CHS_NUM THEN GOTO @MAIN ELSE PRINT”CLEAR!”
  85. END
  86. @INPUT
  87. GOSUB @INPUT_F
  88. PRINT”                                            ”
  89. GOSUB @INPUT_T
  90. PRINT”                                            ”
  91. IF TOP(FROM_STL−1)<TOP(TO_STL−1) AND COLUMN(FROM_STL−1)>0 THEN RETURN
  92. PRINT”ムコウナイト゛ウテ゛ス”
  93. GOTO @INPUT
  94. @INPUT_F
  95. LOCATE 0,CHS_NUM+3
  96. INPUT”ト゛コカラ”;FROM_STL
  97. IF FROM_STL>0 AND FROM_STL<NUM_STOOL+1 THEN RETURN
  98. PRINT”1,2,3,4ノイツ゛レカヲニュウリョクシテクタ゛サイ”
  99. GOTO @INPUT_F
  100. @INPUT_T
  101. LOCATE 0,CHS_NUM+6
  102. INPUT”ト゛コニ”;TO_STL
  103. IF TO_STL>0 AND TO_STL<NUM_STOOL+1 THEN RETURN
  104. PRINT”1,2,3,4ノイツ゛レカヲニュウリョクシテクタ゛サイ”
  105. GOTO @INPUT_T

CHECKER FLAG (ひとことコメント)

この作品に対するコメントがあれば一言どうぞ。(作品に直接関係ない質問や雑談は掲示板へ)

  • 名無しさん : QRコード欲しいっていうやつが現れそうだから つhttp://www2.u-netsurf.ne.jp/~ozawa/petitcom/petiteditor.html (2012/05/12 (土) 14:23:06)
  • サブ : QRコードを追加しました (2012/05/12 (土) 14:49:05)
  • ジオライド : 手数は確か 個数^2-1だったハズ。 (2012/05/12 (土) 15:27:21)
  • 名無しさん : タッチペンでできるようにしたほうが良いと思う (2012/05/12 (土) 19:15:11)
  • ロジウム : Cheeseの複数形はCheeseでは? (2012/05/12 (土) 21:13:11)
  • 名無しさん : そうだ!そうだ! (2012/05/13 (日) 18:03:51)
  • tokei : レイトン教授悪魔の箱にあった。パンケーキで。 (2012/07/15 (日) 15:31:31)

表示モード : [ スマホ・3DS対応表示 | クラシック表示 ]
PukiWiki 1.4.7 Copyright © 2001-2006 PukiWiki Developers Team. License is GPL. Based on "PukiWiki" 1.3 by yu-ji
ページの処理時間 : 0.026 秒 | このページの最終更新 : 2016/01/22 (金) 00:50:23 (1275d) | ログイン
Copyright(C) 2011-2014 プチコンまとめWiki ◆1sxkymI8ji30