AtCoderをPHPで快適にやりたい時の環境構築(途中)
🌘

AtCoderをPHPで快適にやりたい時の環境構築(途中)

Tags
PHPAtCoder
Last Edited
Jul 11, 2021 12:05 PM
Description
AtCoderでPHPを使いまわせるように基本の下地環境を整えたので、その時の備忘録
Date
ジャンル
ステータス
広告
評価

注意

AtCoder Toolsを使用していますが、サンプルケースのテスト環境だけです。

提出まではCLIでできません。

事前準備

PHPのインストール

対応バージョンは現時点で7.4.4

詳しくは書きませんが、Macの人は最初から7.1が入ってるぽい

それでも独自のバージョン入れたい人はbrewで入れましょう

AtCoder-Toolsの導入

REF:

インストール

Pythonのpipを通してインストールします。

$ python -V

をしてみて、versionが2系ならpip3を、3系ならpipを使いましょう。

$ pip3 install atcoder-tools

使い方

atcoder-toolsを用いてケース作成

gen コンテストID

URLの赤枠の部分がコンテストID
URLの赤枠の部分がコンテストID

でテストデータをダウンロードします。

$ atcoder-tools gen abc200

デフォルトだとホームディレクトリにatcoder-workspaceが生成され、その中にabc200というディレクトリが生成されます。嫌な人はオプションで変更ができるので、調整してください。

main.phpを作る

先ほど生成したディレクトリにmain.phpを書いて行きます。

参考としてabc200のa問題の場合です。

$ cd abc200/A
$ touch main.php

main.phpの中身

#!/usr/local/bin/php
<?php

$n = trim(fgets(STDIN));
echo ceil($n / 100);


echo "\n";

解説

一番最初の行にshebangを書く(ローカルにインストールされているPHPのpath)

$ which php
->/usr/local/bin/php # これ

#!/usr/local/bin/php

ロジック部分、最後にechoで改行を入れているのは、atcoder-toolsのtestでpassする為です。

<?php

$n = trim(fgets(STDIN));
echo ceil($n / 100);


echo "\n";

テストする

さっき作ったmain.phpに権限を付与してあげます。

$ chmod +x main.php

そしてatcoder-tools testを実行し、通ればOK

$ atcoder-tools test

提出する

atcoder-tools submit をすれば・・・というわけには行きません。ここでphpは対応していないので大人しくコピペして、問題ページから提出しましょう・・・。

頑張って開発してプルリクすればPHPも対応言語に仲間入りするかもしれません。

EX.めんどくさがり向け

スニペットを設定する

ベースのコードをVSCodeのスニペットに登録する

以下を参考

スニペットはGlobalに作るのが良いです。phpスニペットとして作成すると<?php?>ブロック内でしか引用できなくなってしまうので。

{
	"atocoderphp": {
		"prefix": "ptem",
		"body": [
		  "#!/usr/local/bin/php",
		  "<?php",
		  "",
		  "$1",
		  "",
		  "echo \"\\n\";"
		],
		"description": "atocoderphp"
	  }
}

コマンドをエイリアス設定する

atcoder-tools gen

atcoder-tools test

いちいち入力は面倒なのでaliasを設定してあげると楽になります。

$ vim ~/.zshrc
alias att='atcoder-tools test'
alias atg='atcoder-tools gen'
alias ats='atcoder-tools submit'

これでattやatgと打つだけですぐにコマンド実行できます。楽。

ファイル作成と実行権付与をシェルスクリプトで行う

// TODO

icon

Twitter よかったらフォローしてね!

© 2021 | Tech Dog Run