Skip to content

liebe-magi/pz

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pz : A CLI Tool for Paiza.jp

特徴

  • Paizaのスキルチェックにおけるコーディングをローカルで行える
    • 好きなエディタを利用可
  • 事前に作成したテンプレートを使用してコーディング
  • テストケースをチェック
  • テストケースの標準出力・標準エラーを確認してデバッグ
  • コーディング結果をクリップボードへコピー

できることと使い方の概要を以下の動画で紹介しています。 (クリックするとYouTubeページへジャンプします。)

概要動画

導入方法

動作環境の構築

  • Google Chromeのインストール
    • Chrome以外のブラウザにはまだ対応していません
  • chromedriverをダウンロードし、パスの通っているディレクトリに配置
    • 使用しているOS、Chromeのバージョンに合っているものを使うこと

pzのインストール

以下のどちらかの方法でインストールしてください。

バイナリファイルをダウンロード

Releasesにある最新版のバイナリファイルをダウンロードし、パスの通っているディレクトリに配置 - 使用しているOSに合ったものを使うこと

go getでインストール

Goの環境構築ができている人は以下のコマンドでインストールしてください。

$ go get github.com/MagicalLiebe/pz

動作確認

以下のコマンドを実行し、Google Chromeが起動してPaizaのログインページが表示されれば環境構築はOKです。

$ pz run

起動が確認できたら、以下のコマンドで一度終了してください。

> exit

使い方

初期設定

configコマンド等を利用して初期設定を行います。

Paizaログイン用のメールアドレス・パスワードの設定

設定しなくても使用できますが、設定すると起動時に自動でログインできます。

$ pz config email [E-mailアドレス]

$ pz config password [パスワード]

使用するプログラミング言語のテンプレート設定

コーディングに用いる言語の設定と使用するテンプレートを行います。 複数の言語を設定できますので、自分がコーディングに用いる言語を設定しておくと良いです。

新しいテンプレートの作成

addコマンドを使って、新しいテンプレートを作成できます。

$ pz add [テンプレート名]

例えば、

$ pz add python

と入力すると、~/.config/pz以下にpythonディレクトリが作成されます。 そのディレクトリの中には、main.xxtemplate.tomlの2つのフォルダが生成されています。

テンプレート設定

main.xxを使用する言語の拡張子に変更します。

$ mv main.xx main.py

このmain.pyの中にコーディング開始時に使用したいテンプレートコードを記述しておくと、実際にコーディングを行うディレクトリにこのファイルがコピーされます。

次に、template.tomlの設定をします。

language = "Python3"
file = "main.py"
run = "python main.py"

各パラメータの詳細は以下の通りです。

  • language
    • Paizaの問題ページにおける言語設定(プルダウンメニューで選択するもの)を記述します。
    • これにより、問題ページのプルダウンメニューを自動で選択します。
  • file
    • main.xxのリネーム後のファイル名を記述します。
    • ここで指定したファイルがコーディング用のディレクトリにコピーされます。
  • run
    • プログラムを実行するときのコマンドを記述します。
デフォルトで使用するテンプレートの設定

runコマンド実行時にテンプレートを指定しなかった場合にデフォルトで使用されるテンプレートを選択します。 普段よく使用する言語を設定しておくのがおすすめです。

$ pz config defaultTemplate [テンプレート名]

プログラムの起動

以下のコマンドで起動します。 (デフォルトのテンプレートが設定されている場合、テンプレート名は省略可)

$ pz run [テンプレート名]

Google Chromeが起動し、PaizaのWebページに自動でログインされます。 また、ターミナルは以下のような表示となり、コマンドによりインタラクティブに操作できる状態となります。

>

問題用ディレクトリの作成

起動したGoogle Chromeを操作し、解きたい問題のページまで移動します。 問題ページに移動したら、ターミナルにて以下のコマンドを入力します。

> get ('g'のみでも可)

カレントディレクトリ以下にランク別で問題用のディレクトリが作成されます。 ディレクトリの構成は以下の通りです。

(現在のディレクトリ)
|-- D (問題のランク)
    |-- D170 (問題番号)
        |-- tests (テストケース)
        |   |-- input_0.txt
        |   |-- input_1.txt
        |   |-- output_0.txt
        |   |-- output_1.txt
        |-- main.xx (テンプレートのコピー)

コピーされたmain.xxに問題を解くコードを記述します。

テストケースの確認

コーディングできたら、テストケースでコードをチェックします。

> test ('t'だけでも可)
ID: D170 (https://paiza.jp/career/challenges/415/retry)
  Test: case 1
    [Success] Passed the test. (time:0.1497901s)
  Test: case 2
    [Success] Passed the test. (time:0.1254667s)
  [Result] Pass 2/2 (All clear!)

以上のように、All clear!と表示されれば、テストケースをすべてパスしています。

入力のデバッグ

テストケースをパスできなかった場合、各入力に対しての標準出力や標準エラーを確認します。

> debug ('d'のみでも可) [テストケース番号]
  ID: D170 (https://paiza.jp/career/challenges/415/retry)
  Debug: case 1
    >> 600
  [Finish] time:0.1172789s

コードの提出

以下のコマンドにより、書いたコードをクリップボードにコピーします。

> submit ('s'のみでも可)

ブラウザのコード提出用のテキストボックスにペーストして提出しましょう。

プログラムの終了

以下のコマンドにより、プログラムを終了し、ブラウザを閉じることができます。

> exit ('e'のみでも可)

License

pz is released under the Apache 2.0 license. See LICENSE