Scratch on AtCoder 提出編

おはようございます、キラメックスでTechAcademyジュニアの開発をしています蟹です。 前回 はScratchでAtCoderの問題を解いてみたので、皆様の中にも「そのまま提出したい!」という願いが出てくることでしょう。 ということで、今回はその願いを叶える回にしたいと思います。

はじめに

Google Chrome拡張機能に「Scratcher's AtCoder」という、「ScratchでのAtCoderへの参加」を可能にしてくれる魔法の拡張機能がございます! Scratchのファイル(sb2 / sb3)をC++のコードに変換して、AtCoderに提出できるようにしてくれます。

chrome.google.com

作者本人による紹介記事(Qiita)もあり、本稿はそちらの「実際にやってみた」系の記事になります。

qiita.com

本稿では、AtCoder Beginners Selection(https://atcoder.jp/contests/abs)のうち2問を、実際に提出していきます。

想定読者は

  • Scratchをやったことがある
  • AtCoderはやったことがない
  • 小学生〜高校生くらい

を想定し、丁寧めに記載していこうと思います。

準備

まず準備として、AtCoderの簡単な説明と、拡張機能のインストールをしていきましょう。

AtCoderの登録

AtCoderのアカウント登録をしていない方は、コードの提出に必要なので以下を参考にアカウント登録をお願いします。

チュートリアル - AtCoder

practice contest - AtCoder

AtCoder問題画面の説明

AtCoder Beginners Selection の「問題」タブを開いた画面です。 https://atcoder.jp/contests/abs/tasks

f:id:kani-krmx:20210924201306p:plain

「Product」のリンクを押してみてください。

問題文や入力/出力の形式が記述されています。

f:id:kani-krmx:20210924201316p:plain

画面の下の方に行くと、提出フォームがあります。

f:id:kani-krmx:20210924201326p:plain

Scratcher's AtCoder のインストール

https://chrome.google.com/webstore/detail/scratchers-atcoder/hackndbjgkehhjinjjoldifbhnfddklh?hl=ja

Chromeに追加」を押します。

f:id:kani-krmx:20210924202207p:plain

モーダルが現れるので「拡張機能を追加」を押します。 追加されます、これでおしまいです。

f:id:kani-krmx:20210924202225p:plain

再びAAtCoderの提出フォームを開くと、右側に黄色いボタンが2つ表示されます。

f:id:kani-krmx:20210924203713p:plain

1問目

では準備も完了したので、の提出をしていきましょう。

今回もdr.kenさんの AtCoder に登録したら次にやること ~ これだけ解けば十分闘える!過去問精選 10 問 ~ - Qiita に従って、AtCoder Beginners Selectionの2問目から解いていきましょう。

AtCoderの問題画面

https://atcoder.jp/contests/abs/tasks/abc086_a

f:id:kani-krmx:20210930095638p:plain

問題名は「Product」です。 問題文、制約、入力、出力がありますね。 下には入出力の例もあるので、コーディングの際にはそちらでテストしながら進めると良いでしょう。

Scratchで問題を解く

問題文を読んだら、Scratchで問題を解きましょう。 以前の記事 にてScratchの実装も解説しているので、詳細はそちらで…! 出来上がったものがこちらになります。

f:id:kani-krmx:20210930101255p:plain

出来たな…!!と思ったらScratchのファイル(sb3形式)をダウンロードします。

f:id:kani-krmx:20210930104636p:plain

提出の流れ

それでは提出していきましょう! AtCoderの問題画面に戻り、一番下のあたりのエディタに行きましょう。

まず、「言語」を「C++」に設定します。

f:id:kani-krmx:20210930105044p:plain

そして右にあるオレンジ色の「Scratch 3.0 プロジェクトをロード」ボタンをクリックします。 すると、以下のような小窓が出現するので、先ほどダウンロードしたScratchファイルを選択してください!

f:id:kani-krmx:20210930105636p:plain

「開く」を押すと、自動で以下のようにエディタにコードが書かれます。

f:id:kani-krmx:20210930105746p:plain

C++のコードが入力されたのが確認できたら、「提出」ボタンを押してください。 採点が走って、正しく実装できていれば、以下のようにクリアです!!

f:id:kani-krmx:20210930105858p:plain

2問目

問題とコード

問題はこちら。「Placing Marbles」です。

f:id:kani-krmx:20210930181734p:plain

Scratchのコードはこちら。 ダウンロードしてください。 サクサクいきます。

f:id:kani-krmx:20210930181934p:plain

提出タブからの提出方法

AtCoderでの提出方法として、問題タブの下部からでなく、「提出タブ」から行う方法も見ていきたいと思います。

「提出タブ」の場合は、「問題」を選択する必要があるので、そこだけ注意してください。 「Placing Marbles」を選択します。

f:id:kani-krmx:20210930182034p:plain

言語もC++を設定して…

f:id:kani-krmx:20210930182110p:plain

あとは先ほどと同様にScratchのファイル(sb3ファイル)をアップロードすれば…

f:id:kani-krmx:20210930182341p:plain

通りました!!!

f:id:kani-krmx:20210930182528p:plain

おわりに

皆さんも、ScratchでAtCoderできたでしょうか? ScratchでABCなどのコンテストに参加してみるのも楽しそう(?)ですね!

また、提出自体は通っているのですがコンパイルエラーが出ていたりもしていたので、C++の勉強もしながらのんびり Scratcher's AtCoderソースコードでも眺めてみようかと思います。

github.com

それでは、またお会いしましょう。