目次
ブックマーク
応援する
いいね!
コメント
シェア
通報

第2話

あの人生最大のプルリクエスト「今度は、あたしが、カレシに…何か、『気持ちいいこと』…してあげたいんだけど…どう、かな…?」に対するカレシからのレスポンスは、無。

いつもの無言。いつもの無表情。でも、あたしは見逃さなかった。彼の指が、コンマ数秒だけキーボードの上でフリーズしたのを。それだけだけど、あたしにはビッグバンだった。

(え? 今の間は、もしかして、照れてたとか? あのカレシが?)

期待と不安と変な汁であたしの脳みそはショート寸前。数日間、そのコンマ数秒の意味を無限ループでデバッグしてた。


数日後。カレシはまたいつものように現れた。あたしのぐちゃぐちゃなワンルームに。何事もなかったかのような顔。あたしのプルリクは迷惑メールフォルダ行きみたいにスルー。

むかつく。だけど同時に、ゾクゾクする。

(完全に無視…? それとも、もっとえげつないやり方で…あたしのプルリクを『マージ』するつもりなの…?)

その方が興奮するかも…。やばい、あたし本当に頭おかしい。


こうなったら、もっと強烈なやつをぶちかますしかない。カレシの鉄仮面をこじ開けたい。そのために、昨日寝る間も惜しんで最高の「汚物」を錬成した。Perlのワンライナーもどきだ。

自分でも意味がわからなくなった代物。ビット演算とか文字コードの闇とか謎記号がゲロみたいに絡み合ってて、何がしたいのか説明不能。でも、なんか動く…はず。たぶん。


あたしの最新作☆意味不明Perlもどき


my $a = "ATASI "; # あたしは

my $b = "KIREI "; # キレイで

my $c = "DA ZO!"; # だぞ!


# 文字列の組み立てとビットシフト処理の修正

# 元のコードでは、$strの初期化、$aの結合、およびビットシフト部分の連結が不明瞭でした。

# 以下のように修正し、$a, $b, $c の文字列を順番に処理して$strを構築します。

my $str = $a; # まず$aを$strに代入

# $bの最初の文字を左ビットシフトし、残りの部分と結合して$strに連結

$str .= chr( (ord(substr($b, 0, 1)) << 1) & 0xFF ) . substr($b, 1);

# $cの最初の文字を右ビットシフトし、残りの部分と結合して$strにさらに連結

$str .= chr( (ord(substr($c, 0, 1)) >> 1) & 0xFF ) . substr($c, 1);


# さらに文字列を配列にして、奇数番目と偶数番目で文字コードをプラマイ1する謎処理

my @arr = split //, $str; # 文字列を1文字ずつの配列に分割

my $res = "";

my $key = time() % 3 + 1; # 実行するたびにちょっと結果変わるかも?みたいなスパイス (1, 2, or 3)


# forループとif文の構文、配列アクセス方法を修正

for (my $i = 0; $i < @arr; $i++) { # Perlの正しいforループ構文

if ($i % 2 == 0) { # インデックスが偶数の場合

$res .= chr(ord(@arr[$i]) + $key); # 文字コードに$keyを足す

} else { # インデックスが奇数の場合

$res .= chr(ord(@arr[$i]) - $key); # 文字コードから$keyを引く

}

}


print $res; # 一応、何かは出力されるはず…キモい文字列が。


「…カレシ…これ、昨日、なんか降ってきたっていうか…夢遊病みたいに書いちゃったやつ…でへへ」

ノートPCを差し出し、わざとらしく上目遣い。内心は「さあ、この混沌をどう料理するの? あんたの『完璧』は、こういう猥雑さも受け入れるわけ?」って挑戦状だ。


カレシは無言。長い睫毛の目が、暗号みたいなPerl文字列を見つめてる。その横顔、やっぱり綺麗でムカつく。

やがて綺麗な指がキーボードに置かれ、あたしの心臓が不整脈を打つ。

カレシがコードを解体し始めると、体の奥からまたあの熱いものが込み上げてくる。あぁ、ダメだ…やっぱり、キモチイイ…。脳みそがとろける…。


でも、今日はただ快感に溺れてるだけじゃいけない。

堰を切ったように喋り始めた。「ねえ…カレシ…このコード、ひどいよね。自分でもそう思う。ごちゃごちゃで、キモくて、自己満足のオナニーコード」

カレシのタイピングは止まらない。BGMみたい。

「だけどね、これでも、なんかこう、生きてるっていうか…必死にもがいてる感じ、しない? 間違いだらけで、不格好で、不安定で…でも、それが、あたしみたいで…」

カレシの指が、$key = time() % 3 + 1; の部分に止まる。あたしなりの「遊び心」であり「バグの温床」。

