1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[memo] プログラミング系の遊び?

Last updated at Posted at 2023-03-01

プログラミング系の遊び?

遊びというか、学習法というか。

Hello world

単に、文字列を出力するだけのプログラム。

開発環境の動作確認、開発手順を確認するため、あるいはより複雑なプログラムを作るための第一歩として作成する事が多い。

FizzBuzz問題

数字を1から順番に繰り返して、以下の出力を得るプログラムを作る

  • 3の倍数(ただし5の倍数でない)なら "Fizz"
  • 5の倍数(ただし3の倍数でない)なら "Buzz"
  • 15の倍数なら "FizzBuzz"
  • それ以外の場合にはその数値そのもの

もともとは英語圏でのパーティーや、バス内で行われるゲームだが(日本でいう山手線ゲームとかしりとりみたいな位置づけ?)、プログラムを書けるかどうかを判断するのに課題として使われることがあるという噂がある。

ちなみに "Fizz" は炭酸水などのシュー、シュワーという音を示す。カクテルのジン・フィズなどのフィズと同じもの。
"Buzz" は虫の羽音や機械の低音のうなり、ざわめきなどを示す。派生語にブザー(buzzer)やバズワード(buzzword)等がある。

Quine(クワイン)

自身のソースコードを出力するプログラム。

コードゴルフ

特定の目的のプログラムを、可能な限り短いソースコードで書く競技。
レギュレーションはさまざまだけど、一般的には(標準出力に)正しい結果さえ出力されれば、エラーが起きても(標準エラー出力に出力される、終了コードが0でない、コケるなど)気にしないことが多い。

言語の実装

コンパイラやインタプリタなどを実装する。
よく作られるのは比較的簡易な言語であることが多いが、複雑な言語を作る人もいる。

わざと複雑な(読みにくい)コードを書く

〇〇を〇〇言語で作ってみた系

Qiita やその他ブログなどで、誰かが作った(比較的簡単な)プログラムを、別の言語でも作ってみて公開する。

例えば以下のようなものがあった

  • カフェでプログラミングしてる風(でも何もやっていない)〇〇言語コード
  • マイナンバーのチェックデジットを計算
  • 〇〇言語で湯婆婆を実装してみる
  • 〇〇言語でスンドコキヨシを書いてみる
  • などなど

あるいは、既存のゲームやアプリなどを実装するというものもある。

  • テトリス
  • マインスイーパー
  • パックマン
  • などなど

アルゴリズム系では

  • フィボナッチ数列
  • エラトステネスの篩
  • YコンビネータとかZコンビネータ
  • などなど

競技系プログラミング

省略

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?