ぷよぷよ1日目
fron積みをしてみた
今日は fron積みを使ってみて, 現状どのくらいできるのかを確かめるとともに, 次の課題を見つけようと思います.
fron積み
"fron積みとは, fron氏が多用することで定着した土台であり, 速攻や逆折りができる",. とあります. 形としては, A11, A21, B31, A41, B22, B32, A33の形で, B12, B23で左から発火, B42で右から発火することができます.
fron積みを選択した理由
fron積みを選択した理由は深い理由は特にありません. これには理由があり,
- どの土台を選択しても, 最終的には, 自分にあった, もしくは, 環境に適した土台に落ち着く
という理由が一番合理的な説明です. これは, 明らかに癖ではあるんですが,
-
一部のTCGプレイヤーは, 他人が作っているデッキを使いたくなくなる癖があり, 土台もGTR, 階段, 鍵以外を最初に選択してみたかった
という非常にどうでもよい理由もあります.
実験
今回の実験では, fron積みが作れるかどうかを確認する. ここで, fron積みが作れるとは,
- この記事で書かれているfron積みの2連鎖を作ることができる
- 土台の一番下の行をfron積みの発火以外で消してはいけない (土台をリセットして, 新しい土台を作っても, fron積みができたことにはしない
とします. これを疑似とこぷよ (後述します) を用いて15回行い, 何回できるかを確認することを今回の実験とします.
実験環境
今回の実験では, ぷよぷよe-sports (ぷよスポ) Switch版 一人モード 20連鎖縛り (疑似とこぷよ) を用います.
結果
初手組ぷよ譜, 結果
ABBCCA, 失敗
ABBCCA, 成功
ABABAA, 成功
ABCADC, 成功
AAABCC, 成功
ABABBB, 成功
ABBBCC, 成功
ABACBB, 成功
ABCACB, 失敗
ABABBC, 成功
AABACA, 成功
ABABAA, 成功
ABCADD, 失敗
ABACCB, 成功
ABBACB, 失敗
成功: 11回, 失敗: 4回
まとめと考察
とりあえず過半数を超えたので, 色々知識をため込んだ甲斐はあったのではないかと思います. AAABや, ABACADなどは, できるようになりました.
今後はそれ以外の初手でもできるようになることと, もっと早くできるようになるために, 初手の動きを手が勝手に動くまでfron積みを使っていく必要があると思いました. また, ゴミぷよがあほみたいに増えてしまったので, それを解決するための方法も考えていきたいと思います.
課題
次の日は今回の実践で, AAAB, ABACAD以外でうまく土台を組むことができなかったため, 次回は実際にこの動画を参考にしつつ, どのように積むかを調べてみたいと思います.
ぷよぷよ 0.5日目
X.5 日目など(例: 0.5, 0.75日目), 整数でないときは, 前後の整数日目の補助的な記事となります. つまり, 2回目の投稿にしていわゆる "テコ入れ" です. しかし, この記事は, 今後, この記事を展開していくにあたって, 必要であるという判断のもとでおこなわれているため, 今後の整数日目を見るときに「変な定義が勝手に作られている気がするとか, なんか整数日目だけ読んでも絶対こういう考えには至らないだろう」, と思った場合には, 整数でない日の記事を読んでもらえると, どういった経緯で, 整数日目に到達したのかがわかると思います (この文言を非整数日目に書いたところで, 整数日目だけ読んでいる人はには伝わらないと思うのだが).
さて, 前回は自己紹介とぷよぷよ1日目にfron積みをとりあえず実践してみると言いましたが, 今後ぷよぷよの理解を深めるために, 組ぷよの順番, 組ぷよの配置, 土台についての譜面を考えたいと思います. ここでは, それぞれ組ぷよ譜, 積みぷよ譜, 土台譜としておきます.
諸々のぷよ譜の導入
組ぷよ譜
これは, 一般的にツモといわれるもので, 組ぷよがどの順番で振ってきたかどうかという情報を文字に直したものです. 例えばAAABAC (最初から同じ色の組ぷよAA, 一つのぷよが最初の組ぷよと同じ色をしていて, もう一色が異なる色をしている組ぷよ, 一つのぷよが最初の組ぷよと同じ色をしていて, もう一色が, 一つ目, 二つ目の組ぷよにない色のぷよを持つ組ぷよ) などです. これは, ありふれた表記であり, いろんなところで使われています.
積みぷよ譜
積みぷよ譜は組ぷよ譜とは異なり一般的ではありません (次の土台譜に関しても一般的ではありません, またこのような譜を新たに作ることには理由があるため, 次にその意味も加えて書きます). 積みぷよ譜はぷよがどのように積んだかという情報を文字に直したものです. 例えば, AA1BA3AC5AC5DB1ADT1などです. これは, 最初にAAを一番左に横向きに, BAを左から三番目に横に積み, ..., 最後に, ADを縦に一番左に積むという意味です. つまり, Tがついているものは, 縦に積み, 組ぷよで見たときに左にあるものが, 左もしくは上になるようにぷよを積むという意味です.
土台譜
土台譜は, 盤面のある場所にどの色のぷよがおかれているかを示す譜です. 例えばA15, A25のような感じで, Aが色, 1が左から1つ目, 5が下から5番目かを表します.
なぜ新しいぷよ譜を導入するか
まず, ぷよぷよの記事を書くにあたって, ぷよぷよの状態を共有するときに, その説明をしないといけないんですが, それをぷよシミュレーターだけで, やるのは労力が大きくなりすぎ, さらに図でもあるため, 紙面が広がりすぎる割には情報量が増えないという問題点があります. これは, 記事を書く上で, 非常に大きな問題でストレスが大きくなりすぎて継続できないと思われます. あと, ぷよ譜を探した結果, たしかにぷよ譜は存在するんですが, 組ぷよ譜と積みぷよ譜が混ざったようなものしか見つからなかったので, 組ぷよ譜と積みぷよ譜を分割するべきという発想に至りました. 土台譜に関しては, そもそも, それに類するものが見つからず, 土台を理解するのに言語がほしかったので, 導入しました.
なぜぷよ譜がこんなに発展しない理由 (考察)
ぷよぷよはデジタルゲームです. なので, スクリーンショットを比較的簡単に作ることができ, スクリーンショットを張ることで, "これで説明しました", という言い方ができてしまいます. なので, そもそも将棋のように情報を保存するために文字に起こす必要など微塵も存在しません. このことから, ぷよぷよでは, ぷよ譜は発展しないと考えることができます.
それでもぷよ譜を導入する理由
しかし, それより深く理解または説明をしようとすると, どうしてもそれらを言語化せざるを得ません. また, 数字の表現の仕方によって, 足し算や引き算などの四則演算の理解の進み方が異なると考えている人もいます (日本の数字の読み方はいちからじゅうまでいって, その後, 10 + 1 じゅういち, 10 + 2 じゅうにだが, 英語だと11はイレブン, 12はトゥエルブで, 表現が和や差の表現を満たしていない). なので, これからぷよぷよを理解していくためには, 定義を知らないといけないと思いました.
まとめ
前回, fron積みの学び始めるといいました. 次はちゃんとやります.
ぷよぷよ 0日目
この記事は著者であるKashiwagiHinokiがぷよぷよ領域における (自称)学士, つまり (自称) 学士(ぷよぷよ)をとるための日記となります.
また, 著者はぷよぷよを初めて触るため, 今後私が, 初心者 (ルールはわかるが, 触ったことがない状態) から, 初級者 (ある程度操作できて, 見直すと勝敗の理由がわかる)へ移行するための備忘録でもあり, 最終的には, 真の意味でぷよぷよ初心者を対象とし, 初心者から初級者へ行くための手引の基礎となってほしいと考えています.
自己紹介
さて, まずは, 自分の立ち位置を示しておかないと, この記事の意味が失いかねないので, 自己紹介から始めたいと思います.
Twitter ID: @KashiwagiHinoki
年齢: 21
職業: 学生
学校: 偏差値50くらいの工業高校 -> 石を投げれば, 眼鏡かオタクに当たる大学
趣味: 将棋 (ウォーズ初段), スプラトゥーン (ガチエリア わかば S+0), Magic: the Gathering (最近 Arena始めた), ボードゲーム (7 Wonders, Dominion)
一言: 初等教育をラブプラス+, 中等教育を将棋で終わらせました.
といわゆるアレな感じになっています. このことからいえることは, ボードゲームを何も触っていない人よりは何を学べばいいのかという勘は働くと思います.
ぷよぷよに関する知識
ぷよぷよに関する知識はほとんどありません. 知っていることとして, ぷよという3~5の石が2つセットで重力が働きながら, 振ってくること, 同色ぷよが4つ以上連なるとぷよが消せること, 相手におじゃまぷよと呼ばれるぷよを送ることができること, ぷよを消した後に, ぷよを置いた山が崩れてもう一度ぷよが消えることを連鎖ということぐらいで, ぷよぷよに関しては一般的な理解であると考えることができます.
本題
0-1 その界隈の人に知識を提供してもらう
さて, 0日目に始めたことですが, まずは, ぷよぷよをやっている人にぷよぷよの知識を少し教えてもらいました. これは, 初等教育をラブプラスで終えた私には, 簡単に実行できます (つまり, ぷよぷよを進めてくれた人に教えてもらえばいいと思います) . これは, 自分の現在地がどこにあるのかとその位置から必要な情報を取得するための行動です. このことから, 初心者は
・2連鎖が組めるようになる
・5~6連鎖が組めるようになる
・7連鎖が組めるようになる
・それ以上
のようなステップで, 成長することができるらしいです. 一見当たり前に見えますが, これには理由があるらしく, まず2連鎖はぷよが崩れてぷよをさらに消すという感覚を身に着ける, 5~6連鎖は, 一段目をすべて積んだ時に得られる連鎖数, 7連鎖以降は折り返しの技術が必要とのことでした. そして, 折り返しの技術として有名なのが「グレート 田中 連鎖」(いわゆるGTR) らしく, 広く使われいる方法でした. また, ぷよぷよを購入して, 最初に進められる組み方として「階段積み」, 「鍵積み」という積み方があるということを知りました.
0-2 仮定 (ぷよぷよにも定跡が複数存在する)
将棋をやっているので, 実現性が高く能力が高い序盤の動きは定跡と言って名前がつき(例: 藤井システム, レグスペ, 石田流三間飛車など) 好みによってそれらを選択することができるという前提からほかの積み方があるのではないかという考えを持ちました. その結果, 「fron積み」, 「ハーピー積み」, 「だぁ積み」, 「斉藤大先生 ありがとうございます スペシャル」 (斉藤スペシャル) などがあるということがわかりました.
まとめと今後の展開
今回はぷよぷよをほとんど何も知らないところからのスタートでした. (ラブプラスをやるか, よほどの陽キャでもない限り)その界隈の人に聞くことは難しいことではないかと思われます. しかし, そこを避けようとすると, よほど知性がないとその先を上手く進むことはできないと思われます (また, そこまでの賢者が参考のためにこの記事を読むはずがありません). つまり, いくらプライドが高くても最初は人に聞くのが最も効率がいいと思います. さて, この記事では, 仮定 -> 実験 -> 新しい課題 -> 仮定というらせん状のループを組むために, 私と違う背景をもつあなたからは最初に突飛な仮定を設定している
と考えると思われます. しかし, これはどうしようもないことで, 仮定の妥当性を評価するためには, その仮定の根拠となったこと (今回の例では将棋) を理解する必要があると思っています. ですが将棋をやれと言っているわけではありません. なぜなら, 今後新たな仮定を導出するときにはぷよぷよから得られる根拠を基にした仮定が主であり, さらに, 繰り返していくと, 一番最初に置かれていた仮定の成分など, 指数関数の彼方に消えて収束していくからです. というわけで, 最初はフーンそんなもんかと考えてください.
閑話休題, 今回は, ぷよぷよにも初心者の理解度を図る指数が存在し(連鎖数), 様々な型 (定跡)が存在することがわかりました. 次回は, 今回知った積み方からよさげなものを一つ選択し, それをうまく組めるようにしたいと思います.
アニメとポスターの色, あるいはK-means法
はじめに
この記事はProlab Advent Calendar 2017 - Adventarの第7日目として執筆されています。またこの記事はフィクションであり、登場する団体・人物などの名称はすべて架空のものです。同様に時間に非常にだらしなく変にバランス主義者で友達の友達の格言である「日常生活の問題が解けずしてどうしてアルゴリズムといえようか」を受け売りにしている高専6年生の柏木ひのきさんも架空の人物であることを了承ください。
ポスターの色ってどうやって決めればいいんだっけ?
事の発端
突如ポスターを作る必要がでてきたひのき(@KashiwagiHinoki)はどのようにして色を決めるかという非常に悩ましい問題に直面した。三日三晩悩んだ末(三日三晩って初めて書いた気がするんですけど、日と晩の疾走感すごいですね)、休憩中にARIAを読み少女終末旅行を観終えたところで突然(実現可能の是非は置いといて)3つの妙想を得たのであった。
いんすぴれーしょn
彼は以下の3つの妙想を得た(ARIAと少女終末旅行のおかげだと思います)。そしてまず比較的難易度が低そうなものから列挙していったのであった。
- 今から自分の遺伝子を強い画家の遺伝子に変える
- 好きな画像の色を参考にする
- 今から色の勉強をする
また、彼のノートにはこのような内容のメモが記されていた。
今から自分の遺伝子を強い画家の遺伝子に変える
植物になるよりも強い画家になる方が簡単だと思われます。
好きな画像の色を参考にする
これも上のアイデアの次に並ぶくらい有効であると思われます。ただし、僕は色の調和などがほとんどわからないので、何色か代表の色の組み合わせを作ることができるとより実現性が増すと思われます。
今から色の勉強をする
これも有効な手法であると思います。ただし、これには少し時間がかかりすぎるという欠点もあるので、選択はしづらいと思われます。
選択した手法
彼は最終的に2つ目の好きな画像の色を参考にすることを選んだ。柏木ひのきという人物は変なところで頑ななところがあり、なるべくバランスを取ろうという癖があった。そのため、彼は1でも3でもなく2を選んだのである。しかし、2を選択すると1つの問題が生じる。色の調和がうまくわからない彼は適当な色の組み合わせを出力してくれる装置がどうしても必要となるのだ。 そして、もちろん彼のポリシーによりアルゴリズムで殴って解決することを念頭に置いて考えるのであった。
クラスタリング?
去年、ひのきはたいちゃんさんとぺるきらさんにクラスタリングなる単語を教えてもらっていたのである。いわく、クラスタリングとはデータの集まりをうまい具合に分割する手法のことで、一つのデータ解析手法であるらしい。彼はとりあえずグーグル先生に"クラスタリング 簡単"と検索をして一番最初に出てきたものを実装しようと考えたのであった。そしてk-平均法(k-means clustering)に出会う。
k-means clustering
k-means clusteringとは以下のようなものである。
おそらくこれを使えばいい感じな色の組み合わせができるだろうと彼は得も言われぬ確信をしたのであった。
実装
import numpy as np
import cv2
import random
def k_means(vec_list, k):
(nums, dims) = np.shape(vec_list)
cluster = [random.randint(0, k - 1) for i in range(nums)]
centered = np.zeros((k, dims))
for loop in range(100):
_centered = np.zeros((k, dims))
cluster_num_list = [0] * k
for (c, v) in zip(cluster, vec_list):
_centered[c] += v
cluster_num_list[c] += 1
for i in range(k):
if(cluster_num_list[i] != 0):
_centered[i] /= cluster_num_list[i]
for i in range(nums):
for j in range(k):
if(np.linalg.norm(vec_list[i] - _centered[cluster[i]]) > np.linalg.norm(vec_list[i] - _centered[j])):
cluster[i] = j
eps = sum([np.linalg.norm(centered[i] - _centered[i]) for i in range(k)])
if(eps < 0.001):
return _centered
centered = _centered
print(centered.astype('int32'))
image_file = 'gazou.jpg'
image = cv2.imread(image_file, cv2.IMREAD_COLOR)
k = 3
color = np.reshape(image, (-1 , 3))
_color = np.zeros((2000, 3))
for i in range(2000):
_color[i] = color[random.randint(0, len(color - 1))]
color_scheme = k_means(_color ,k)
print(color_scheme)
このコードは柏木ひのきの最大限の努力によって作られたものである。確かに指摘は欲しいが、なるべく優しい口調で伝えてくれるとなおうれしくなるだろう、彼はそういう生き物である。
実験
この記事を最初からもしくは最後から見てもわかるように、オタクでありそして今期の推しは間違いなく少女終末旅行である。
結果
縦1列が一つの色の組み合わせで左からk = 3、k = 4、k = 5、k = 6(kは重心の数)となんともうまくいっているようである。彼はその後三日三晩(日と晩の疾走感)、小躍りをしたらしい。
まとめ
1月ごろにそのポスターがタイで柏木ひのきが使っていると思うので、そのときちょうどタイにいて興味があるよーって人は頑張って探してみるとよいと思う。また、タイにいない人でも今から-30 ~ -40日後に日本からタイに泳ぎ始めれば彼がちょうどポスターを使っている時期につくと思うので、体力に自身ニキorネキはぜひ頑張ってほしい。
次回予告
やめて!学校の課題をこれ以上積まれたら、闇のゲームで単位とつながっている柏木の精神まで燃え尽きちゃう!
お願い、死なないで柏木!あんたがここで倒れたら、親との約束はどうなっちゃうの?時間はまだ残ってる。ここを耐えれば、テストに勝てるんだから!
次回、「柏木死す」デュエルスタンバイ!
さいごに
今年のまとめ
こんばんは、今年はとりあえずもう大会的な何かに参加することはなさそうなので、ここで、一つ今年のまとめをしたいと思いました。
これはプロラボのアドベントカレンダーに向けて作った記事です。
今年に参加した大会
・SPAJAM
・高専プロコン
とりあえず、覚えているのがこのくらいなので適当に感想を書きたいと思います。
SPAJAM
今年+今年度初めてのコンテスト(ハッカソン)でした。確か某先輩からたいちゃん(@imishinist)を経由して話が来て、前期中間テスト(あっ・・・)明けにちょうどあったため、気晴らしに参加した。
参加メンバーは僕と、3年生1人と、2年生2人と1年生1人の構成でした(今回のチームの中で私が最も開発力がない)。
他の人の頑張りがあって、特別賞をいただいた(来年に続く)
なんとなく今度はアイデアソンに参加した。知らない人とアイデアを作ってそれを発表しました(この中でもアイデア力や知識が圧倒的に負けていた)。
とりあえず、できることはないかなーって思いながら、それなりに話を弾ませようとか、プレゼンをしてみようとか頑張ってみました。
チーム力の勝利?的な感じで最終的に優秀賞をいただいて、その結果自分の手元にLEAP MOTIONが手に入った。(圧倒的、座敷童感)
高専プロコン
昨年度から、高専プロコンにはまた出たいなーとか思いつつ、アイデアがじゃくしぃ先輩、ハードウェア開発をさっちー先輩に全振り、回路実装はやったこともない一年生のてら先輩とその他たくさんの人々に丸投げ、Android周りをこれまたじゃくしぃ先輩にサーバーサイドをすごくやばいたいちゃん先輩にやってもらって、参加した高専プロコンで企業賞をいただきました。これに関しては本当に私以外の活躍が非常に大きくこの大会こそ、まさに役職:座敷童って感じでした。
まとめ
非常につつましく書いている感じですが、一応やったこともあるので、まぁ多少はねって感じです。今年はいい意味があまりなくやり過ぎなかった感じ(ふざけ過ぎなかった)感じがあるので、もう少し飛ばしていきたいと思います。加えて、老害としてすごく強い後輩方に積極的にちょっかい出していきたいと思います。
家にあったジャンプの打ち切り漫画について
こんばんは、ヒノキ(@KashiwagiHinoki)というもので、最近は目立ったことはしていませんが、少し前までは、級友(♂)にスク水着てもらったり、裸パーカー(同一人物)をしてもらってました。ブログ、日記などをまともに書いたことがないので、非常に緊張しますが、頑張りたいと思います。
週刊少年ジャンプ打ち切り漫画 Advent Calendar 2015 - Adventarの3日目の記事です。私は、今回のために弟が買ってきてくれたのではないかと、思わざるを得ない運命的なマンガ「クロクロク」についての記事を書こうと思います。
クロクロク
東京都多摩市にある妖怪専門の市役所の(裏)多摩市役所で働いている、17才の少年と女子高生限定の時給100,000円の市役所のバイトを始める高校生の妖怪お役所コメディ。
全体のあらすじは、なんか悪そうなやつが出てきて、それを主人公がなんとか棒でなんとかして、料理が下手な児啼くおっさんの料理の手伝いをしたり、役所職員の合同研修でカレーを作るマンガで、大抵ギャグで多摩にシリアスだったりする。(料理マンガかな?)
このマンガにはいまだ明かされない謎が多数あり、(裏)東京23区役所の2人の能力、(裏)総務省大臣、啼 石舟斎とは?(裏)多摩市役所の所長の「今まで以上の酷な仕事」とは?
益々気になって夜も寝られません、次巻に期待せざるを得ませんね。
これ以上やってると、本当に進級が危ぶまれるので、ここらへんで終わらせていただきます。