おはようございます、キラメックスでTechAcademyジュニアの開発をしています蟹です。 前回 はScratchでAtCoderの問題を解いてみたので、皆様の中にも「そのまま提出したい!」という願いが出てくることでしょう。 ということで、今回はその願いを叶える回にしたいと思います。
はじめに
Google Chromeの拡張機能に「Scratcher's AtCoder」という、「ScratchでのAtCoderへの参加」を可能にしてくれる魔法の拡張機能がございます! Scratchのファイル(sb2 / sb3)をC++のコードに変換して、AtCoderに提出できるようにしてくれます。
作者本人による紹介記事(Qiita)もあり、本稿はそちらの「実際にやってみた」系の記事になります。
本稿では、AtCoder Beginners Selection(https://atcoder.jp/contests/abs)のうち2問を、実際に提出していきます。
想定読者は
- Scratchをやったことがある
- AtCoderはやったことがない
- 小学生〜高校生くらい
を想定し、丁寧めに記載していこうと思います。
準備
まず準備として、AtCoderの簡単な説明と、拡張機能のインストールをしていきましょう。
AtCoderの登録
AtCoderのアカウント登録をしていない方は、コードの提出に必要なので以下を参考にアカウント登録をお願いします。
AtCoder問題画面の説明
AtCoder Beginners Selection の「問題」タブを開いた画面です。 https://atcoder.jp/contests/abs/tasks
「Product」のリンクを押してみてください。
問題文や入力/出力の形式が記述されています。
画面の下の方に行くと、提出フォームがあります。
Scratcher's AtCoder のインストール
https://chrome.google.com/webstore/detail/scratchers-atcoder/hackndbjgkehhjinjjoldifbhnfddklh?hl=ja
「Chromeに追加」を押します。
モーダルが現れるので「拡張機能を追加」を押します。 追加されます、これでおしまいです。
再びAAtCoderの提出フォームを開くと、右側に黄色いボタンが2つ表示されます。
1問目
では準備も完了したので、の提出をしていきましょう。
今回もdr.kenさんの AtCoder に登録したら次にやること ~ これだけ解けば十分闘える!過去問精選 10 問 ~ - Qiita に従って、AtCoder Beginners Selectionの2問目から解いていきましょう。
AtCoderの問題画面
https://atcoder.jp/contests/abs/tasks/abc086_a
問題名は「Product」です。 問題文、制約、入力、出力がありますね。 下には入出力の例もあるので、コーディングの際にはそちらでテストしながら進めると良いでしょう。
Scratchで問題を解く
問題文を読んだら、Scratchで問題を解きましょう。 以前の記事 にてScratchの実装も解説しているので、詳細はそちらで…! 出来上がったものがこちらになります。
出来たな…!!と思ったらScratchのファイル(sb3形式)をダウンロードします。
提出の流れ
それでは提出していきましょう! AtCoderの問題画面に戻り、一番下のあたりのエディタに行きましょう。
まず、「言語」を「C++」に設定します。
そして右にあるオレンジ色の「Scratch 3.0 プロジェクトをロード」ボタンをクリックします。 すると、以下のような小窓が出現するので、先ほどダウンロードしたScratchファイルを選択してください!
「開く」を押すと、自動で以下のようにエディタにコードが書かれます。
C++のコードが入力されたのが確認できたら、「提出」ボタンを押してください。 採点が走って、正しく実装できていれば、以下のようにクリアです!!
2問目
問題とコード
問題はこちら。「Placing Marbles」です。
Scratchのコードはこちら。 ダウンロードしてください。 サクサクいきます。
提出タブからの提出方法
AtCoderでの提出方法として、問題タブの下部からでなく、「提出タブ」から行う方法も見ていきたいと思います。
「提出タブ」の場合は、「問題」を選択する必要があるので、そこだけ注意してください。 「Placing Marbles」を選択します。
言語もC++を設定して…
あとは先ほどと同様にScratchのファイル(sb3ファイル)をアップロードすれば…
通りました!!!
おわりに
皆さんも、ScratchでAtCoderできたでしょうか? ScratchでABCなどのコンテストに参加してみるのも楽しそう(?)ですね!
また、提出自体は通っているのですがコンパイルエラーが出ていたりもしていたので、C++の勉強もしながらのんびり Scratcher's AtCoder のソースコードでも眺めてみようかと思います。
それでは、またお会いしましょう。