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

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

xecua

この記事は新歓ブログリレー第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

東方クラスタではないです。

この記事をシェア

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

関連する記事

2018年4月28日
traPへの入部ありがとうございました!
to-hutohu
2018年4月26日
PS4でテレビを見たり配信したり。
yunyun
2018年4月26日
ゲームを作ろう
gotoh
2018年4月24日
基本情報技術者試験を受けた話
OrangeStar
2018年4月23日
パクれ
Namazu
2018年4月22日
†raP
xecua

活動の紹介

カテゴリ

タグ