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

Toukou/8Cheeses の変更点

パンくずリスト


#title(投稿プログラム : 8Cheeses)
#contents
// ↑この2行は削除しないでください。
// ←このように「//」で始まる行はコメントです。ページ本文には反映されません。
//-----------------------------------------------------------------------------
// ・投稿年月日は、このページを投稿しようとしている今日の日付を半角数字で入力してください。
//   この日付は、投稿プログラムを自動的に年月日順に並べる際に使用されます。
// ↓↓↓
2012年5月12日投稿
// ↑↑↑
//------------------------------------------------------------------------------
// ・投稿者名は、将来的に投稿プログラム一覧に表示するために使用します。
// ・「名無しさん」のままにしておくと、匿名の方からの投稿として扱われます。
// ↓↓↓
/ 投稿者 : サブ
// ↑↑↑
//------------------------------------------------------------------------------
// ・適当にタグをつけることができます。半角のコンマ区切りで複数つけられます。
//   タグをつけると、同じタグが付いたページを検索することができます。
// ★次に該当するプログラムは、特定のタグを設定するようご協力お願いします。
//   これらを設定すると、将来的に投稿プログラム一覧に目立つマークが付くようになる予定です。
// ・短いプログラム → 「1行プログラム」「数行プログラム」「1画面プログラム」タグのいずれか1つ
// ・初代プチコンでも動作するプログラム → 「初代対応」タグ
// ・mkII 以降専用のプログラム → 「mkII専用」タグ
// ・QRコードを掲載している → 「QRコード」タグ
// ・該当するなら「ゲーム」「実用ツール」「音楽」タグのいずれか
// ↓↓↓
/ &tag(投稿プログラム,ゲーム,QRコード,mkII専用);
/ &tag(投稿プログラム,ゲーム,パズル,QRコード,mkII専用);
// ↑↑↑

//------------------------------------------------------------------------------
// ここに概要とか書きます。
// ・** や *** で始まる行は子見出しとなります。* の数で深さが決まります。
// ・[#英数字] はページ内リンクに使用されるアンカーですが、
//   書かなかったり、消したりしてもかまいません。ない場合はランダムな文字列が自動付与されます。

