コードレビュービンゴ
コードレビューBINGOとは?
コードの間違いを見つけて、よりよい書き方のコードを提案しましょう!
コード提出後には、他の人がどんなコードを書いたのか見られます。
全8言語の中から好きな言語を選んで、いろいろな書き方を考えてみてください。
何回でも提出OKです。より短く書いてみる、複数の言語で書いてみる、などたくさんのコード投稿をお待ちしています!
例題をチェック!
言語を選んでBINGOスタート!
みんなの投稿
-
Java #1 Hello BINGO!
kazura-
0
public class Main { public static void main(String[] args) { String message = "Hello BINGO!"; System.out.println(message); } } -
Python #2 BINGO!表示
gukt
0
message = "BINGO!" n = int(input()) for i in range(0,n): print(message) -
C++ #1 Hello BINGO!
こう55
0
#include<iostream> int main(void) { std::cout<<"Hello BINGO!"; return 0; } -
Python #4 大きい方を出力
pythonpythonpython
0
a = int(input()) b = int(input()) if a > b: print(a) else: print(b) -
Python #3 足し算
pythonpythonpython
0
a, b = map(int, input().split()) print(a + b) -
Python #2 BINGO!表示
pythonpythonpython
0
print("BINGO!\n"*int(input())) -
Python #1 Hello BINGO!
pythonpythonpython
0
message = "Hello BINGO!" print(message) -
Rust #7 文字の並べ替え
lening
0
use std::iter::FromIterator; fn main() { let mut lines = std::io::stdin().lines(); let _n = lines.next(); let s = lines .next() .expect("Error when Reading The First Line") .expect("Error when Reading The First Line") .trim() .chars() .collect::<Vec<char>>() .sorted(); let t = lines .next() .expect("Error when Reading The Second Line") .expect("Error when Reading The Second Line") .trim() .chars() .collect::<Vec<char>>() .sorted(); println!("{}", if s == t { "Yes" } else { "No" }); } trait Sortedable { fn sorted(self) -> Self where Self: IntoIterator, Self: FromIterator<Self::Item>, Self::Item: Ord, { let mut to_sort: Vec<Self::Item> = self.into_iter().collect(); to_sort.sort(); to_sort.into_iter().collect() } } impl<T> Sortedable for Vec<T> {} -
Rust #8 ビンゴカード
lening
0
use std::convert::TryInto; use std::io::BufRead; fn main() { let [line1, line2, line3]: [String; 3] = std::io::stdin() .lock() .lines() .map(|line| line.expect("IO Error: Reading from stdin")) .map(|line| line.trim().to_string()) .filter(|line| !line.is_empty()) .take(3) .collect::<Vec<_>>() .try_into() .expect("Input Error: Expected at lest 3 lines"); // let mut input1 = String::new(); // std::io::stdin() // .read_line(&mut input1) // .expect("IO Error: Reading from the first stdin line."); // let line1 = input1.trim(); // let mut input2 = String::new(); // std::io::stdin() // .read_line(&mut input2) // .expect("IO Error: Reading from the first stdin line."); // let line2 = input2.trim(); // let mut input3 = String::new(); // std::io::stdin() // .read_line(&mut input3) // .expect("IO Error: Reading from the first stdin line."); // let line3 = input3.trim(); let line1: Vec<char> = line1.chars().collect(); let line2: Vec<char> = line2.chars().collect(); let line3: Vec<char> = line3.chars().collect(); let bingo: Vec<Vec<char>> = vec![line1, line2, line3]; let mut result = 0; // row result += (0..3) .filter(|&i| bingo[i][0] == bingo[i][1] && bingo[i][1] == bingo[i][2] && bingo[i][2] == '#') .count(); // column result += (0..3) .filter(|&i| bingo[0][i] == bingo[1][i] && bingo[1][i] == bingo[2][i] && bingo[2][i] == '#') .count(); // diagonal result += ((0..3).map(|i| bingo[i][i]).all_equal() && bingo[1][1] == '#') as usize; // result += // (bingo[0][0] == bingo[1][1] && bingo[1][1] == bingo[2][2] && bingo[1][1] == '#') as usize; // anti-diagonal result += ((0..3).map(|i| bingo[i][2 - i]).all_equal() && bingo[1][1] == '#') as usize; // result += // (bingo[0][2] == bingo[1][1] && bingo[1][1] == bingo[2][0] && bingo[1][1] == '#') as usize; println!("{}", result); } trait AllEqual: Iterator + Sized where Self::Item: PartialEq, { fn all_equal(mut self) -> bool { match self.next() { None => true, Some(val) => self._all_equal_helper(val), } } #[doc(hidden)] fn _all_equal_helper(mut self, last_val: Self::Item) -> bool { match self.next() { None => true, Some(val) => val == last_val && self._all_equal_helper(val), } } } impl<I, F, B> AllEqual for std::iter::Map<I, F> where I: Iterator, F: FnMut(I::Item) -> B, B: PartialEq, { } -
Rust #8 ビンゴカード
lening
0
fn main() { // let [line1, line2, line3]: [String; 3] = std::io::stdin() // .lines() // .take(3) // .map(|line| line.expect("IO Error: Reading from stdin")) // .map(|line| line.trim().to_string()) // .collect::<Vec<_>>() // .try_into() // .expect("Input Error: Expected at lest 3 lines"); let mut input1 = String::new(); std::io::stdin() .read_line(&mut input1) .expect("IO Error: Reading from the first stdin line."); let line1 = input1.trim(); let mut input2 = String::new(); std::io::stdin() .read_line(&mut input2) .expect("IO Error: Reading from the first stdin line."); let line2 = input2.trim(); let mut input3 = String::new(); std::io::stdin() .read_line(&mut input3) .expect("IO Error: Reading from the first stdin line."); let line3 = input3.trim(); let line1: Vec<char> = line1.chars().collect(); let line2: Vec<char> = line2.chars().collect(); let line3: Vec<char> = line3.chars().collect(); let bingo: Vec<Vec<char>> = vec![line1, line2, line3]; let mut result = 0; // row result += (0..3) .filter(|&i| bingo[i][0] == bingo[i][1] && bingo[i][1] == bingo[i][2] && bingo[i][2] == '#') .count(); // column result += (0..3) .filter(|&i| bingo[0][i] == bingo[1][i] && bingo[1][i] == bingo[2][i] && bingo[2][i] == '#') .count(); // diagonal result += ((0..3).map(|i| bingo[i][i]).all_equal() && bingo[1][1] == '#') as usize; // result += // (bingo[0][0] == bingo[1][1] && bingo[1][1] == bingo[2][2] && bingo[1][1] == '#') as usize; // anti-diagonal result += ((0..3).map(|i| bingo[i][2 - i]).all_equal() && bingo[1][1] == '#') as usize; // result += // (bingo[0][2] == bingo[1][1] && bingo[1][1] == bingo[2][0] && bingo[1][1] == '#') as usize; println!("{}", result); } trait AllEqual: Iterator + Sized where Self::Item: PartialEq, { fn all_equal(mut self) -> bool { match self.next() { None => true, Some(val) => self._all_equal_helper(val), } } #[doc(hidden)] fn _all_equal_helper(mut self, last_val: Self::Item) -> bool { match self.next() { None => true, Some(val) => val == last_val && self._all_equal_helper(val), } } } impl<I, F, B> AllEqual for std::iter::Map<I, F> where I: Iterator, F: FnMut(I::Item) -> B, B: PartialEq, { }
遊び方
-
好きな言語の
ビンゴカードを選択!
Python,C#,C++,Ruby,Java,JavaScript,PHP,Rust 全8言語対応!
-
選んだ問題を解いて
コードを提出&採点
paizaへの無料会員登録が必要です。
-
クリアすると
カードに結果が反映!
たくさん解いて、BINGOをそろえよう!プレゼントが当たります!
-
他の人が書いたコードに
拍手を送ろう!
結果画面でその問題を解いた人のコードが見られます。すてきなコードには掲載欄横の拍手ボタンを押下♪
-
もっと短いコードで
書いてみよう!
同じ言語、同じ問題で何回でも提出が可能です。8番はキャンペーン対象問題です!
-
他の言語のビンゴにも
挑戦してみよう!
他の言語ではどんなふうに書くのか、チャレンジしてみましょう。
ランキング
拍手数順
-
bayashiko
847
-
a9ua1i0n
189
-
@nonymous
167
-
Ciel
148
-
achapi
147
-
Rssll_Krkgrd
128
-
Soutanu
100
-
refi
80
-
SIAM
77
-
hiro1729
72
byte数順
-
Python
achapi
15
-
C#
gojira_ku
75
-
C++
ねしゃ~
45
-
Ruby
trocha
8
-
JavaScript
achapi
23
-
Rust
fakefake
37
-
Java
climpet
83
-
PHP
bayashiko
12
期間中に参加してプレゼントをもらおう!
プレゼントキャンペーンは終了しました。
たくさんのご応募ありがとうございました。
-
全列BINGO
賞
先着
50名様
Amazonギフトカード
1,000円分
速さ勝負!いずれかの言語で、8問全問正解された先着50名様にプレゼント。
プレゼントキャンペーンは
終了しました -
コードゴルフ
賞
8名様
Anker 511 Power Bank
(PowerCore Fusion 5000)
コードの短さ勝負!各言語の対象問題で一番短いコードを書いた1名様合計8名様にプレゼント。何色が届くかはお楽しみ!
プレゼントキャンペーンは
終了しました -
累計拍手数最多
賞
1名様
Tello
投稿したコードに対して、累計で一番多く拍手を受け取った1名様に、トイドローン「Tello」をプレゼント。いろんな言語でイケてるコードを書いて、拍手をたくさんもらおう!
プレゼントキャンペーンは
終了しました -
1列以上BINGO
賞
抽選3名様
リーダブルコード
(紙書籍)
美しく優れたコードを書くためのメソッドが詰まった、エンジニアのバイブルと言っても過言ではない1冊をプレゼント!
プレゼントキャンペーンは
終了しました -
いっぱい拍手したで
賞
抽選10名様
Amazonギフトカード
500円分
参加ユーザーの書いたすてきなコードに、たくさん拍手を送ってくださった方の中から抽選で10名様にプレゼント。
プレゼントキャンペーンは
終了しました -
フォロー
&
リツイート
抽選20名様
Amazonギフトカード
500円分
paiza公式Twitterアカウント「 @paiza_official 」をフォローし、指定の投稿をリツイートしてください。
プレゼントキャンペーンは
終了しました
プレイ規約
「コードレビューBINGO」(以下「本ゲーム」といいます。)をプレイする方(以下「利用者」といいます。)は、paiza株式会社(以下「当社」といいます。)が定める本規約の内容を必ずご確認、ご了承の上ご参加ください。
参加資格について
-
アカウント設定について
- 本ゲームへのご参加には、当社への会員登録(paiza会員)及び本ゲームのアカウント設定が必要です。アカウント設定は、任意のニックネーム及び画像の登録をお願いします。なお、画像の登録に際し、当社もしくは第三者の著作権、商標権等の知的財産権を侵害する又は侵害するおそれのある画像は使用しないでください。
- キャンペーンの応募には上記アカウント設定に加えて、Twitterへの登録が必要なものもあります。詳しくは、下記「キャンペーンについて」の「4,応募資格について」をご参照ください。
キャンペーンについて
-
応募期間について
キャンペーン対象期間:2023年6月8日(木)〜6月25日(日)
やむを得ない事情により、応募期間は予告なく変更となることがあります。 -
賞品について
期間中に条件を満たした利用者の方の中から下記の賞品をプレゼントいたします。
- 全列BINGO賞「Amazonギフトカード 1,000円分」(先着50名様)
- コードゴルフ賞「Anker 511 Power Bank (PowerCore Fusion 5000)」(8名様)
- 累計拍手数最多賞「 Tello」(1名様)
- 1列以上BINGO賞「リーダブルコード」(抽選3名様)
- いっぱい拍手したで賞「Amazonギフトカード 500円分」(抽選10名様)
- Twitterフォロー&リツイート「Amazonギフトカード 500円分」(抽選10名様)
-
応募方法について
- 全列BINGO賞「Amazonギフトカード 1,000円分」(先着50名様) 8言語中のいずれかの言語のビンゴカードの問題を解き、8問全問正解して全列BINGOしてください。先着で50名様にプレゼントいたします。
-
コードゴルフ賞「Anker 511 Power Bank」(8名様)
8言語それぞれのビンゴカードのコードゴルフ対象問題を解き、他の方が書いたコードより短いコードを投稿してください。各言語の中で一番短い(byte数の小さい)コードを投稿した8名様にプレゼントいたします。
※byte数が同数の場合は先に提出された方が上位になります。
※1アカウントにつきプレゼントは1つとさせていただきます。複数言語で同一アカウントが1位の場合は、2位以降の方を繰り上げ当選とします。 - 累計拍手数最多賞「 Tello」(1名様) 利用者の方の中で、累計拍手数の一番多かった方1名様にプレゼントいたします。
- 1列以上BINGO賞「リーダブルコード」(抽選3名様) 8言語中のいずれかの言語のビンゴカードで問題を解き、縦、横、斜め1列以上BINGOしてください。抽選で3名様にプレゼントいたします。
- いっぱい拍手したで賞「Amazonギフトカード 500円分」(10名様) 本ゲーム内に投稿されたコードに拍手を送ってください。送った拍手数の多かった10名様にプレゼントいたします。
-
Twitterフォロー&リツイート「Amazonギフトカード 500円分」(抽選10名様)
Twitter上で、当社公式Twitterアカウント 「
@paiza_official
」をフォローし、指定の投稿をリツイートしてください。
※アカウントを非公開設定にしている場合はご応募対象外となります。
※応募の対象となるのはリツイートのみです。引用ツイートの場合ご応募対象外となります。
※当社アカウントフォローの解除又はアカウントの凍結、削除、Twitter IDの変更等の理由によりダイレクトメッセージが送れない場合は当選を無効とさせていただきます。
-
応募資格
- 関係者のご応募はご遠慮ください。
- 1〜5のキャンペーンへのご応募には、paizaへのログイン又は新規会員登録が必要です。
- 6のキャンペーンへのご応募には、Twitterへの登録(無料)が必要です。
- 6のキャンペーンに複数のTwitterアカウントで応募された場合、当選資格を無効とさせていただきます。
- ご応募は日本国内にお住まいの方に限らせていただきます。
- 未成年の方は、親権者の方が応募規約に同意いただいた上でキャンペーンの応募をお願いいたします。
- その他、当社が不正とみなした方は、当選対象外とさせていただきます。
-
当選連絡
- 1〜5に関して 抽選(7月中旬頃予定)の上、当選者へはpaizaへ登録のメールアドレス宛に当選のご連絡をいたします。
- 6に関して 抽選(7月初旬頃予定)の上、当選者へは応募の際に使用されたTwitterアカウント宛にDMでご連絡をいたします。
-
注意事項
-
1・5・6に関して
- Amazon、Amazon.co.jpおよびそのロゴはAmazon.com,Inc.またはその関連会社の商標です。
- 本キャンペーンはpaiza株式会社による提供です。本キャンペーンについてのお問い合わせはAmazonではお受けしておりません。
- 本キャンペーンに関するお問い合わせは、下記「当キャンペーンに関するお問い合わせ先」をご参照ください。
-
2に関して
- Anker 511 Power Bankの保証は、賞品到着から30日以内に発生した初期不良が対象となります。万が一不良があった場合はアンカー・ジャパン株式会社カスタマーサポートまでご連絡ください。
-
全てのキャンペーン共通
- 各賞品の名称およびそのロゴは、当該賞品の製造元又は第三者の商標又は登録商標です。
- 当選の連絡後、必要な情報をご提供いただけない場合、当選を無効とさせていただきますのでご注意ください。
- 当選者の住所が不明確な場合や、転居による住所変更などの理由により、賞品をお届けできない場合、当選資格を無効とさせていただく場合があります。
- 当選が無効となった場合、その後、賞品の送付依頼をいただいたとしても一切お受けできません。
- 無効となった当選が発生した場合、当選人数は上記記載の数に達しないことがあります。
- 景品表示法の規定により、当社で実施中の他のキャンペーンとの重複当選は出来ない場合があります。
- 当選賞品の販売・換金はできません。
- 当選資格の第三者への譲渡、貸与、名義変更、担保設定等はできません。
- 問題の内容、当選に関するお問い合わせにはお答えいたしかねます。
-
1・5・6に関して
-
個人情報について
- 応募情報としてご提供いただいた個人情報は、以下に掲げる目的のために収集および使用されます。
- 本キャンペーンの実施および運営
- 本キャンペーンで当選した場合のご連絡
- プレゼントの発送
- 各種イベント/各種キャンペーンのご案内等
- 個人情報は、当社が定めるプライバシーポリシーに従い管理、利用されるものとします。
- 応募情報としてご提供いただいた個人情報は、以下に掲げる目的のために収集および使用されます。
- 当キャンペーンに関するお問い合わせ先 本キャンペーンについてのお問い合わせは、paizaの お問い合わせフォームよりお願いいたします。
- 免責事項 当サイトの利用または本キャンペーンに関連して発生した利用者または第三者の損害について、当社に故意または重過失がある場合を除き、当社は責任を負わないものとします。
プレイ動画配信について
プログラミングエンタメ動画配信ガイドライン
paiza(以下「当社」といいます)では、
プログラミングエンタメページに掲載している 当社制作のコンテンツ(以下「当社コンテンツ」といいます)の動画や静止画(以下、総称して「本画像」といいます)を使用した個人のお客様による本画像のSNS等各種媒体への配信、投稿等(以下「投稿等」といいます)を歓迎しています。
但し、その投稿等にあたっては、本ガイドラインを遵守していただけますようお願いいたします。
- 対象者 日本国内在住の個人のお客様(動画投稿等のクリエイター関連企業や芸能事務所、プロダクションに所属または契約している方を除く。)を対象とし、 法人その他団体のお客様は対象となりません。なお、対象外の方での投稿等を希望される場合は、別途お問い合わせフォームからご相談ください。
- 知的財産権 当社のロゴ等の商標、当社コンテンツに含まれるゲーム内容、本画像、キャラクター、音声、音楽等の著作権その他の知的財産権は当社又は当社が契約する第三者に帰属します。 お客様の投稿等に第三者の知的財産権が含まれる場合、必要な許諾を取るなど無断使用とならないようご留意ください。
- 機密情報の非開示 投稿等の際、お客様における機密情報を含めることを禁止します。
- 適切なコンテンツ 暴力的、憎悪的、攻撃的、公序良俗に反する内容、当社又は第三者の誹謗中傷につながる内容、当社又は第三者の知的財産権を侵害する内容その他当社が不適切と判断するコンテンツの作成および投稿等を禁止します。
- ブランディングとプロモーション 投稿等の際、当社による後援または承認があるかのように示唆すること又は誤認させることを禁止します。
- クレジット表示 投稿等の際、以下のクレジット表示を入れて下さい。(Copyright Paiza, Inc. All rights reserved.)
- 投稿等が可能な媒体 YouTube、Twitch、Twitter、TikTokなどのSNS、動画配信サイト、お客様ご自身のウェブサイト、またはその他の動画共有サイト。(公序良俗に反するサイト、宗教活動や政治活動、反社会的活動に関するサイト等当社が不適切と判断するサイトへの投稿等を禁止します。)
- 商用・営利目的 広告、スポンサーシップ、またはその他の形態の有料プロモーションを使用しての収益化を禁止します。
- ネタバレについて 他のユーザーに配慮し、ネタバレ動画の投稿や、重要なゲーム情報の提供などされないようご留意ください。
- 変更の禁止 当社コンテンツのプレイ体験に影響を与えたり、本来の意図を変更したりするような方法で当社コンテンツを変更することを禁止します。
- 自己責任 お客様の投稿等の結果、発生した第三者とのトラブルについては、自らの費用と責任で解決するものとします。
- 本ガイドラインの変更 当社は当社の裁量により、いつでも本ガイドラインの内容の変更を行うことができます。お客様の投稿等が更新後のガイドラインに定める条件を満たさない場合、当社は当該投稿等を削除させて頂く場合があります。
本ガイドラインに従うことで、私たちのゲームとブランドを中心に、前向きでお互いを尊重するコミュニティを作ることができます。当社は、本ガイドラインに違反する投稿等を削除または削除する権利を留保します。