この記事は新歓ブログリレー第14日目、3月21日(水)の分になります。
はじめましての方ははじめまして。traPツイッタラー班のxecuaです。いつもTwitterにいるので何か気になったらそちらへリプなりDMなりどうぞ。
名前の読み方はそのへんの人に聞いてください。
よくブログを読んで下さってる方はお前アレどうしたんだよと言いたいかもしれませんが忘れてません。†そのうち†やります。(わからない方はわからなくて大丈夫です)
§0 はじめに
私が普段使っているスマートフォンは私がAppleアンチなのでAndroid端末です。ご存知の方もいらっしゃるかもしれませんが、Android OSはLinuxがベースになっています。この話を初めて聞いた私が真っ先に思ったのが、「じゃあプログラミングできるんじゃね!?」でした。調べてみたところ実際にできるみたいだったのでやってみました。多分このこととは関係ないんですけど。
競技プログラミングとしたのは、スマホで普段PCでやっているような開発をするのはさすがに無理があると思ったためです。外出時などにお試しください。
なおpaiza.ioやrepl.itもありますが私のキーボードだとエディタが完全に隠れてしまいダメなので却下です。というかこれがきっかけです。
で、書いた後思ったんですけど、画面サイズ的にタブレットが限界だと思います。AOJとか過去問解くときとかで急がないのであればスマホでも大丈夫ではあると思います。
§1 環境
AndroidはLinuxがベースになっているといいましたが、当然ながら普段の環境ではカーネルにはアクセスできません。
この問題を解決してくれるのがターミナルエミュレータになります(ほんまか?詳しくない どちらかというと仮想環境なのかも)
Google Playにごろごろ転がっているのでインストールするといいでしょう。ちなみにものによっては目的が達成できない場合があるかもしれません。
私が使ったのは"Termux"というものです。
今回はこちらのアプリを使って解説を行います。ちなみにroot権限を取得する必要はありません。
あとBluetooth接続のハードウェアキーボードを持ってない方はCtrlとかEscあたりの普通のキーボードだと送れない信号を送れるキーボードがあるといいかもしれません。
私が使っているのはHacker's Keyboardというものです。スマホだとちょっと狭い。
§2 インストール
アプリを起動すると簡単な説明があります。
簡単にまとめると
- pkg install (app)でアプリケーションのインストール
- pkg search (query)でアプリケーションに関する情報の取得
- pkg update で既存のアプリケーションのアップデート
となります。私は普段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としてみます。
最後にVimを終了します。これだけは覚えてください。
Vimの終了はNORMALモードで':q'を入力してEnter/Returnです。
これされ知っていればたとえあなたが将来的にEmacs派になり、友人に
alias emacs='vim'
されてしまっても大丈夫でしょう。あとこの時はunalias emacs
を忘れないように。
§4 実行
それでは先ほどのPythonスクリプトを実行してみましょう。
$ python test.py
無事こうやって表示されれば成功です。
この調子でプログラムを組み、問題のテストケースなどを試してみてください。
提出の際はエディタの本文をホールドすればクリップボードにコピーできる...ハズです。
ほかにもRuby/Perl/Goなどの代表的なスクリプト言語、C言語(clang)、Scheme(tinyscheme)、さらにはValaといった変わった言語も使えるようです。いろいろ調べてみるといいと思います。起動したときにWikiのサイトとか出ますので。
§∞ おわりに
私自身は競技プログラミングはとても弱いのですがPCがなくてもこういった形で始められるので興味を持って気軽に始めていただけたらと思います。
明日はnagatechさんが担当なさいます。お楽しみに。