[過去ログ]
プログラミングのお題スレ Part13 (1002レス)
プログラミングのお題スレ Part13 http://mevius.5ch.net/test/read.cgi/tech/1549160513/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
759: デフォルトの名無しさん [sage] 2019/03/23(土) 05:47:57.62 ID:ZlGSstH0 >>754 Squeak Smalltalk | fn | fn := [:str | | map range signs sign goal position from next atEnd | map := str lines collect: [:line | line subStrings collect: #asInteger]. range := 1@1 extent: map first size @ map size. goal := #★. signs := #(┌ ┌ ← → └ └ ┐ ┐ ↑ ↓ ┘ ┘) readStream. sign := Dictionary new. 0 asPoint fourNeighbors combinations: 2 atATimeDo: [:combi | sign at: combi copy put: signs next; at: combi reversed put: signs next]. position := 1@1. from := nil. next := 2. atEnd := false. [atEnd] whileFalse: [ | found delta | found := position fourNeighbors detect: [:neighPos | (range containsPoint: neighPos) and: [((map at: neighPos y) at: neighPos x) = next] ] ifNone: [atEnd := true. Float nan]. delta := found - position. (map at: position y) at: position x put: (sign at: {from ifNil: [delta negated]. delta} ifAbsent: goal). position := found. from := delta negated. next := next + 1]. (map collect: #join) asStringWithCr ]. fn value: '1 4 5 6 2 3 8 7 15 14 9 10 16 13 12 11' . "=> '↓┌→┐ └┘┌┘ ┌┐└┐ ★└←┘' " http://mevius.5ch.net/test/read.cgi/tech/1549160513/759
760: デフォルトの名無しさん [sage] 2019/03/23(土) 06:18:42.67 ID:ZlGSstH0 >>759 758の入力例を拝借 fn value: '1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9'. "=> '→→→→┐ ┌→→┐↓ ↑┌★↓↓ ↑└←┘↓ └←←←┘' " fn value: '1 4 5 8 9 12 2 3 6 7 10 11'. "=> '↓┌┐┌┐★ └┘└┘└┘' " fn value: '1 4 5 6 2 3 8 7 16 14 9 10 15 13 12 11' . "=> 繋げられるところまでで終点にする。 '↓┌→┐ └┘┌┘ 16★└┐ 15└←┘' " http://mevius.5ch.net/test/read.cgi/tech/1549160513/760
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.044s