あの人生最大のプルリクエスト「今度は、あたしが、カレシに…何か、『気持ちいいこと』…してあげたいんだけど…どう、かな…?」に対するカレシからのレスポンスは、無。
いつもの無言。いつもの無表情。でも、あたしは見逃さなかった。彼の指が、コンマ数秒だけキーボードの上でフリーズしたのを。それだけだけど、あたしにはビッグバンだった。
(え? 今の間は、もしかして、照れてたとか? あのカレシが?)
期待と不安と変な汁であたしの脳みそはショート寸前。数日間、そのコンマ数秒の意味を無限ループでデバッグしてた。
数日後。カレシはまたいつものように現れた。あたしのぐちゃぐちゃなワンルームに。何事もなかったかのような顔。あたしのプルリクは迷惑メールフォルダ行きみたいにスルー。
むかつく。だけど同時に、ゾクゾクする。
(完全に無視…? それとも、もっとえげつないやり方で…あたしのプルリクを『マージ』するつもりなの…?)
その方が興奮するかも…。やばい、あたし本当に頭おかしい。
こうなったら、もっと強烈なやつをぶちかますしかない。カレシの鉄仮面をこじ開けたい。そのために、昨日寝る間も惜しんで最高の「汚物」を錬成した。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"?
(それなら、「君」の「僕」に対する「コード」とは、何なんだ?)
「な…」声が出なかった。
これは、何? あたしのプルリクエストへの、カレシからの逆提案? それとも宿題? あたしの存在意義を問う禅問答?
「あたしの…カレシへの…コード…?」
ぞわわわっ、とさっきとは違う種類の、身の毛がよだつような、蜜のように甘美な戦慄が背筋を駆け上った。
カレシは、あたしが差し出す「汚物」を処理するだけの無機質なデバッガじゃなかったのかも。彼もまた、何かを求めていた…? あたしに? この、エラーだらけのあたしに?
「わかったよ…カレシ…」震える声で、誰もいない部屋に呟いた。
「あたしが、あんたへの『気持ちいいコード』、見つけてあげる。書いてあげる。それがどんなに汚くて拙くても…それが、あたしからの、本当の『愛のコード』なんだとしたら…」
カレシの謎は深まるばかり。でも、初めて、彼の輪郭に少し触れられた気がした。
次の逢瀬まで、どんな「あたしだけのコード」を彼に捧げられるだろう。
それは、完璧なリファクタリングよりずっと甘美で危険なゲームの始まりかもしれない。
あたしの頭の中は、期待と不安と新たな変態的興奮で、ぐっちゃぐちゃのソースコードみたいにエラーと警告を吐き出し続けていた。
でも、なぜか、それが少しだけ誇らしかった。