* 概要 [#Summary]
// これはプログラム投稿する際のページテンプレート (雛形) です。
~ 左に積まれたチーズを全て右端に移動させるゲームです。移動するチーズより数字の大きいチーズの上には置けません。
要するにハノイの塔です。絵的にチーズに見えないと思いますがご勘弁ください。チーズの数は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手より少ない移動数でクリアできた時はご報告いただけるとうれしいです。

/////////////////////////////////

* スクリーンショット・動画 [#ScreenShots]
// 動作しているところを撮影した写真や動画があれば貼り付けてください。

// ページを作成すると、画像の添付ができるようになります。(作成する前はできません)
// 作成後のページの右上、ウィキメニューにある「添付」から画像をアップロードできます。
// (添付ファイルはページごとに別個に管理されています。必ず作成後のページに添付してください)
// 画像をアップロードしたら、以下の書式でページ内に貼り付けられます。
// #ref(添付ファイル名)

// 以下の書式で、YouTube やニコニコ動画を貼り付けられます。
// #youtube(0HWX7kovgY8)
// #nicovideo(sm13684820)

/////////////////////////////////
// QR コードがない場合は、この部分は削除してください

* QR コード [#QR]
プチコンmkII 向けの QR コードです。
~1/2
#ref(qr0.png,,200%)
2/2
#ref(qr1.png,,200%)
// 【重要】旧プチコンから mkII に転送したプログラムは、mkII で保存しなおしてから
// QR コード化すると、枚数が半分ぐらいに減ります。ぜひお試し下さい。
// 【重要】添付できるのは画像ファイルのみです。zip ファイルは解凍してください。

// ページを作成すると、QR コードの添付ができるようになります。(作成する前はできません)
// 作成後のページの右上、ウィキメニューにある「添付」から画像をアップロードできます。
// (添付ファイルはページごとに別個に管理されています。必ず作成後のページに添付してください)
// QR コードをアップロードしたら、以下の書式でページ内に貼り付けられます。
// #ref(アップロードしたファイル名)

// QR コードを大きくしたい場合は、倍率指定ができます。コンマは必ず 2 つ指定してください。
// ブラウザによっては補完がかかってボケますが、それでも問題なく読み込み可能です。
// #ref(アップロードしたファイル名,,200%)

// 複数の QR コードを貼り付けるために表組みを用いる場合、&ref(); を使用します。
// (#ref() を表に埋め込んでしまうと、古い Internet Explorer でうまく表示されません)
// |>|>|~PRG:FILENAME|
// |~1/3|~2/3|~3/3|
// |&ref(qr0.png,,200%);|&ref(qr1.png,,200%);|&ref(qr2.png,,200%);|

/////////////////////////////////

* プログラムリスト [#List]
#basic{{
CLEAR
VISIBLE 1,1,0,0,0,0
CLS

NUM_STOOL=4
MOVE=1
MIN_MOVE=33

PRINT"┌───────────────────┐"
PRINT"│ヒダリニツマレタチーズヲスベテ │"
PRINT"│ミギハシニイドウサセテクダサイ。│"
PRINT"│イドウスルチーズヨリスウジガ │"
PRINT"│オオキイチーズノウエニハオケマセン。│"
PRINT"└───────────────────┘"

INPUT"チースノカズハ(8,9,10イヅレカ)";CHS_NUM
IF CHS_NUM!=9 AND CHS_NUM!=10 THEN CHS_NUM=8
CLS

IF CHS_NUM==9 THEN MIN_MOVE=41
IF CHS_NUM==10 THEN MIN_MOVE=49

DIM CHEESE$(CHS_NUM)
DIM STOOL(NUM_STOOL)
DIM CHS_POS(CHS_NUM*NUM_STOOL)
DIM TOP(NUM_STOOL)
DIM COLUMN(NUM_STOOL)

FOR I=0 TO CHS_NUM-1
 READ CHEESE$(I)
NEXT

DATA"├─0─┤"
DATA"├─1─┤"
DATA"├─2─┤"
DATA"├─3─┤"
DATA"├─4─┤"
DATA"├─5─┤"
DATA"├─6─┤"
DATA"├─7─┤"
DATA"├─8─┤"
DATA"├─9─┤"

FOR I=0 TO NUM_STOOL-1
 STOOL(I)=I*6
NEXT

FOR I=1 TO NUM_STOOL-1
 FOR J=0 TO CHS_NUM-1
  CHS_POS(I*CHS_NUM+J)=-1
 NEXT
NEXT
FOR K=0 TO CHS_NUM-1
 CHS_POS(K)=K
NEXT

FOR I=1 TO NUM_STOOL-1
 TOP(I)=CHS_NUM
NEXT
TOP(0)=0

FOR I=1 TO NUM_STOOL-1
 COLUMN(I)=0
NEXT
COLUMN(0)=CHS_NUM

FOR I=0 TO CHS_NUM-1
 LOCATE STOOL(0),I
 PRINT CHEESE$(I)
NEXT

FOR I=0 TO NUM_STOOL-1
 LOCATE STOOL(I)+1,CHS_NUM
 PRINT"(";I+1;")"
NEXT

@MAIN

LOCATE 0,CHS_NUM+2
PRINT"MOVE:";MOVE;" サイショウイドウ ";MIN_MOVE

FROM_STL=0
TO_STL=0

GOSUB @INPUT

PRINT FROM_STL;"カラ";TO_STL;"ニイドウ   "
F_STL=FROM_STL-1
T_STL=TO_STL-1

LOCATE STOOL(F_STL),CHS_NUM-COLUMN(F_STL)
PRINT"     "
LOCATE STOOL(T_STL),CHS_NUM-COLUMN(T_STL-1)
PRINT CHEESE$(TOP(F_STL))

CHS_POS(CHS_NUM*F_STL+CHS_NUM-COLUMN(F_STL))=-1
COLUMN(F_STL)=COLUMN(F_STL)-1
COLUMN(T_STL)=COLUMN(T_STL)+1
CHS_POS(CHS_NUM*T_STL+CHS_NUM-COLUMN(T_STL))=TOP(F_STL)
TOP(T_STL)=TOP(F_STL)
IF COLUMN(F_STL)==0 THEN TOP(F_STL)=CHS_NUM
IF COLUMN(F_STL)>0 THEN TOP(F_STL)=CHS_POS(CHS_NUM*F_STL+CHS_NUM-COLUMN(F_STL))

MOVE=MOVE+1

IF COLUMN(NUM_STOOL-1)<CHS_NUM THEN GOTO @MAIN ELSE PRINT"CLEAR!"

END

@INPUT
GOSUB @INPUT_F
PRINT"                                            "
GOSUB @INPUT_T
PRINT"                                            "
IF TOP(FROM_STL-1)<TOP(TO_STL-1) AND COLUMN(FROM_STL-1)>0 THEN RETURN
PRINT"ムコウナイドウデス"
GOTO @INPUT

@INPUT_F
LOCATE 0,CHS_NUM+3
INPUT"ドコカラ";FROM_STL
IF FROM_STL>0 AND FROM_STL<NUM_STOOL+1 THEN RETURN
PRINT"1,2,3,4ノイヅレカヲニュウリョクシテクダサイ"
GOTO @INPUT_F

@INPUT_T
LOCATE 0,CHS_NUM+6
INPUT"ドコニ";TO_STL
IF TO_STL>0 AND TO_STL<NUM_STOOL+1 THEN RETURN
PRINT"1,2,3,4ノイヅレカヲニュウリョクシテクダサイ"
GOTO @INPUT_T
}}

/////////////////////////////////
// コメントを募集したくないなら、ここから下は削除してください

* CHECKER FLAG (ひとことコメント) [#Comments]
この作品に対するコメントがあれば一言どうぞ。(作品に直接関係ない質問や雑談は[[掲示板>Board]]へ)
- ''名無しさん'' : QRコード欲しいっていうやつが現れそうだから つhttp://www2.u-netsurf.ne.jp/~ozawa/petitcom/petiteditor.html (&new{2012/05/12 (土) 14:23:06};)
- ''サブ'' : QRコードを追加しました (&new{2012/05/12 (土) 14:49:05};)
- ''ジオライド'' : 手数は確か 個数^2-1だったハズ。 (&new{2012/05/12 (土) 15:27:21};)
- ''名無しさん'' : タッチペンでできるようにしたほうが良いと思う (&new{2012/05/12 (土) 19:15:11};)
- ''ロジウム'' : Cheeseの複数形はCheeseでは? (&new{2012/05/12 (土) 21:13:11};)
- ''名無しさん'' : そうだ!そうだ! (&new{2012/05/13 (日) 18:03:51};)
- ''tokei'' : レイトン教授悪魔の箱にあった。パンケーキで。 (&new{2012/07/15 (日) 15:31:31};)

#comment

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