Qiitaでカフェでプログラミングしてる風(でも何もやってない)Java(クソ)コードという記事を読んで、自分でも作りたくなりC++で実装してみました。
本記事では元の思想とは少し違いますが、Windowで動くプログラミングしている風コードを作成していきます。
Windowsでもカフェで素敵なエンジニアだと思われたい(笑)
ステータスが変化してる風コード
まずは何かしらの処理が動いている風に見えるコードです。
/**
* ステータスを更新してる風コード
*/
#include <iostream>
#include <random>
#include <windows.h>
using namespace std;
int main(void){
// 50文字まで#を表示する
int x = 50;
// カウントアップする変数
int y = 0;
// 乱数生成の準備
std::random_device rnd;
std::mt19937 mt(rnd());
std::uniform_int_distribution<> rand10(0, 9);
while(true){
if (x != y){
// 上限まで#をたしていく
cout << "#";
}
else{
// 50文字になったら「done!! + 改行」を出力し
// 何かが終わった感を演出
cout << " done!!" << endl;
y = -1;
}
// カウントアップしていく
y++;
// 高速で出力すると素敵感が出ないので
// 出力待ち時間を作成する
int sleepTime = 10;
// ランダム値にマッチすると待ち時間をさらに長くする。
// 何か大きな処理をしているように見えること請け合い
int osooso = rand10(mt);
if ((4 < osooso) && (osooso <= 6)){
sleepTime = 100;
}
// 待つ
Sleep(sleepTime);
}
return 0;
}
コンパイルが動いている風コード
こちらは乱数を使って何かを自動で動かしている風のコードです。
/**
* 数字の羅列を出力し、何かを自動で作ってる風コード
*/
#include <iostream>
#include <string>
#include <random>
#include <windows.h>
using namespace std;
int main(void){
// 乱数生成の準備
std::random_device rnd;
std::mt19937 mt(rnd());
std::uniform_int_distribution<> rand10(0, 9);
while(true){
// カウントアップ
int x = 1;
// 出力文字列
string code = "";
while (true)
{
// 0から9までの数値をランダムで出力
int num = rand10(mt);
// 出力文字列に足していく
code += to_string(num);
if (x == 50) {
// 50文字でブレイク
break;
}
x++;
}
// 数値の羅列を出力:いい感じにコンパイルしてる感が出る
cout << code << endl;
// 高速で出力すると素敵感が出ないので
// 出力待ち時間を作成する
int random = rand10(mt);
int sleepTime = 100;
// ランダム値にマッチすると待ち時間をさらに長くする。
// 何か大きな処理をしているように見えること請け合い
if (4 < random && random <= 6) {
sleepTime = 500;
}
// 待つ
Sleep(sleepTime);
}
return 0;
}
まとめ
こういった意味がないけどおもしろいコードを思いつく人ってすごいですね。
今回はJavaのコードをC++に置き換えただけになってしまいましたが、今度はオリジナルのカフェでプログラミングしてる風コードを作ってみたいです。