「美しさって、そんなに大事? 完璧じゃなきゃダメなの? この部屋だって超汚いけど落ち着くんだよ。あたしにとってはこれが『普通』。シンクの緑色の物体Xも家族みたいなもん…」

カレシはその不安定要素をどうするんだろう。

「あたし自身も全然完璧じゃない。性格もねじ曲がってるし、おっぱいも左右大きさ違うし、こんな変態的なことでしかエクスタシー感じられないし…。それでも、あたしはあたしじゃん…? ダメなのかな…こんな欠陥品は廃棄処分されちゃうのかな…?」


カレシは結局、あの不安定な $key を、警告コメントを添え、再現可能な擬似乱数生成器のシードを使う形に置き換えた。「ゆらぎ」の意図を汲み取った絶妙なリファクタリング。

Perlの混沌は、信じられないくらい明快で美しいPythonスクリプトへと生まれ変わった。


カレシによって解読&翻訳されたPythonコード(イメージ)


import hashlib


ORIGINAL_TEXT_A = "ATASI "

ORIGINAL_TEXT_B = "KIREI "

ORIGINAL_TEXT_C = "DAYO!"


def generate_source_string(text_a, text_b, text_c):

# 今回は、シフト処理は「混乱の元」として排除し、平文をベースとする可能性が高い

return text_a + text_b + text_c


def obfuscate_string_vaguely(text_to_obfuscate, seed_string="default_seed"):

key_material = hashlib.md5(seed_string.encode()).digest()

key = (key_material[0] % 3) + 1 # 1, 2, 3のいずれか


result_chars = []

for i, char_val in enumerate(text_to_obfuscate):

if i % 2 == 0:

result_chars.append(chr(ord(char_val) + key))

else:

result_chars.append(chr(ord(char_val) - key))

return "".join(result_chars)

IGNORE_WHEN_COPYING_START

content_copy

download

Use code with caution.

IGNORE_WHEN_COPYING_END


base_string = generate_source_string(ORIGINAL_TEXT_A, ORIGINAL_TEXT_B, ORIGINAL_TEXT_C)

final_output = obfuscate_string_vaguely(base_string, seed_string="atashino_kimochi")


print(f"元文字列: {base_string}")

print(f"謎処理後: {final_output}")


「…できた」

カレシの声が合図。

「あ…あぁ…っ! んんんんーーーーーッ!!!」

脳天から爪先まで電流が駆け巡り、思考が吹っ飛ぶ。汚くて醜いあたしの分身が、カレシの指先で浄化され完璧な芸術品になる。あたし自身が救われたような、許されたような錯覚。快感の波に何度も襲われ、ぐったりとカレシを見つめる。


はぁ…はぁ…と荒い息。でも、今日は少し様子が違った。

カレシはPCを閉じる前に動きを止め、あたしの方を見た…ような気がした。いや、気のせいじゃない。ガラス玉みたいな瞳が一瞬あたしを捉えた。

彼はエディタに新しい空のファイルを開き、たった一行何かをタイプした。

そして、あたしが息を整えるよりも早く、音もなく消えていた。


ふらつきながら画面を覗き込むと、そこにはたった一行の、コメントアウトされたシンプルな問いかけ。


then, what is "your" code for "me"?


(それなら、「君」の「僕」に対する「コード」とは、何なんだ?)


「な…」声が出なかった。

これは、何? あたしのプルリクエストへの、カレシからの逆提案? それとも宿題? あたしの存在意義を問う禅問答?

「あたしの…カレシへの…コード…?」

ぞわわわっ、とさっきとは違う種類の、身の毛がよだつような、蜜のように甘美な戦慄が背筋を駆け上った。

カレシは、あたしが差し出す「汚物」を処理するだけの無機質なデバッガじゃなかったのかも。彼もまた、何かを求めていた…? あたしに? この、エラーだらけのあたしに?


「わかったよ…カレシ…」震える声で、誰もいない部屋に呟いた。

「あたしが、あんたへの『気持ちいいコード』、見つけてあげる。書いてあげる。それがどんなに汚くて拙くても…それが、あたしからの、本当の『愛のコード』なんだとしたら…」


カレシの謎は深まるばかり。でも、初めて、彼の輪郭に少し触れられた気がした。

次の逢瀬まで、どんな「あたしだけのコード」を彼に捧げられるだろう。

それは、完璧なリファクタリングよりずっと甘美で危険なゲームの始まりかもしれない。


あたしの頭の中は、期待と不安と新たな変態的興奮で、ぐっちゃぐちゃのソースコードみたいにエラーと警告を吐き出し続けていた。

でも、なぜか、それが少しだけ誇らしかった。

この作品に、最初のコメントを書いてみませんか?