DockerでSpigotサーバーを立てる
8/30 spigotのダウンロード部分について追記
8/31 hostとのディレクトリ共有・デタッチについて追記
背景
久しぶりにプラグインを書いてテストをするたびにSpigotサーバーをセットアップするのはそろそろバカらしい。
やる
やります
準備
Dockerは頑張ってインストールして下さい。
作成
以下が最小構成のDockerfileになります。
FROM ubuntu:16.04 RUN apt-get update && apt-get -y upgrade && apt-get -y install openjdk-8-jdk wget git RUN mkdir spigot WORKDIR /spigot RUN wget https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar RUN java -jar BuildTools.jar RUN echo 'eula=True' > eula.txt CMD ll | grep spigot | grep jar | awk '{print $9;}' | xargs java -Xms512m -Xmx1024m -jar
ちゃんと調べてないけど、Spigotのライセンスの関係でDockerイメージの配布はできない気がします。多分。
$ docker build -t 'spigot/ubuntu:16.04' .
DockerfileからDockerイメージを作成します。JDKを入れるのに結構時間がかかります。いつの間にかSpigotがJarを配布してくれるようになっていたのでJREのみで問題ないかもしれませんね。今度試すかもしれません。
DMCA的にグレーっぽかったので公式のBuildToolsからビルドするように修正しました。それによってgitも必要になりました。
$ docker run -v [host dir path]:/spigot/plugins --name spigot -p 25565:25565 -i -t spigot/ubuntu:16.04
Dockerコンテナを作成します。
-i
オプションは標準入力を使えるようにするオプションでこれがないと操作ができなくなってdocker stop
するしかなくなってしまうので気をつけましょう。
[08:37:36 INFO]: Done (10.348s)! For help, type "help" or "?"
コンテナの作成ができました。ログインができるか確認してみましょう。
-v
オプションでホストとのディレクトリ共有が出来ます-v [host dir path]:[guest dir path]
としましょう。ホスト側をIDEAやEclipseの出力ディレクトリにしておくととても楽。
-p 25565:25565
でコンテナの25565ポートをホストの25565ポートにフォワーディングしてるので、ホストからlocalhost:25565
にむけてアクセスができると思います。
使い方もろもろ
Dockerコンテナの確認
docker ps -a
-a
はallです
Dockerコンテナの停止
docker stop [Container Name or ID]
Dockerコンテナの起動
docker start [Container Name or ID]
-ai
オプションで起動と同時にアタッチができます。
Dockerコンテナの削除
docker rm [Container Name or ID]
Dockerイメージの確認
docker images
Dockerイメージの削除
docker rmi [Image ID]
所感
今のところ、コンテナからデタッチできなくて困っています・・・
screen
を使うという手を思いついたのですが結局デタッチできない気がします。試してはいません。
docker attach
に--detach-keys
というオプションがあったので色々試してみましたが、何をおしてもサーバーコンソールの標準入力に吸い込まれました。
再度試してみたら普通にデタッチできました。docker attach [containter name]
で再度アタッチ出来ます。
まとめ
そっこうでSpigotサーバーが立って楽
mbed LPC1768と圧電スピーカーで音楽を鳴らす
背景
先日MCCの夏合宿に行ってきました。
所用で3時間ほど遅れて参加したので、他のメンバーはもうチームを組んで実装を始めていて、さて何をしようかというところだったのですが、LPC1768を4台ほど持ってきていたので、これで何かつくろうということになりました。
しばらく一人で何を作るか思案していたのですが気づいたら夜でした。そこでテーマを決めたはずが実現可能性がゼロに近づきすぎてしまったicchyrさんに声をかけてもらい、シェルスクリプトでテトリスを実装してmbedコントローラーをつかって操作しながらBGMとして圧電スピーカーでテトリスのBGM(A-Type)を流すプロダクトをつくることになりました。ちなみにこのBGMは原曲がありましてロシア民謡のコブロチカという音楽が元になっているそうです。
テトリス部分をicchyrさん、スピーカーやコントローラーを私という分担にしました。
実装
コードは下記のURLに置いてあります。
speaker_test - a mercurial repository | Mbed
楽譜はicchyrさんに耳コピで作ってもらいました。
悲しいかな
たまたま持っていた圧電スピーカーなのですが、ものが悪すぎてとある周波数で共鳴を起こして正直言って不快な音が出ます。
秋月で部品を買うともらえるベージュ(?)の紙袋を上からかぶせてテープでとめたらわりとマシに聞こえたのでそんな感じで使うことにしました。
高周波帯のノイズが混じっているような気がしたので、即席でコンデンサと抵抗を使ってカットオフ周波数数十kHzのLPFをつくって噛ませていたのですが、たまたま外してみたらそっちのほうがいい音がでてたのでがっかりしました。今考えたら設計をミスっていたかもしれません。
解説
正直お酒を飲みながら実装していたので今見るとひどいコードな気がしますが反省をふまえながら解説していきます。
コアになってくるのはTickerと呼ばれる繰り返しタイマー割り込み機能です。圧電スピーカーの入力にsp1を設定し以下の関数をt秒ごとに繰り返すことで周波数1/2t[Hz]の音がなるという寸法です。
void tick(void) { sp1.write(oto); oto=!oto; }
反省点が2つあります。
1つは変数名が"oto"とかなっているところです。よく考えるとわかりやすくて短い変数名だし悪くないのかもしれません。※諸説あります
2つ目ですが上記4行目の oto=!oto;
です。
これは=
と!
の順番が変わるだけで全く意味をなさないコードに変わってしまうものなので要注意だと思っています。
実はこのコード、はmbed_blinky(テンプレートのLEDを点滅させるプログラムです)にも乗っているので本当に良くないと思っています。絶対に書くまいと思っていたことなので非常に反省しています。
反省が長くなりましたが次に行きます。
float mm[]={659,2,493,1,523,1,587,2,523,1,493,1,440,2,440,1,523,1,659,2,587,1,523,1,493,3,523,1,587,2,659,2,523,2,440,2,440,2,0,3,587,2,698,1,880,2,783,1,698,1,659,2,0,1,523,1,659,2,587,1,523,1,493,2,493,1,523,1,587,2,659,2,523,2,440,2,440,2,0,2,659,2,493,1,523,1,587,2,523,1,493,1,440,2,440,1,523,1,659,2,587,1,523,1,493,3,523,1,587,2,659,2,523,2,440,2,440,2,0,3,587,2,698,1,880,2,783,1,698,1,659,2,0,1,523,1,659,2,587,1,523,1,493,2,493,1,523,1,587,2,659,2,523,2,440,2,440,2,0,2,329,4,261,4,293,4,246,4,261,4,220,4,207,4,246,4,329,4,261,4,293,4,246,4,261,2,329,2,440,4,415,8};
これはBGMの譜面になります。0と偶数のインデックスで周波数、奇数インデックスで伸ばす回数を表しています。酔っていたのでこれぐらいの制御方法しか思いつきませんでした。float配列なのに整数リテラルを代入していてこれほど意味のないことはありません。反省です。
for (i=0;i<sizeof(mm)/sizeof(float);i+=2) { timer.attach(&tick,1.0/mm[i]/2.0); wait(0.2*mm[i+1]); timer.detach(); sp1.write(0); }
ここが再生部分です。先程説明した繰り返しタイマー割り込みを1.0/mm[i]/2.0
秒間隔で動作させるようにしています。これによって周波数mm[i]
の音を発生させることが出来ます。このTickerを仕込んで0.2*mm[i+1]
秒後にTickerを停止させます。その後スピーカー入力を0にします。
最初はsp1.write(0);
を書かずに鳴らしていたのですが、休符の際に2回に1回高音を発するというバグを踏んだので書きました。原因は未だにわかっていません。
よく考えたら1.0/mm[i]/2.0
はゼロ除算になると思うんですけど浮動小数点数だとエラーにならないんだっけ???? ARM特有かもしれません。これが謎の高音はこれが関係していたかもしれない。
再生部分は大体こんな感じです。超単純
あとは、もう1台のmbedから信号を受け取って音楽を一時停止させたり停止させたりする機能を実装しています。なんで1台に統合しなかったんだろう、とても不思議です。
おわりに
結局テトリスは完成しませんでした。
シェルスクリプトでは無理がありすぎて2日目の朝からmbed(C++)で実装していたのですが流石に無理がありすぎるということです。
ハッカソンとはなんなのかということにもなってきますが、ある程度作りたいものをもったままスタートできるとスムーズに開発が進むのではないかと思います。
アドベントカレンダーありがとう3
この記事は ぐらぽむ Advent Calendar 2016 - Adventar の19日目の記事です。
こんなものを書いたら、@sukukyonに怒られたのでもう少し真面目にやります。ごめんなさい。いま土下座しながら記事を書いています
雑すぎる
— きょんたん (@sukukyon) 2016年12月12日
紹介
kemduino
高校の同期です。
C90に出ようという話が始まるまでは特に関わりはなかった気がします(Twitterで見かける程度)
KnobCon前史(仮) - 0rangetail を書いてくれました。
Knobconの制作会議は、オタクばかりですぐ話がそれるので、僕とkemuduinoで話をレールに乗せるのにとても苦労した覚えがあります。
豆腐屋のサークルカットはとてもかわいくて良いです。@sukukyonとかいうオタクのきつい注文を実現してくれてありがとう。
sukukyon
高校の同期です
この記事と
この記事を書いてくれました。
17日はKnobcon後史を書け!とか無茶振りしてごめんなさい。
@sukukyonはクソみたいな記事は書こうとしたけど、自分もそもそも基盤の設計をめちゃくちゃ遅らせたりそもそも基板設計と実装しかしてないクソだったので、この役目は@akira_techあたりに任せようと思います。まだAdvent Calendarの枠はまだまだ余っているのでお願いします。
いろいろな会社を転々としている気がします。でもそもそもエンジニアというのはそういう働き方をするものだよね。フロントエンドからバックエンドまで幅広くやっていて頑張る人だなぁという気持ちです。
絵に描いたような近頃のオタク
ecila_vip
僕が参加しているMinecraftサークル、GrassLifeの頭領です。
こんな記事を書いてくれました。
僕はVILLAGE VANGUARD DINERというところだけ行ったことがなかったので今度行ってみたいと思います。
初めて話したのは多分5,6ヶ月くらい前だと思います。ニコニコ生放送をしていたので遊びに行ったらマイクラマルチサーバーのプラグイン開発について面白そうな話をしていたので少し話をしました。
夏で完全スキル制をコンセプトにしたマイクラのModかspongeプラグインをつくります(リリースすると入ってない)
— ぐらぽむ (@gurapomu) 2016年7月6日
発言した覚えがないこんなツイートをしていたのですが、本当に覚えがないです。個人としてはこういったModやプラグインを作る気はないです。
恐らくこのツイートを発端として目をつけられていたのではないかという気がしています。夏休み前半いろいろと忙しかったので9月中旬くらいから本格的な話をし始めた気がします。
彼自身は現在、どこかのイケイケな会社でRubyやJavaScriptやCSSをガリガリ書いているらしいです。
ついでに紹介しておくとGrassLifeには他に@Cyc_Eくんと@unicroakくんがいます。@unicroakくんは最近加入したばかりの期待の新星です。
各位、僕は1月に入るとデスマーチモードにはいるので1ヶ月ほど失踪するかもしれませんが必ず戻ってくるので待っていてください。
このサークルの成り立ちについては以下の記事を読むと欠片くらいはわかるかもしれません。
Hlradai
この2文字目って小文字の"エル"なのか大文字の"アイ"なのかどっちか判別がつかなかったのです。普通に考えれば"アイ"だけどオタクはひねくれているという風潮があるので奇をてらって"エル"にしておきましたがあってますか?
高校の同期です。
この記事と
この記事をかいてくれました。
これらの記事の僕との関係の無さが逆に清々しくてとても好きです。
僕は近頃CivilizationVIを購入してプレイしているので夜通しCiv部をやるならぜひVIでお願いします。楽しいので買いましょう。
彼も@kemuduinoの同じく高校は同じなのに卒業するまではあまり関わりがなかった気がします。本当に卒業してからご飯を数回食べに行った程度です。
ツイッターを見ているとずっとゲームをしている気がします。頑張って生きてください。
鹿島アントラーズ戦についての話ですが、僕が中学校までサッカー部だったことを知っていての話だったのでしょうか。昔は名古屋グランパスを応援していましたが、最近は殆どサッカー観戦をしていません。もっぱら野球ばかりしています。ごめんね、
norn_Renon
なんで知り合ったんだっけ?
というのは冗談です。
この記事を買いてくれました。
彼との出会いは多分3,4年くらい前だったと思います。当時ラブライブがとても大好きだった僕ですが、Twitterに流れてくる「○○が好きな人はRT」みたいなツイートがあまり好きではありませんでした。好きではなかったのに、たまたま僕の操作ミスで"ラブライブ好き同士でLINEグループを作りたいので興味がある人はファボしてください"といったツイートに間違ってファボをしてしまい、ラブライブのLINEグループに参加することになってしまったことがきっかけです。
そのグループについて思い返してみると、まあ悪くなかったなぁという気持ちはあって今でも数人とは交流があり、とくにいま紹介をしている彼は大阪に住んでいるけどお互い遠征に行ったときには大抵あって飯を食ったりするという関係です。
ころころアカウント名を変えるのは良くないくせだと思うので自重してください。
書いてくれた記事について言及しておくと、正直あまり面白くなかったです。僭越ながらすこし改善点を挙げていきます。
- 折角オタクを弾圧できるイベントがあったというのに文章にパンチが足りないです。
- もう少しオタクを弾圧する強い文章を書いていくと逆にウケると思います。
- 女の子とパンケーキを食べに行った話なのに女の子についての話が全くありません。
とりあえずはこんなところでしょうか。
おわりに
他人を紹介していたら、3000字を超えるポエムになっていました。
書き直したのにもかかわらず雑な紹介になってしまった方、申し訳ないです。指摘していただければ修正していきたいと思います。
明日は書く人がいなさそうです、各位!!!!!!
MCCMMANCC2016を終えて
この記事は MCC Advent Calendar 2016 - Adventar の18日目の記事です。
昨日から3日前まで記事が上がってなくて少しさびしいので各位。
さて今日は、昨日開催された、東京農工大学MCC・電気通信大学MMA・明治大学NCCの3サークル合同イベントMCCMMANCCについてかいていきたいと思います。
MCCMMANCC
MCCMMANCCとは
そもそもMCCMMANCCって何なんだろうということを考えると結構ながくなりそうなので、かいつまんで説明しておくと、
MMAの@whywaitaという人とMCCの@altcolonyという人とNCCの@mactkgという人が集まっていたら@whywaitaという人が3サークル合同イベントやろうぜ、といって始まったイベントだそうです。(間違っているかもしれないので教えてください
開催までの流れ
初回開催は昨年の12月でした。今回が2回目の開催で1年ぶりとなります。
前回が終了したときからまたやりたいという話はしていた気はするのですが、その後あまりそういった話も起こらず久しぶりにMCCMMANCCという単語を目にしたのは9ヶ月くらい後のことでした。
#MCCMMANCC 機運
— ぐらぽむ (@gurapomu) 2016年9月21日
たしか@icchyrという人が最初に言い始めた気がしていたのですがツイートがみつからなかったので僕のツイートを貼っておきます。
Slackの横浜県サークルで@icchyrさんのツイートをみて@sukukyonとかとよしやるかという感じになった気もします。
そんな話もありましたが、全然話は進みませんでした(だめじゃん
10月、Dentoo.LTが開催され、どうやらそこでMCCMMANCCの話が上がったらしく@FMS_Catさんが中心となって話を始めてくださいました。
@icchyr 先日dentooltに参加して、またMMAMCCNCCをやりたいなあという話をざっくりしました。3年生あたりで窓口となっていただけそうな方を紹介いただけるとありがたいです!
— FMS_コミケ3日目西ゆ39aEOM本 (@FMS_Cat) 2016年10月25日
そんなこんなでMMAからは@benevolent0505さんとMCCからは自分に声がかかり、具体的な話が始まります。
準備に関してはわりとスムーズに進んだ覚えがあります。
強いて言えば途中、参加予定人数が少なくて震えていました。
当日
当日は
- オープニング
- GLSLの使い方に関するハンズオン
- LT大会(前半)
- お菓子をたべながらおしゃべりタイム
- LT大会(後半)
という流れで進行していきました。
こちらも概ねスムーズに進んでよかったです。
ただ、時間がたりずにせっかく飛び入りLT希望していただいた皆様のLTの時間がめちゃくちゃ短かったりそもそもできなかったりしてしまってもうしわけございませんでした。
主に自分が欲張ったせいです。今土下座しながら記事を書いています。
打ち上げ(?)
MCCMMANCC終了後は某居酒屋で飲み会をしました。
サークルの現状を掘り下げたり、それぞれの学校について話したりとても有意義な時間だったと思います。
おわりに
今回参加してくださった皆様本当にありがとうございます。
また打ち上げに参加してくださった@icchyrさんありがとうございました。
運営各位とは、今後は半年に1回くらい開催できたら良さそう、という話をしています。
MMA、NCCの運営陣は半年後また引き継がれるかもしれませんがその時はよろしくお願いします。自分は多分次かもやります。
明日はsasamijpが書きます。いろいろな意味で楽しみにしています。
アドベントカレンダーありがとう2
この記事は ぐらぽむ Advent Calendar 2016 - Adventar の12日目の記事です。
どうでもいいんですけど、"ありがとう"ってタイプすると"ありがおつ"ってなりますよね。
完全に遅刻でサクッとかけるネタが思いつかなかったので紹介の続きをします。二人だけです。
紹介
kemuduino
高校の同期です。
一緒にknobconとかつくってました。
思い返してみると高校の時はほとんど話したことがなかった。
いいことをすると素直に褒めてくれるので好きです。
sukukyon
高校の同期です。
固定ツイートがきもいのでなんとかしてほしい。
knobconのソフトウェアを担当していた。
オタク
紹介する人がいなくなったので今日はこれで終わりにします。
アドベントカレンダーありがとう1
この記事は ぐらぽむ Advent Calendar 2016 - Adventar 11日目の記事です。
遅刻した
遅刻しました。ごめんね
紹介
ここまでこのしょうもないAdvent Calendarに記事を投稿してくれた皆様ありがとうございます。
感謝の気持ちを込めてこの場をお借りしてこれまでに記事を投稿してくれた皆さんを紹介していきたいと思います。
osrehun
2つ上だけどM1の先輩です。
ARCのD問がもうすぐ全部終わるらしい。
大学に入ってから競技プログラミングを始めたと聞いたけど4年でこのレベルに達するにはどれだけ問題を解いたのだろう・・・
就活頑張ってください。
altcolony
2つ上だけど・・・?????
高校が同じだったみたいですが僕は先輩恐怖症だったので覚えていません。
僕がB1のとき、人が足りなすぎて、副部長以外にもいろいろ引き継いでいた気がしていたんですがあんまり覚えてないです。ごめんなさい。
あと1回くらいおごってくれるらしいので、叙々苑の美味しいお肉期待してます。(とかいうと一生実現しなさそうなので一応予定を上げておくと、私は1月2週目以降の月木金土の夜が空いています。よろしくお願いします。)
ykun03
1つ下の後輩です。
高校が同じで、この前高校の文化祭に言ったときに遭遇して、「お前らが潰した」と言いました。
ほんの冗談のつもりだったんですが「思うところがある太郎」とかいう迷言を生み出させるまでに追い込んでしまって本当に申し訳なく思っています。
SECCON大阪についてですが、あのチームについては自分含めて全員準備不足感が否めなかったのでなにもいいっこなしにしましょう・・・
追伸:「from:gurapomu オタク」とか「from:gurapomu 麻雀」とか怖いです。
alucky0707
高校の後輩です。
大学は違います。なんかおもしろそうな学科にいっていた気がするけどあまり良く覚えてないです。
僕はあらっきい君のHNのせいで本当にオーストラリアの首都はメルボルンなんだと勘違いしていた時期があって一度とても恥ずかしい思いをしたので反省してほしいです。僕はCLANNADは知らないんだけどバカみたいじゃん
本当に何をしているのかわからないところがあるけど本当に何をしているんだろう・・・
_hu__hu
高校・大学の同期です。
記事の面白さに磨きがかかっている気がします。
ただ面白い記事を書いているのはたいてい酔っ払っているときなんじゃないかという気もしています。
ベロンベロンに酔わせて有る事無い事話してもらいたけど、お酒は怖いので気をつけてください。
つかれたので終わりにします。
明日(今日も僕が書きます)
各位後半うまってないので頼む
強いマインスイーパーになる
この記事は ぐらぽむ Advent Calendar 2016 - Adventar の7日目の記事です。
突然ですが私は、Android版マインスイーパーアプリのハードモードで日本ウィークリーランキングの1位に2,3週間ほど居座っていたことがあります。
いまこの記事を読んでいるあなた方だけに、私をマインスイーパー界のホープと呼ぶことを特別に許しましょう。
そんなマインスイーパー界のホープから、今日はいかに早く地雷を処理していくかのテクニックを少しずつ紹介していきたいと思います。
日本一位です pic.twitter.com/XFY3UVoMsT
— ぐらぽむ (@gurapomu) October 26, 2016
週間一位に返り咲いた pic.twitter.com/AKQ8jEMjib
— ぐらぽむ (@gurapomu) November 10, 2016
話を始める前に私がプレイしている難易度を説明しておきます。
私がプレイしているハードモードは縦26マス×横19マスに99個の地雷が設置されているモードとなります。マス総数は494個ですので地雷密度は約0.2ということになります。
この記事を読むにあたって、地雷密度0.2程度のマインスイーパーは時間がかかってもクリアできる方でないと理解が追いつかないと思うので、できない人は修行し直してきてください。
それでは地雷の海へと漕ぎ出しましょう。
精神統一
まず、プレイを始める前には精神統一をし、集中力を高めておきましょう。もし地雷を踏んでしまって命を落とすのはあなたです。絶対に1つの地雷も起爆させずにすべてを処理するんだという心持ちが非常に重要になってきます。
私は最近ですと、プレイ前にひなビタ♪の曲を聴いて精神統一をすることが多いです。みなさんにもこういった大事な場面の前のルーティンというものがあると思うので積極的に利用していってください。
集中力が限界まで高まったところでいよいよプレイを始めます。
スタートダッシュ
地雷を高速に処理するに当たって、大まかにどのような場所から処理をはじめどの方向に向かっていくのかを決めておく必要があるでしょう。
私はいつも左上から始めて時計回りに処理していくという流れをとっています。これは利き手や好みの問題もあるので、何度も試して自分にあったプレイスタイルを見つけてください。
手を止めないこと
プレイを始めたら、絶対に手を止めてはいけません。私ほどのマインスイーパーとなると、手を止めることによっていくつの人命が失われてしまうかが手に取るようにわかってしまい、とても手を止めることなどできません。
コツとしては、視野を広く持ち、常に次にどこを処理していくかを見据えながらプレイしていくというのがおすすめです。地雷伝いに処理をしていっている間は隣を見ていればよいですが、例えば端に到達した場合などは、処理する位置が大幅に変わることが多々あるので、近くの地雷が無くなりそうだと感じたときはとっさに視野を広く持ち次の狙いを定めましょう。
パターンを把握する
マインスイーパーの地雷の配置は、全体で見ると無数の配置パターンが存在しますが、ある部分部分で考えていくと当然パターンが定まってきます。こういったパターンを記憶していき、徐々にレパートリーを増やしていくことで最後には、盤面を見るだけで、考えることなくすべて反射的に地雷を処理していくパーフェクトマインスイーパーとなれるのです。
さて、例えば以下のような盤面に遭遇したとしましょう。
最初のうちは自分もこういった場面に遭遇し、一番上端が1だから上から3マス目に絶対地雷は来ないので・・・ と考えながら地雷処理をしていました。しかし慣れてくると、この盤面をみたその瞬間にこことこことこことここに地雷があるということがARグラスを装備しまさにそこに映るかのように把握できるようになります。さらにこういった盤面には往々にして遭遇するので、記憶しておいて損はありません。
もちろんこれはあくまで簡単な例に過ぎませんが、こうした積み重ねがタイム更新へとつながっていくということを忘れてはなりません。
無駄なアクションを極力減らしていく
さて、ここからは今、私が取り組んでいることになります。
次のような盤面を考えてみましょう
この盤面で黒丸の場所に地雷が存在することは自明であります。しかし、この地雷全てに旗を立てる必要はあるでしょうか。
マインスイーパーのシステム的に、旗を立てていなくても地雷がないマスをすべて開けてしまえばクリアとなります。
この盤面で言うと、した2つの地雷に旗を立てて角の[2]をタップ(windows版だと中クリック)した時点で1つ目と2つ目の間のマスは開放されます。これはクリア条件をみたすのでいちいち一番上の地雷に旗を立てるという操作をせずに済むのです。
このワンタップ・ワンクリック、一見小さいように見えますが、ちりも積もれば山となる。この積み重ねがタイム更新になります。この手間で救えない人命があるかもしれないと考えるといちいちこんなところに手間をかけるという気にはなれないでしょう。
おわりに
以上が私の考えるマインスイーパー高速攻略法になります。いかがでしたでしょうか。
誰もマインスイーパーなんてやらないよという意見はごもっともでございますが、誰かが地雷を処理しないことには私達が住む地球の安全は確保されません。
自分たちの住む場所の安全は自分で確保するぞ!という強い気持ちが必要になってくる時代なのです。
明日の担当はhu君です、期待してます。