feature image

2018年3月21日 | ブログ記事

Androidで競技プログラミングをしてみよう

この記事は新歓ブログリレー第14日目、3月21日(水)の分になります。


はじめましての方ははじめまして。traPツイッタラー班のxecuaです。いつもTwitterにいるので何か気になったらそちらへリプなりDMなりどうぞ。
名前の読み方はそのへんの人に聞いてください。
よくブログを読んで下さってる方はお前アレどうしたんだよと言いたいかもしれませんが忘れてません。†そのうち†やります。(わからない方はわからなくて大丈夫です)

§0 はじめに

私が普段使っているスマートフォンは私がAppleアンチなのでAndroid端末です。ご存知の方もいらっしゃるかもしれませんが、Android OSはLinuxがベースになっています。この話を初めて聞いた私が真っ先に思ったのが、「じゃあプログラミングできるんじゃね!?」でした。調べてみたところ実際にできるみたいだったのでやってみました。多分このこととは関係ないんですけど。
競技プログラミングとしたのは、スマホで普段PCでやっているような開発をするのはさすがに無理があると思ったためです。外出時などにお試しください。
なおpaiza.iorepl.itもありますが私のキーボードだとエディタが完全に隠れてしまいダメなので却下です。というかこれがきっかけです。
で、書いた後思ったんですけど、画面サイズ的にタブレットが限界だと思います。AOJとか過去問解くときとかで急がないのであればスマホでも大丈夫ではあると思います。

§1 環境

AndroidはLinuxがベースになっているといいましたが、当然ながら普段の環境ではカーネルにはアクセスできません。
この問題を解決してくれるのがターミナルエミュレータになります(ほんまか?詳しくない どちらかというと仮想環境なのかも)
Google Playにごろごろ転がっているのでインストールするといいでしょう。ちなみにものによっては目的が達成できない場合があるかもしれません。
私が使ったのは"Termux"というものです。
たーまっくすのがぞう
今回はこちらのアプリを使って解説を行います。ちなみにroot権限を取得する必要はありません。

あとBluetooth接続のハードウェアキーボードを持ってない方はCtrlとかEscあたりの普通のキーボードだと送れない信号を送れるキーボードがあるといいかもしれません。
私が使っているのはHacker's Keyboardというものです。スマホだとちょっと狭い。
はっかーずきーぼーどのせつめい

§2 インストール

アプリを起動すると簡単な説明があります。
きどうしたときのがめん
簡単にまとめると

となります。私は普段Python3で競技プログラミングをしているので
$ pkg search python
としてみます。
けんさくけっか
いろいろありますがpython/stable...というやつで大丈夫でしょう。
$ pkg install python
とすればインストールされます。

あとはテキストエディタがないと編集できません。
調べたところ、Vim/Emacs/nanoあたりの代表的なエディタは存在するみたいです。私はVim派(というかVimしか使えない)のでVimを入れました。

完全に蛇足となりますがtraP推奨/現代表おすすめエディタはVim、代表補佐のおすすめはnanoです。

某
某所にはこんなことが...

§3 組む

$ vimでVimを起動します。
Vim初心者の方のために簡単に流れも説明します。
Vimは起動しただけでは文字を入力することができません。(は?)
キーボードの'i'を押すことでINSERTモードとなり、入力できるようになります。
簡単なPythonプログラムを書いてみましょう。

print("Hello,World!")

次に保存をします。ここでEscキーを入力できないと詰みます(一応キーマップの変更はできますけど結局Ctrlとかいるでしょうし)。
準備なさっていると思うのでEscを押してください。これでNORMAL(起動時と同じ)モードに戻ります。
Vimでは:wとすると保存ができます。この後ろにスペースを空けて文字列を入力することで、その名前でファイルを保存できます。今回はtest.pyとしてみます。:wでほぞんです
最後にVimを終了します。これだけは覚えてください。
Vimの終了はNORMALモードで':q'を入力してEnter/Returnです。
これされ知っていればたとえあなたが将来的にEmacs派になり、友人に

alias emacs='vim'

されてしまっても大丈夫でしょう。あとこの時はunalias emacsを忘れないように。

§4 実行

それでは先ほどのPythonスクリプトを実行してみましょう。

$ python test.py

_20180312_011412

無事こうやって表示されれば成功です。
この調子でプログラムを組み、問題のテストケースなどを試してみてください。
提出の際はエディタの本文をホールドすればクリップボードにコピーできる...ハズです。

ほかにもRuby/Perl/Goなどの代表的なスクリプト言語、C言語(clang)、Scheme(tinyscheme)、さらにはValaといった変わった言語も使えるようです。いろいろ調べてみるといいと思います。起動したときにWikiのサイトとか出ますので。

§∞ おわりに

私自身は競技プログラミングはとても弱いのですがPCがなくてもこういった形で始められるので興味を持って気軽に始めていただけたらと思います。

明日はnagatechさんが担当なさいます。お楽しみに。

xecua icon
この記事を書いた人
xecua

音ゲーマーじゃないです

この記事をシェア

このエントリーをはてなブックマークに追加
共有

関連する記事

2021年4月2日
DXライブラリで重力パズルゲームを作る
Macky1_2 icon Macky1_2
2024年3月29日
ClimblocK
Facish icon Facish
2018年4月17日
春休みにゲームを作りました
uynet icon uynet
2018年3月17日
traPのゲーム制作ってどんな感じ?
Saltn icon Saltn
2018年11月30日
Flutterでスマホアプリを作ってみ(た | よう)【アドベントカレンダー2018 37日目】
Fourmsushi icon Fourmsushi
2022年12月12日
Unityで†リアルタイムな†AR文字認識ゲームが作れなかった話(tesseractを使用)
Hinaruhi icon Hinaruhi
記事一覧 タグ一覧 Google アナリティクスについて 特定商取引法に基づく表記