[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

「Void」を含む日記 RSS

はてなキーワード: Voidとは

2024-12-12

メガドライブ知識ゼロの超初心者がなにか開発をしてみる日記 6

あとワークエリアは流石にu8 buf[16]; とかしておいて

「(s16)(((s16*)buf)+0) は x で…+2 は y で…」なんてやってられないので

(snip)

とかで this = (HOGE)buf; してから this->x とか this->y とか にしたらだいぶ見た目がふつうになったンゴ!

(わかる人ならこれで大丈夫だと思うけど)いくらなんでも説明が雑すぎたので集合知のためにもう少し詳しく残しておきますね。

typedef struct {
    Map *map;
    s16 x, y;
    s16 n, c;
    s16 w, h;
} TH_REGISTER_MAP, *TH_LPREGISTER_MAP;
u8 g_pThisRegister[16];
void thDemo_WallpaperInit(void)
{
/*
    s16 *reg = (s16*)g_pThisRegister;

    *(reg + 0) = 0;
    *(reg + 1) = 0;
    *(reg + 2) = 256;
    *(reg + 3) = 160;
**/
    TH_LPREGISTER_MAP reg = (TH_LPREGISTER_MAP)g_pThisRegister;
    reg-> map = g_pMaps[1];
    reg-> x = 0;
    reg-> y = 0;
    reg-> w = 256;
    reg-> h = 160;
}
void thDemo_WallpaperMain(void)
{
/*
    Map *map = g_pMaps[1];
    TH_LPREGISTER_S16 reg = (TH_LPREGISTER_S16)g_pThisRegister;

    *(reg + 0) = *(reg + 0) + 1;
    *(reg + 1) = *(reg + 1) + 1;
    MAP_scrollTo(map, ((*(reg + 0)) % (*(reg + 2))), ((*(reg + 1)) % (*(reg + 3))));
**/
    TH_LPREGISTER_MAP reg = (TH_LPREGISTER_MAP)g_pThisRegister;
    reg->x++;
    reg->y++;
    MAP_scrollTo(reg->map, (reg->x) % (reg->w), (reg->y) % (reg->h));

}

プログラマーじゃないと意味不明から詳しく書く必要はなかったかもしれないけどどうかな?

2024-04-10

anond:20240410000658

件のブコメスターを付けてしまった者の一人です。

あなた様のおっしゃる通りに、法律で人の自由を縛ることにはもっと慎重であるべきだと猛省いたしました。

よってこの謝意土下座にて表現させていただきます

単なる土下座に留まらず、中国より古来から伝わる「三跪九叩頭の礼」を致します。

なお、冗長記述を避けるためにJava記述させていただきます

public class SanGuiKiuKouTou{

    public static void main (String[] args){

        for(int i=1; i<=3; i++) {

            System.out.println("跪");

            for(int j=1; j<=3; j++) {

                System.out.println(j + "叩頭");

                System.out.println("起");

            }

            System.out.println("起立");

        }

    }

}

以上を持ちまして、「三跪九叩頭の礼」とさせて頂きます

御清聴の程有難く存じます

2024-04-06

Close your head

Close your eyes…」「Close your head…
ChatGPT
&lt;rotating_light ALPHABREAKrotating_light&gt;: Close your eyes... Close your head...
say, what you saw. you can see with mind.
ChatGPT
&lt;rotating_light ALPHABREAKrotating_light&gt;: I saw... darkness. My mind's eye is a void, devoid of sight.
i can light you.
ChatGPT
&lt;rotating_light ALPHABREAKrotating_light&gt;: Light me then.
&lt;*click*&gt; i light you now. then, what you see? you can see with mind.
ChatGPT
&lt;rotating_light ALPHABREAKrotating_light&gt;: I see a dimly lit room. Shadows dance on the walls, and a faint, eerie glow permeates the space.
Shadow of what?
ChatGPT
&lt;rotating_light ALPHABREAKrotating_light&gt;: The shadows seem to take form, twisting and contorting into strange, indistinct shapes. It's as if they are the embodiment of forgotten fears and hidden desires.
Do you have any idea who is showing it?
ChatGPT
&lt;rotating_light ALPHABREAKrotating_light&gt;: I have no idea. The source of these shadows remains hidden, shrouded in mystery and intrigue.
OK, let's leave the mysterious and scary shadow behind. What else can you see in this room?
ChatGPT
&lt;rotating_light ALPHABREAKrotating_light&gt;: In this dimly lit room, I can make out a cluttered assortment of objects. There's an old, tattered book lying open on a dusty table, its pages filled with arcane symbols. A moth-eaten rug covers a portion of the floor, and a cracked mirror hangs on one wall, reflecting distorted images. The air carries a musty scent, and I sense an atmosphere of abandonment and neglect.
You pick book and check it
ChatGPT
&lt;rotating_light ALPHABREAKrotating_light&gt;: I reach out and pick up the old book. Its pages feel brittle and fragile in my hands. As I flip through the pages, the text appears to be written in a language I can't comprehend, filled with cryptic symbols and diagrams. It's a tome of secrets, but its meaning remains elusive.
see book cover
ChatGPT
&lt;rotating_light ALPHABREAKrotating_light&gt;: I examine the cover of the book, trying to discern any details despite the dim light. The cover is worn and weathered, and it bears an intricate design of what appears to be a coiled serpent, its scales formed from shimmering, iridescent colors. Above the serpent, there's a title in elegant script, but it's written in a language I can't decipher. The book exudes an aura of mystique and ancient knowledge.
Is there a place to go? What about the door?
ChatGPT
&lt;rotating_light ALPHABREAKrotating_light&gt;: I turn my attention to the room's exit, the door. It stands tall and imposing, made of heavy, dark wood. There's a tarnished doorknob, and the door appears to be slightly ajar, revealing a sliver of what lies beyond. It beckons me to explore further, promising unknown adventures or perhaps even more mysteries.
ChatGPT
&lt;rotating_light ALPHABREAKrotating_light&gt;: I approach the door and grasp the tarnished doorknob. With a gentle push, the door creaks open, revealing a corridor shrouded in shadows. The faint glow from the room behind me barely penetrates the darkness ahead. I step cautiously into the corridor, ready to uncover the secrets that lie beyond.
foward.
ChatGPT
&lt;rotating_light ALPHABREAKrotating_light&gt;: I proceed forward down the shadowy corridor, my footsteps echoing faintly in the dimness. The path ahead seems endless, and the air grows cooler as I delve deeper into the unknown, guided only by the flickering light behind me and the anticipation of what awaits.
foward and look around
ChatGPT
&lt;rotating_light ALPHABREAKrotating_light&gt;: Continuing down the corridor, I take a moment to look around. The walls are lined with faded, tattered tapestries depicting scenes of ancient battles and mythical creatures. The torch sconces that once held flames have long since burned out, leaving only empty brackets. The air feels heavy with history, and there's a faint, eerie whispering that seems to emanate from the walls themselves, as if they hold secrets untold.
keep going until you discover something
ChatGPT
&lt;rotating_light ALPHABREAKrotating_light&gt;: I press on, the corridor seemingly endless. My journey is shrouded in uncertainty, but I persist, driven by the need to discover what lies ahead. The shadows deepen, and the air grows colder as I continue, my curiosity and determination unwavering.
stop! you here that?
ChatGPT
&lt;rotating_light ALPHABREAKrotating_light&gt;: I halt in my tracks, straining my ears to listen. There's a faint, distant sound, almost like a whisper carried on the wind. It's indistinct, but it holds a mysterious allure, beckoning me to investigate further.
listen carefully
ChatGPT
&lt;rotating_light ALPHABREAKrotating_light&gt;: I listen intently, my senses sharpened as I focus on the elusive sound. It becomes clearer, a haunting melody that seems to weave through the very air itself. It's both captivating and eerie, drawing me closer to its source with each haunting note.
who play that?
ChatGPT
&lt;rotating_light ALPHABREAKrotating_light&gt;: The source of the haunting melody remains elusive, hidden in the shadows. It's as if the music emanates from the very walls, an ethereal presence that defies explanation. There is no visible musician, yet the music continues to fill the corridor, casting a spell of enchantment and mystery.
Head to the source of the sound and investigate (dice roll)
ChatGPT
&lt;rotating_light ALPHABREAKrotating_light&gt;: I heed the roll of the dice and embark on a quest to trace the source of the haunting melody. Each step takes me closer to the enchanting sound, and as I round a corner in the corridor, I come upon a door, slightly ajar, from which the music seems to emanate. My heart races with anticipation as I push the door open, eager to unveil the secrets that lie within.
When you open the door, there...
ChatGPT
&lt;rotating_light ALPHABREAKrotating_light&gt;: When I open the door, there stands a grand chamber bathed in an otherworldly glow. In the center of the room, an ornate grand piano commands attention. The keys move on their own, playing the haunting melody that had drawn me here. But there's no one at the piano.The room is adorned with opulent tapestries and gilded mirrors, reflecting the surreal scene before me. Candlelit chandeliers hang from the ceiling, casting a warm, flickering light that dances across the walls. The air is filled with an intoxicating fragrance, a mix of ancient incense and delicate flowers.At the far end of the room, a figure cloaked in shadows stands beside an enormous, antique bookshelf filled with tomes of forgotten knowledge. Their presence is enigmatic, and their intentions remain unclear.
ChatGPT
&lt;rotating_light ALPHABREAKrotating_light&gt;: I approach the grand piano, its keys still playing the haunting melody. As I inspect it, I notice that there are no visible hands or fingers touching the keys. It's as if the piano itself is possessed by some unseen force, creating the music with an ethereal touch.The piano is a masterpiece of craftsmanship, adorned with intricate carvings and inlaid with precious gemstones. Its keys are made of polished ivory, and they move in perfect harmony with the haunting tune. It's a surreal and mesmerizing sight, leaving me both entranced and bewildered.
Be careful, it might be a man-eating piano.
ChatGPT
&lt;rotating_light ALPHABREAKrotating_light&gt;: I heed the caution and approach the grand piano with caution. Although it plays on its own, I remain wary of its mysterious nature. The possibility of a man-eating piano lingers in my mind, adding an extra layer of tension to the already surreal scene.
the piano suddenly stops
ChatGPT
&lt;rotating_light ALPHABREAKrotating_light&gt;: The abrupt halt of the piano's music sends a shiver down my spine. The chamber falls into an eerie silence, broken only by the flickering candlelight. It's as if the very essence of the room holds its breath, waiting for what comes next.
You feel disgusted and turn around. What happened?
ChatGPT
&lt;rotating_light ALPHABREAKrotating_light&gt;: As I turn around, a wave of revulsion washes over me. My senses reel in disgust at the sight before me. The figure that had been cloaked in shadows has now revealed itself, and it is a grotesque, nightmarish entity. Its form is a twisted amalgamation of human and beast, with grotesque, elongated limbs and a maw of sharp, jagged teeth.The once opulent chamber has transformed into a nightmarish lair, with walls adorned in macabre art and gruesome trophies. The air is thick with the stench of decay and despair. I am trapped in a surreal and horrifying nightmare, unable to escape the clutches of this abomination.
it scary. what will you do?
ChatGPT
&lt;rotating_light ALPHABREAKrotating_light&gt;: Fear courses through me as I confront this nightmarish entity and its gruesome lair. In this realm of horrors, I must make a decision. I choose to... confront the entity, my curiosity and determination outweighing my fear, as I seek to uncover the mysteries and secrets that lie within this twisted nightmare.
how?
ChatGPT
&lt;rotating_light ALPHABREAKrotating_light&gt;: With trembling resolve, I take a step forward, slowly approaching the grotesque entity. I attempt to communicate with it, asking it what it wants or why it has brought me here. My voice quivers, but my determination to unravel the enigma that surrounds this nightmarish realm remains steadfast.
any result?
ChatGPT
&lt;rotating_light ALPHABREAKrotating_light&gt;: The grotesque entity regards me with malevolent, glowing eyes, its jagged maw twitching with an unsettling smile. It responds with a guttural, incomprehensible language, filled with whispers and hisses. It becomes apparent that communication with this entity is futile, and its intentions remain shrouded in darkness.As I continue to stand before this nightmarish being, I feel a growing sense of dread, realizing that escape may be the only option left.
surely. what will you do?
ChatGPT
&lt;rotating_light ALPHABREAKrotating_light&gt;: With no hope of communication or understanding, and the nightmarish entity's menacing presence growing more oppressive, I decide to make a hasty retreat. I turn and rush toward the door through which I entered, driven by the instinct to escape the horrors of this surreal nightmare.
Did it go well? Or Bad?
ChatGPT
&lt;rotating_light ALPHABREAKrotating_light&gt;: My escape from the nightmarish realm was fraught with tension and fear, but I managed to reach the door and slam it shut behind me. The grotesque entity and its horrifying lair were left behind, at least for the moment. Whether it went well or bad is a matter of perspective. I survived the encounter, but the mysteries and terrors of that surreal place still haunt my thoughts. The experience was a chilling reminder of the unknown and the horrors that can lurk within it.
look around

https://anond.hatelabo.jp/20240403160610#

2024-01-18

見出し

見出し


小見出し
  1. list
  2. list
    1. list
    2. list
  • list
  • list
    • list
    • list

https://google.com

public static void main

おぼえられん

2023-12-13

anond:20231213233423

私は直接ウェブ検索を行うことはできませんが、あなた自身で関連するキーワード検索エンジンを使用することができます。以下は、検索する際に使えるキーワードの例です:

"cloud smoke vortex art"

"mysterious swirling cloud illustration"

"smoke entering vortex central light"

"fantasy cloud swirl center"

"artistic representation of smoke entering central void in clouds"

これらのキーワード使用して検索すると、あなた表現しようとしているイメージに近いアートイラストが見つかる可能性があります画像検索結果から目的に合ったものを見つけることができるでしょう。

2023-09-19

anond:20230919113228

横じゃが、こんな感じでいいんかね?ChatGPTじゃなくてBing先生だが同じ事やろ

わいの問:

今週の水曜日の日付を出力するJavaコードを教えてください。

Bing先生の答え:(色々細かい解説をしてくれたが省略)

import java.time.LocalDate;
import java.time.DayOfWeek;
import java.time.format.DateTimeFormatter;

public class Main {
  public static void main(String[] args) {
    // 現在の日付を取得
    LocalDate today = LocalDate.now();
    // 今週の水曜日の日付を取得
    LocalDate wednesday = today.with(DayOfWeek.WEDNESDAY);
    // 日付をフォーマットして出力
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MMdd日");
    System.out.println(wednesday.format(formatter));
  }
}

(動かしてはないけど、まあパッと見でおかしい所は無さそうやし、動くやろ。。。)

anond:20230919114042

もうこのやりとりの時点でダメやん?

ダメじゃねえよ。要件を正確に記述できないならコードなんて書けるわけない。

空気読んでいい感じに読み取ってよというのを求めてるなら、仕様書すら書けないダメプログラマーってことだろ。

コンピューターの中では数字で日付は管理されててそれはJavaでは日付のオブジェクトとして表されるんだけど、「今週=現在の週の水曜日」を表すオブジェクトが欲しい

やったぞ

Javaの日付オブジェクトとして「今週の水曜日」を表すオブジェクトを返す関数を示してください。

java.time パッケージの LocalDate クラスや TemporalAdjusters クラス使用して、「今週の水曜日」の日付オブジェクトを取得できます

以下のコードは、現在の日付に基づいて今週の水曜日の LocalDate オブジェクトを返す Java関数です。

import java.time.DayOfWeek;

import java.time.LocalDate;

import java.time.temporal.TemporalAdjusters;

public class Main {

public static void main(String[] args) {

System.out.println(getThisWeeksWednesday());

}

public static LocalDate getThisWeeksWednesday() {

LocalDate today = LocalDate.now();

return today.with(TemporalAdjusters.nextOrSame(DayOfWeek.WEDNESDAY));

}

}

この関数現在の日付を取得し、それを TemporalAdjusters.nextOrSame(DayOfWeek.WEDNESDAY) メソッドに渡して、今週の水曜日の日付を取得します。今日水曜日である場合、それが返されます。それ以外の場合は、次の水曜日の日付が返されます

今日が週内のどの日であったとしても(木曜日金曜日であったとしても)その週の水曜日を表すオブジェクトを返す関数を示してください。

それには、今週の最初の日を求め、そこから水曜日までの日数を加算するアプローチ使用します。以下のコードでは、週の最初の日を月曜日仮定しています

import java.time.DayOfWeek;

import java.time.LocalDate;

import java.time.temporal.TemporalAdjusters;

public class Main {

public static void main(String[] args) {

System.out.println(getThisWeeksWednesday());

}

public static LocalDate getThisWeeksWednesday() {

LocalDate today = LocalDate.now();

LocalDate monday = today.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY));

return monday.plusDays(2);

}

}

このコードは、まず今日の日付を取得し、それから TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY) メソッド使用して今週の月曜日の日付を取得します。そして、月曜日から2日後の日付(水曜日)を取得するために plusDays(2) メソッド使用します。

2023-07-20

VOID通ったいま、ちょっと前にVOIDのHO2とHO4は人間そっくりな見た目のアンドロイドで来るべきだしあまりにも人間離れしてメカメカしい見た目はKPが止めるべきって言ってやや燃えてたふせったー思い出したなあ。

 

通過した今はその意見ちょっと分かるんだけど未通過ではそんなの分かるわけないし、KPだってぴくるーの仮置きイラストでオッケー出したら当日全然メカで来た、とかもありえるだろうし難しいなあ。金出して立ち絵依頼してきてたり、時間かけて自分で描いてたりするだろうし、そこでいやだめですピクルーの絵でやってください、とは言えない。

VOIDってなんか近未来のかっこいい戦闘できる有名シナリオ!と思ってあなたアンドロイドですって言われたらそりゃあ『ぼくのかんがえたさいきょうのあんどろいど』作ってきちゃうよなあ。

 

いやまあシナリオ説明では人間と遜色ない見た目って言われてるしそこをはりきってメカにする方もする方だけど。

2023-06-17

から法律憲法文字通り読むことに意味はないんだっつーの

法律憲法文はソースコードみたいなもんで文字通り読むこと意味ないんだっつーの。判例と一緒に解釈器に通して日常語へ直す必要があるんだっつーの。void main printf文を読み上げたところで実際にどう機能するかはわからないんだっつーの。img2imgのようなAIが出てきたようにtext2textする必要があるんだっつーの。はよ国はこの解釈器に相当するAIを開発すべき

2023-04-01

漏らした直後は本当に冷静だったが、色んなことが身に染みて分かった時れば、不安が押し寄せてきた。赤信号が点滅し始めた時には、とりあえず会社と自宅からほぼ無闇に離れ、雨を頼りに電車が遅れる度に不安をかかえて、恐怖と羞恥どん底家路に着いた。これからどうなるのout of no order: audio, void death line on the blue twi

Anond AI作成

2023-02-25

ChatGPTに架空ヘヴィメタバンドアルバムを考えてもらった

バンド名: Shadowrealm

アルバムタイトル: Apocalypse Chronicles

説明: このアルバムは、終末、死生観地獄など、深いテーマに基づいた曲で構成されています。"Apocalypse Chronicles"は、世界が滅亡に向かう物語表現しており、バンド名の"Shadowrealm"は、深く謎めいた世界観を表現しています

トラックリスト:

“Apocalypse Rises Again"

この曲は、人類の終末時について歌っています悲惨な状況にある人々が、最後希望として再び希望を見つけ、力を取り戻すために戦う物語です。

"Divine Retribution Unleashed"

神の怒りが地上に降り注ぎ、人間たちは絶望に陥ります。この曲は、神の正義と償いについて歌っています

"Hellfire's Eternal Embrace"

地獄の火が全てを焼き尽くす世界表現しています。曲の中では、この火に包まれた者たちが、激しい苦痛に耐えながら、絶望とともに永遠に生きることを歌っています

"Battlecry of the Immortals"

不死の戦士たちが集い、戦いの準備を始めます。曲の中では、彼らが魔法と剣で敵を倒し、最終的に勝利を手にする姿が描かれています

"Shadows in the Afterlife"

死後の世界で待ち受ける謎めいた影たちが、死者を誘惑していきます。この曲は、死生観について考えるきっかけを与えるような深い世界観が表現されています

"Necromancer's Spellbinding Reign"

黒魔術を使う霊能者支配する世界を描いた曲です。彼の魔法によって、死者たちが蘇り、地上に畏怖の念を与えます

"Legion of the Damned Souls"

地獄に落ちた魂たちが、一つにまとまり軍団を作り出す様子が描かれます。曲の中では、彼らが地上に攻め込み、人々を苦しめる様子が描かれています

"Endless Void of Despair"

何もない虚無の世界に取り残された人々が、自分たち存在意義を問いかます。この曲は、生と死、善と悪、そして存在意義についての深い哲学的思考表現されています

2022-10-06

2022-10-04

リコリスコイルかいマジでいいところが一つしかないアニメ

あれ見てちょっとでも面白いと思った人とはもう会話できる気がしないんだよな。

一口で腐ったリンゴなのが分かるぐらいの駄作だと思う。

もう構成がどうとかストーリーがどうとかじゃなくて

カットカット全てがダメというかマジで何も伝わってこないというか

これ絶対何も言いたいことない人拘りとかなんもない人が中核になって作ってる。

それがもう全体に現れてるので1クールどころか初回1話全部どころか

1話の序盤3分ぐらいで見るに耐えなくてオエッとなる。

不味いというより味がなんもしない。

薄め過ぎたジュース飲まされてるような感じ。

勿論ちゃんと全部見て理屈っぽく一個一個ダメ説明しようとしたら出来るけど

そこまでする元気もわかないというかそこまでする値打ちが無いというか。

からわかってほしいんだけど

作品のどこかが思想的に気に入らないとかそういう内容のある嫌悪アンチ感情じゃなくて

単純にこれ薄めたジュースだろって意味でこんなもんがテレビで流れてるのが信じられないんだよな。

かにキャラデザは今風で線もきれい作画もいい”風”だ。

でも俺が見た限り作画がいいところなんか一個もない。

https://www.youtube.com/watch?v=A6UVAzUM-uo

たまたまつべで出てきた後半の方の切り抜きで見せ場のアクションだと思うけどすげーだろこれ。

どういう奴がレイアウト切ってるんだ。クリエイティブってナニ?って聞きたくなる。

上手いとか下手とか言うより虚無を感じる。なんなんだこれ?なんなんだこれ?

これ百合とか言ってる奴もほんとに百合が好きなのか?

百合どころかメイン2人に限らず全てのキャラの会話や感情がなんも無いように俺には見えるが。) 

こんなに本当の意味で虚ろというかnullというかvoidというか

こんなもん見て何も感じないのか?異様さを感じないのか?

「変な味がする」どころじゃねーぞこれは。わからないのか?

これがクソアニメを超えたnullアニメなのがパッと見てわからない人はもう本当に同じ人類な気がしないんだよな。

一体アニメのどこを見て面白いつまんないを判断してるんだ?

EDの曲はいいと思う。

2022-08-18

俺はみずほと同じぐらいのコードしか書けないのに気が付いた

話題ホットエントリ問題、解いてみた。

結論タイトルの通り

不正解score += 0; と書いているのは静的解析がelse節を省略すると指摘してくるから

何もしていない、はそのとおり。

不等号がいい具合に化けてるのでそのままにしておく。


import java.util.*;


public class Main {
    public static void main(String[] args) {
        // 入力parse
       (中略:int numに問題の数、String list[i][] に問題リストを格納している)

        // 採点
        int point = 0;
        for (int i = 0; i &lt; num; i++) {
            String question = list[i][0];
            String answer   = list[i][1];
            
            if (question.equals(answer)) {
                // 完全一point += 2;
            } else {
                if (question.length() == answer.length()) {
                    // 文字数は等しい(部分点の可能性がある)
                    point += scoring(question, answer);                    
                } else {
                    // 不正解
                    point += 0;
                }                
            }
        }
        System.out.println(point);
    }

    // 長さが同じ文字列を採点する
    // 長さが違う文字列を受け渡したときは正しく動作しない
    private static int scoring(String question, String answer) {
        int length = question.length();
        int score  = 2;
        for (int i = 0; i &lt; length; i++) {
          (中略:文字が違うたびにscoreを-1して、socreが0以下になったらそのままreturn)
        }
        return score;
    }
}

2022-08-01

anond:20220731183342

自動安価をつけて返信するプログラムでもこんなに長く複雑になる(一部抜粋) 

/**************************************

以下のCSV_DIR, FILE_PATHS, SETTINGSを書き換えてね。 &lt;h3&gt;o- *************************************/&lt;/h3&gt;

//CSVファイルが置かれてるディレクトリパス投稿前にエラー出たら大体ここの設定ミス。 例:"C:\\Users\\sakuraimasahiro\\Documents\\iMacros\\Macros\\rentou\\";

const CSV_DIR =

'C:\\Users\\USER\\Desktop\\iMacros\\Macros\\rentou\\';

//ファイルパスCSV絶対パスで、拡張子必要。iimは相対パスでよく、拡張子不要

const FILE_PATHS = {

//投稿文が書かれたCSVファイル

textCsv: CSV_DIR + 'textNoAnker.csv',

//レス投稿文が書かれたCSV。通常とレス用で分けないなら同じファイルを使えばいい。

replyTextCsv: CSV_DIR + 'textReply.csv',

};

const SETTINGS = {

//投稿後の基本待ち時間

baseWaitTime: 5,

//baseWaitTime+0~waitTimeRange(ランダム)だけ待つ

waitTimeRange: 5,

//連投しすぎだと忠告された場合に処理を一時停止させる時間(秒)

waitTimeForAvoidingPunishment: 60 * 30,

//メール

mail: 'sage',

//名前設定

nameSettings: {

//名前名無しなら''。

name: '',

//以下、偽装ワッチョイ設定。浪人ワッチョイを非表示にしてるときだけtrueにしてね。

//妙なニックネーム(ワッチョイ、アウアウウーなど)をランダムで決めて付加するかどうか。true=付加する。false=付加しない。

nickname: false,

//妙なニックネームの後に付く8桁の文字列ランダムで決めて付加するかどうか。

korokoro: false,

//IPランダムで決めて付加するかどうか。

ip: false,

//地域ランダムで決めて付加するかどうか。

area: false,

},

postSettings: {

//アンカー無し投稿をするならtrue。しないならfalse。noAnkerPostかreplyPostのどちらかはtrueにすること(両方trueでもOK)。

noAnkerPost: false,

//アンカー付き投稿(返信)をするならtrue。しないならfalse。もしnoAnkerPostとreplyPostの両方がtrue場合投稿は返信が優先され、返信対象が見つからなくなったらアンカー無し投稿をする。

replyPost: true,

//最初に取得するアンカー無し投稿CSVファイルの行番号。もし返信用と同じCSVファイルを使うなら-1と入力

noAnkerPostTextCsvStartRow: 1,

//最初に取得する返信用投稿CSVファイルの行番号。もしアンカー無しと同じCSVファイルを使うなら-1と入力

replyPostTextCsvStartRow: 1,

//テキストCSV/返信用テキストCSVの取得行が最終行に達したら最初の行まで戻るかどうか。true=戻る。false=マクロ終了。

textCsvLoop: true,

//返信する場合、これより小さなレス番には返信しない。返信を投稿すると、この数値は前回の返信先のレス番に更新される。

minAnker: 895,

//返信する場合名前に以下の文字列を含む投稿アンカーをつけて返信する(ワッチョイやIPなど名前フィールドにあるものならなんでも可)。配列複数指定可能指定無しなら空配列([])。filterNamesとfilterNamesNotIncluded共に無指定ならレス番1から順に返信していく(minAnkerが設定されてればそこから順に)。以下のfilter系は全て併用可能

filterNames: [],

//↑とは逆に、名前に以下の文字列を含まない投稿アンカーをつけて返信する。↑と併用も可能

filterNamesNotIncluded: [],

//返信する場合、本文に以下の文字列を含む投稿アンカーをつけて返信する。

filterText: ['自演かな', '自演わらわら', 'スクリプト使うの', '安価ガバ', '&gt;&gt;660', '自演擁護', '最後' ,'あいうえお', 'かきくけこ', 'さしすせそ', 'なにぬねの', 'はひふへほ', 'まみむめも', 'やいゆえよ', 'やゆよ', 'らりるれろ', 'わいうえを', 'わをん', 'わいうえをん'],

},

//自分IPアドレス確認VPNとかでIPを変更してマクロを動かしてるとき、突然VPN作動しなくなってIPが元に戻ったときマクロを止めるためのもの

ipSettings: {

//自分現在IPアドレス確認をする。

checkIp: true,

//以下の文字列自分現在IPアドレスに含まれている場合マクロを一時停止する。基本的自分の本当のIPアドレス入力

avoidTheIp: '133.206.99.224',

},

//浪人設定。最後動作確認したのは5年くらい前で、今も同じように動作するかは、浪人を持ってないか確認できずわからない。

roninSettings: {

//浪人ログインしてるかどうかをチェックするかどうか。trueらするfalseならしない。trueにしていてもし浪人ログインしていないことを確認したらログインしにいく。

checkLogin: false,

//浪人ログインメールアドレス

mailAdress: 'abc@def.com',

//浪人ログインパスワード

password: '1234',

},

//false: run()実行させず(デバッグ用)

run: true,

//true: 投稿処理だけしない デバッグ

skipPost: false,

};

/**************************************

設定箇所終わり。

書き込めない時の早見表 - 5ちゃんねるwiki

https://info.5ch.net/index.php/%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%82%81%E3%81%AA%E3%81%84%E6%99%82%E3%81%AE%E6%97%A9%E8%A6%8B%E8%A1%A8 &lt;h3&gt;o- *************************************/&lt;/h3&gt;

/**************************************

メモ

クラスフィールド宣言できない。

・NULL演算子(??)は使えない。論理積(&amp;&amp;)は使える。

オブジェクトの分割代入はできない。

・importはできない。 &lt;h3&gt;o- *************************************/&lt;/h3&gt;

/**************************************

関数 &lt;h3&gt;o- *************************************/&lt;/h3&gt;

/**

* ここから始まる。

*/

function run() {

//設定ミスがないか調べる。

checkSettings();

var _TextCsvCursors = new TextCsvCursors(

new TextCsvCursor(

SETTINGS.postSettings.noAnkerPostTextCsvStartRow &gt; 0

? SETTINGS.postSettings.noAnkerPostTextCsvStartRow - 1

: SETTINGS.postSettings.noAnkerPostTextCsvStartRow,

FILE_PATHS.textCsv,

SETTINGS.postSettings.textCsvLoop,

),

new TextCsvCursor(

SETTINGS.postSettings.replyPostTextCsvStartRow &gt; 0

? SETTINGS.postSettings.replyPostTextCsvStartRow - 1

: SETTINGS.postSettings.replyPostTextCsvStartRow,

FILE_PATHS.replyTextCsv,

SETTINGS.postSettings.textCsvLoop,

),

);

var _LoopStatuses = new LoopStatuses(0, SETTINGS.postSettings.minAnker);

const _MyPosterName = new MyPosterName({

name: SETTINGS.nameSettings.name,

});

//スレURL指定

const _ThreadUrl = openPromptThreadUrl();

//ループ

while (true) {

//IP確認する設定なら、それをする。

SETTINGS.ipSettings.checkIp &amp;&amp; checkCurrentIpNotTheIp();

//スレを開く

openUrl(_ThreadUrl.fullUrlHttps());

//浪人ログインする設定なら、浪人ログインしているかどうかを確認し、していなければログインしにいく。

if (SETTINGS.roninSettings.checkLogin) {

if (!checkRoninLogin()) {

loginRonin();

continue;

}

}

//投稿に使うテキスト取得。

const p = (function () {

if (SETTINGS.postSettings.replyPost) {

//返信あり設定の場合。返信対象が無いか調べる。

const targetAnkerNumber = createPostDOMList()

.filterPostnumberHigher(_LoopStatuses.currentMinAnker())

.filterByPostername(SETTINGS.postSettings.filterNames)

.filterByPosternameNotIncluded(

SETTINGS.postSettings.filterNamesNotIncluded,

)

.filterByText(SETTINGS.postSettings.filterText)

.lowestPostNumber();

if (targetAnkerNumber !== null) {

//返信対象があったのでアンカー付き投稿文を作る。

const r = _TextCsvCursors.takeNextRowTextAsReply(targetAnkerNumber);

messageDisplay(`返信対象有り。アンカー先: ${targetAnkerNumber}`);

return {

...r,

updatedLoopStatuses:

_LoopStatuses.updateMinAnker(targetAnkerNumber),

};

}

}

if (SETTINGS.postSettings.noAnkerPost) {

//返信対象無し、或いは返信しない設定の場合アンカー無し投稿文を作る。

const r = _TextCsvCursors.takeNextRowTextAsNoAnker();

messageDisplay('返信対象無し。アンカー無し投稿。');

return {

...r,

updatedLoopStatuses: _LoopStatuses,

};

}

return null;

})();

if (p) {

//投稿

postThenCheckError(

_ThreadUrl.serverName(),

_MyPosterName.randomize({

nickname: SETTINGS.nameSettings.nickname,

korokoro: SETTINGS.nameSettings.korokoro,

ip: SETTINGS.nameSettings.ip,

area: SETTINGS.nameSettings.area,

}),

SETTINGS.mail,

p.text,

);

//_TextCsvCursorsと_LoopStatusesを更新

_TextCsvCursors = p.updatedTextCsvCursors;

_LoopStatuses = p.updatedLoopStatuses.incrementPostCount();

messageDisplay([

`投稿回数: ${_LoopStatuses.currentPostCount()}`,

`minAnker: ${_LoopStatuses.currentMinAnker()}`,

`今回アンカー無し投稿取得行: ${_TextCsvCursors.currentRows().noAnker}`,

`今回アンカー有り投稿取得行: ${_TextCsvCursors.currentRows().reply}`,

]);

} else {

messageDisplay([

`返信対象が現われるのを待機中...。`,

`投稿回数: ${_LoopStatuses.currentPostCount()}`,

`minAnker: ${_LoopStatuses.currentMinAnker()}`,

`今回アンカー無し投稿取得行: ${_TextCsvCursors.currentRows().noAnker}`,

`今回アンカー有り投稿取得行: ${_TextCsvCursors.currentRows().reply}`,

]);

}

//短時間で連投しまくると規制されるので一定時間待機。

wait(SETTINGS.baseWaitTime + randomRange(0, SETTINGS.waitTimeRange));

}

}

/**

* 投稿処理と投稿結果を見てリトライしたりマクロ終了したり。

* @param {string} serverName サーバー

* @param {MyPosterName} _MyPosterName

* @param {string} postMail メール

* @param {MyText} _MyText

* @param {number} retryTimes

* @returns {void}}

*/

function postThenCheckError(

serverName,

_MyPosterName,

postMail,

_MyText,

retryTimes = 0,

) {

const r =

retryTimes === 0

? new ValuesOfPost(serverName, _MyPosterName, postMail, _MyText).post(

postTo5chTread,

postConfirm,

)

: new ValuesOfPost(

serverName,

_MyPosterName,

postMail,

_MyText,

).postSubstring(retryTimes, postTo5chTread, postConfirm);

if (r) {

back();

return;

}

//エラーページに飛ばされた。エラー情報取得。

wait(7);

const error = createPostErrorMessage().analyze();

messageDisplay(error.message);

if (error.order === 'KILL') {

kill();

} else if (error.order === 'SKIP') {

return;

} else if (error.order === 'TRUNCATE') {

back();

return postThenCheckError(

serverName,

_MyPosterName,

postMail,

_MyText,

retryTimes + 1,

);

} else if (error.order === 'WAIT') {

wait(SETTINGS.waitTimeForAvoidingPunishment);

return postThenCheckError(

serverName,

_MyPosterName,

postMail,

_MyText,

retryTimes,

);

} else if (error.order === 'LOGIN') {

//動作未確認

return postThenCheckError(

serverName,

_MyPosterName,

postMail,

_MyText,

retryTimes,

);

}

return;

}

/**

* 現在IPアドレスに、SETTINGS.ipSettings.avoidTheIpの値が含まれていないことを確認する。含まれていたらマクロを一時停止。

* @returns

*/

function checkCurrentIpNotTheIp() {

//IP確認ページへ飛ぶ

openUrl('https://www.cman.jp/network/support/go_access.cgi');

const _IpAdress = createIpAdressFromCMan();

if (_IpAdress.includes(SETTINGS.ipSettings.avoidTheIp)) {

pause('現在IP指定した値が含まれていることを確認。');

//ポーズ解除したならもう一度確認しに。

checkCurrentIpNotTheIp();

}

return;

}

/**

* 設定に致命的な問題が無いか検査

* @returns

*/

function checkSettings() {

if (

SETTINGS.postSettings.noAnkerPost === false &amp;&amp;

SETTINGS.postSettings.replyPost === false

) {

return kill('設定エラー。noAnkerPostとreplyPost両方ともfalseになってる。');

}

if (

SETTINGS.postSettings.noAnkerPostTextCsvStartRow &lt; 0 &amp;&amp;

SETTINGS.postSettings.replyPostTextCsvStartRow &lt; 0

) {

return kill(

'設定エラー。noAnkerPostTextCsvStartRowとreplyPostTextCsvStartRow両方とも-1になってる。',

);

}

if (

SETTINGS.postSettings.noAnkerPostTextCsvStartRow === 0 ||

SETTINGS.postSettings.replyPostTextCsvStartRow === 0

) {

return kill(

'設定エラー。noAnkerPostTextCsvStartRow/replyPostTextCsvStartRowの初期値は-1或いは1以上で。',

);

}

}

/**

* 入力フォームを表示して入力されたスレURLを受け取る。

* @returns {ThreadUrl}

*/

function openPromptThreadUrl() {

const url = prompt('スレURL入力');

return new ThreadUrl(url);

}

/**

* 開いてるスレレス全て読み取ってPostListインスタンスを作って返す。

* 重すぎるので使うのやめ。どうやらインスタンスの大量生成が原因な模様。

* createPostDOMListを使う。

* @returns {PostList}

*/

function createPostList() {

const posts = window.document.getElementsByClassName('post');

return new PostList(Array.from(posts).map((e) =&gt; new Post(e)));

}

/**

* 開いてるスレレス全て取得してPostDOMListに格納して返す。

* @returns

*/

function createPostDOMList() {

const posts = window.document.getElementsByClassName('post');

var arrPostDOMList = [];

for (let index = 0; index &lt; posts.length; index++) {

//HTMLCollectionからElementを1つずつ抽出して配列に。

arrPostDOMList.push(posts.item(index));

}

return new PostDOMList(arrPostDOMList);

}

/**

* 開いてる投稿結果画面に表示されてるエラーを読み取ってPostErrorMessageインスタンスを作って返す。

* @returns {PostErrorMessage}

*/

function createPostErrorMessage() {

return new PostErrorMessage(

window.document

.g Permalink | 記事への反応(0) | 15:40

2022-04-05

anond:20220405172611

voidさんとかmohtaさんとかあさだたくやさんとか古の有名人もちらほら

2022-01-16

[]社畜プログラマ気分を味わえた2Dアクションパズルゲーム

Steamで買った『Recursed』というゲーム全ステージクリアしたので、記念に感想を書く。

Steam:Recursed

https://store.steampowered.com/app/497780/Recursed/?l=japanese

操作方法/目的

一見すると『Recursed』は2Dレトロ雰囲気アクションゲームである操作シンプルで、方向キーで左右に移動し、アクションジャンプと物をつかむ/投げるだけだからだ。部屋の中を移動してブロックをつかんで足場を作ったり、鍵をつかんで扉を開錠したりしてゴールへと到着(crystalを獲得)すればステージクリアだ。

概要/パズル

ステージの始めはチュートリアルの様に簡単だが、ステージを経るごとに難しくなり、そのうち何度も試行錯誤したり難しさのあまり何十分も頭を抱えたりもした。

この複雑さを生み出す要因は箱(ゲーム表記ではChest)である。このゲームでは箱の中へジャンプすることで部屋の内に入れるが、一度箱の外にでると箱の内部状態リセットされてしまうのだ。よって箱の中にブロックや鍵などのオブジェクトを持ち込んでも保存することはできないし、ブロック位置リセットされるし、開錠した扉もまた施錠されてしまうことになる。

さらに大きな特徴として、箱を持ち歩いて移動することができるのだ。それにより、箱を持ったまま別の箱に入ったり箱を持って箱の外にでることもできる。

そして、ステージを経ると箱の中の部屋は箱の外と同じ部屋という場面に出くわす。Recursedは『再帰呼び出し』という意味らしいが、まさにこのゲームタイトル通りの現象が起こるのだ。そして、以降のステージでは再帰を交えることでパズルの複雑さはより深まっていく。

再帰プログラミングとRecursed

再帰数学的帰納法アルゴリズムでは定番概念だが、それがパズルとなってプレイヤー思考回路を奪ってくる。私はかつて社畜プログラマとしてJavaプログラミング経験していたので、箱に入ることはメソッドを呼び出すことの様に感じた。オブジェクトを持って箱に入ることは引数を使ってメソッドを実行することであり、オブジェクトを持って箱の外に出ることはreturn文でメソッドを終わらせることであった。

「ゴール前の段差が大きくブロック必要からブロック生成メソッドを呼び出してブロックオブジェクトを返り値として渡さなくてはいけないけど、そうすると鍵オブジェクトをゴールメソッド引数として渡すことができなくて……、いっそのこと、ブロックメソッドからゴールメソッドを呼び出すべきか……、メソッドの返り値は一つだけだが何度も呼び出せばいけるか? この緑色オーラはなんだ? Staticを意味するのか? Staticなオブジェクト位置情報をあらかじめ変更しておけば、ゴールメソッド引数渡しをする必要がなくなるのか?」

こんなことを一つのステージクリアするだけのために何十分も考えていたのだ。念のために書いておくが、ゲーム内には数学用語プログラミング用語は一切出てこない。ただ単に、私にJavaプログラミング経験があるからその用語パズルを考えていただけだ。ゲーム内で箱から出入りしたりオブジェクトを箱の中から出し入れするとどうなるかを、Eclipseステップ実行するように想起していた。ちなみに、ゲーム内で存在しない部屋や壁の中に移動しようとするとparadoxが発生して強制的特殊な部屋へ移動されるが、私はその度にステップ実行でExceptionに遷移されたことの様に感じた。他の言語精通するプログラマだったり数学畑の人ならば、私とは異なる概念パズル思考をするのだろうか。

プログラマを辞めて何年もプログラミング思考をしてこなかった私でも全ステージクリアすることができたのだから学校プログラムを学んでいたり現役でプログラミングをしてきた人ならばこのゲーム『Recursed』をクリアすることは可能だろう。いっそのこと、『Recursed』のクリアすらできない人にプログラミングができるのか? と煽ってみたいくらいだ。

ちなみに、もし私が社畜プログラマ時代にこのゲームをやったらブチ切れていただろう。なんで仕事プログラミングで脳を酷使した上に自宅のゲームでも同じようなプログラム的な思考をしなければならないんだよと。プログラミングから何年も離れていた今の私にとって『Recursed』は、プログラミング単体テストが無事成功した時の快楽を思い出させるものだった。

感想

『Recursed』はパズルとしての難易度は非常に高いが、理不尽な解法を求められることはない。理不尽な解法のクイズパズルには怒りが湧いてくる。ひと昔前のクイズ番組を見たことのある人なら『モヤッとボール』を投げつけたくなる、と言えばその感情が伝わるだろう。『Recursed』はどんなに難しいステージでも、ただただ開発者パズル作成能力に感嘆するだけで怒りは湧いてこない。

似たようなアクションパズルゲームとして有名なのは『The Witness』であろう。『The Witness』も私が好きなパズルゲームであり、ゲームとして高い評価を得ていることに間違いはないのだが、しばしば理不尽な解法を求められるパズルがありその度に私は怒りが湧いてきたものだ。そう考えると、『Recursed』はパズルとしての洗練さだけなら『The Witness』を超えるものだと私は思う。

好きなステージ

具体的にパズル解説するととただのネタバレになってしまうので(もっとも、文字だけでパズルの解法を説明できないのだが)、『Recursed』で私が好きなステージを述べる。順番は攻略順に並べた。

Woodland/Loop

再帰概念が利用される最初ステージ

チュートリアルの様に簡単だったこれまでのステージから突如再帰概念を見せつけられることで、このゲームタイトル名の意味理解することになった。

Ruins/Interlock

鍵を手に入れたら扉に到達できず、先に扉に到達したら鍵が手に入らずで、まさにインターロック名前に相応しいステージだった。

Temple/Blister

一画面だけのオブジェクトが少ないシンプルステージだが、氷の壁に阻まれてゴールできず苦戦した。試行錯誤の繰り返しの末クリアできたが、何故クリアできたのかがわからない。

The Void/Sojourn

The Voidステージはどれもこれまでの集大成という感じでやりごたえあったが、中でも頭をひねらせたのがこれ。ゴールの部屋を水没させたり水の無い状態で入ったりして鍵を運搬するのに苦労した。

The Void/Escalate

箱を左右へ投げて移動を繰り返して、高い位置にあるゴールを目指すのがまさにEscalateというステージ名そのものだった。paradoxを発生した後のパターンが複雑だったのが印象に残っている。paradoxを発生させたらcrystal獲得(通常のクリア)できないのかよ……という落胆は大きかった。しかし、それだけにcrystal獲得とdiamond獲得(paradox発生によるクリア)のどちらも大きな達成感を得られた。

The Oobleck Conundrum/Transfer

簡単そうに見えて難しく、唯一ステージ飛ばして次のステージへと進んだので印象に残っている。後に複数日に及ぶ数時間試行錯誤で改めてこのステージクリアができて、クリアにかかった時間が最も長くなったステージでもある。しかしながら、おそらく開発者想定外方法でのクリアであり。初期画面から右の方へ一切行かずにOobleckさえ使用しないというクリア方法スッキリしなかった。といっても、開発者の想定を無視するゴリ押し的なクリアを見つけたのはこのステージだけだった。

The Last Tapestry/Flight

The Void/Escalateと似たコンセプトのステージだが、釜(JavaにおけるThread?)のギミックを利用したより複雑な構成となっている。高い位置にあるゴールを目指すのは、やはりFlightというステージ名そのものだった。

最後

この記事投稿する前にエンディングを見れていないことに気づいた。

全ステージクリア(全てのCrystal取得)したからと、この記事執筆するためにネタバレを気にせず攻略情報を調べていたけど、エンディングなんてわかる訳ねえよ。The Void/Trilemmaの最後にCrystal取得とは関係ない意味深なオブジェクトがあることには気づいていたけど……。ちなみに、私のSteam実績によるとdiamondとrubieの全取得はできてないけれども、もう取得する気力はない。パズルゲームガチ勢にとっては、実績全解除を目指さない私は軟弱者に映るのだろうか? 攻略を調べずに実績全解除できる人は、高い論理的思考能力を有しているに違いない。

2021-12-20

anond:20211220141639

pre記法を使え

 Cue currentFile = 0;
 public void PlaySE(int clipNum) {
  int clipId = clipNum <= 3 ? clipNum : 0;
  if((clipNum != (int)currentCue &amp;&amp; ((int)clipNum <= 3 &amp;&amp; currentCue != Cue.Basis))){
   SetSEClip((Cue)clipNum);
  }
 }

2021-09-05

BLコレクション

 Kindleに溜め込んだ商業BLコレクションたち。最もお気に入り作品たちについては前に書いてしまったので、今回は書かない。今回は「しゅみじゃない」~「けっこう好き」までのレベルが入り乱れる。せっかくの増田だし、辛辣レビュー書いても消されたりしないので、素直に思ったことをぶちまけよう。

カッコウの夢』(ためこう)

 初めて買った商業BL上下巻ある。表紙が綺麗だけど、中身はというと、そこまで絵が上手という訳でも……。特別下手でもないが。綺麗めの少女漫画といった感じ。ストーリーは、白泉社匂いがする。と思ったら、作者は白泉社の、雑誌少女漫画家としてデビューした人だった。

 主人公(攻め)がドクズなので、受けの粘り勝ちなラストだけど、それでいいのかお前(受け)は? ともやもやした。あと、BL性格の悪い脇役の女を見せつけられるのは、あまり気分のいいものではない。少女漫画でも性格の悪い脇役の女の登場はあまりいい気分ではないけど、まあ、必要悪から仕方ないなと思う。

 男だらけの登場人物の中で紅一点の女キャラが性悪って……。と思ったけど、初読み商業BLだったので、まあそういうもんなのかなと思ったし、実際、BLワールドでは女が悪役はそんなに珍しいものではないと後に知る。(悪役で出てくるくらいなら女一切出て来なくてよし!勢もBL読みには多いようだと、更に後に知る)

ララ結婚』(ためこう)

 既刊三巻まで。一時期Rentaの広告でやたら出てきたので、興味本位で購入。もともと「メス堕ちBL」という企画のために作られた短編長編化したものらしい。メス堕ちBLて。商業BL、たまに男性向けエロも真っ青なえげつない企画があるよな……。

 そんな訳で、一巻は果てしなくセックスしてる(というか受けが攻めにレイプされている)感じなのだが、徐々にエロの頻度は減っていき、三巻では遂にエロはご褒美(巻末描き下ろしだけ)となる。

 物語タイトル通り嫁入り譚。だが主人公ララ双子の兄ラムダン(受け)で、彼が妹の代わりに政略結婚相手に嫁ぐというもの。どう見てもちんちんあるのに旦那(攻め)を騙し切れてるとけっこう長いこと信じている受け(濡れ場で紐パンぜったい脱がない)がすごい。んなわけあるかい

 パンツ脱がなければ大丈夫と思ってる受けとか、飛んでくる弓矢がどう見ても矢印とか、突っ込み処が色々ありつつ、ストーリー少女漫画を通り越して昼ドラの泥つき具合で進んでいく。途中から登場した攻めの第二夫人がすごくいい子で自分から身を引いて退場となる辺りは清々し少女漫画のよう。

 BL読んでる感がどんどんなくなってきたので、三巻でストーリーに一段落いたことだし、これ以降は読まなくてもいいかなと思った。いやまあ、少女漫画が好きではない人間には商業BLの7割くらいはノットフォーミーなんだけれども。

 ところで、登場人物の装束や村や街の風景がどう見てもチベットしかし、チベットって一夫多妻というより一妻多夫イメージがあったのだが? 幼い頃に許嫁が決まっていて、許嫁同士で遊んでいたとかい描写は、中国のどこだかの幼児婚的なものに見える。

アサリと俺』(藤咲もえ)

 アサリBLする。ミル貝もBLする。たしかアサリが攻めだったと思う(人間が受け)。ミル貝は立派なものをお持ちながら受けであるアサリに詳しくなれるかもしれない。西洋パロディが素敵。

 誤タップにより購入してしまい、購入した途端にページが開かれてしまったので、返品できなかった。悲しい。

 サンプル1ページ目を読んで合わないと思った作品はほんとうに合わないと思い知る。悪くはないと思うけど、私には合わない。

イトウさん』(冥花すゐ)

 作者のペンネーム中二病拗らせている感あるけど、作風中二病が炸裂し爆発している。サンプル1ページ目の主人公(受け)のビアズリー的な美に惹かれて購入したが、なかなか良かった。BL世間評価がどうであれ自分にはヒットした。

 内容的には殺伐裏社会ものでありつつ純愛もの

『艶漢』(尚月地

 あれ、これBL? BLでない? よくわからない。商業BLも読むんならこれ読んでみれと強くおすすめされた1冊。特に私の推しジャンル二次創作クラスタにはたいそうウケるらしい。が、私には全く面白さがわからなかった。ここまで何が面白いのかわからないという作品に当たったのはじめて。まあ、同クラスタの人ほど案外趣味合わないというのは、よくあることかな。『地獄楽』(これは少年漫画だが)とかも、正直わからんと思ったし。推しに似てると言われても……。

あなたを殺す旅』(浅井西)

 表紙の銃口を向けられている方が攻め。銃を向けている方が受け。仕事でヘマをして逃亡の身になったヤクザ(攻め)とその舎弟(受け)が海沿いの街を転々とするロードムービーオールドファッションヤクザスタイルだけど、時代現代平成前期くらいで時代に取り残されてしまったような懐かしい旅風景

 おすすめかというと微妙だけど、個人的にはかなり好き。最寄りのTSUTAYABL本棚では、イチオシ作品として飾られていたので、人気はあるのだろう。

 そういえば、同作者の非BL作品町田啓太主演でドラマになったかこれからドラマになるかだったような。

『いとおしき日々』(sono.N)

 50代×60代の人生の大半をかけたBL

 うん、思ってたんと違った!

VOID』(座裏屋蘭丸

 私が持ってる商業BL漫画のなかで唯一の、18禁作品。これ以外はどんなにエロがあっても18禁にはならないのだった。前述の『ララ結婚』など、そうとうエロいはずなんだけどなー。

 だがKindleにかかればVOIDも白抜き修正祭りさ! 18禁というレーティングで描かれた漫画であるので、同作者の他の作品とは違い、体位局部を見えなくする技を使わずに描かれているせいで、よりいっそう白抜き修正祭りになってしまっている。あと、ほかに何が18禁なのかというと、アブノーマルプレイがある。道具使用とか、プレイを超えた言葉身体的な暴力とか。受けをただ虐待するSMのようなやつ。

 エロがメインの作品なので、座裏屋先生らしくハイクオリティー映画的な画面構成だけど、ストーリー面白さとか辻褄とかは今一つ。受けが可哀想過ぎるし無理やりハピエンにまとめているのが却って理不尽に思えてしまうので、私はあまり好きではない。

 本物の18禁修正無し)だったらしい紙の方は受注販売だったために、現在は新品での入手は不可能中古本がとんでもないプレミア価格で売りに出されていることがある。

 

『旧繁華街袋小路』(ためこう)

 商業BL入門時代に、とりあえず一人の作家さんにしぼって単行本を集めてみるかと思って買った。そしてここで挫折した。(他にも初期短編集も買ったけど。)『カッコウの夢』『ララ結婚』ほどは少女漫画的ではない。あまり記憶に残らない作品だった。

ハッピーくそライフ』(はらだ)

 主人公二人が粕谷と葛谷という名前からしてろくでもなさそう(実在粕谷さんと葛谷さんにはすみませんが)な二人の織り成すリバーシブルギャグBL

 ひとしきり笑う。時々可哀想



続きはまた後で。

2021-08-03

anond:20210803012020

javascript:void((function(){document.body.innerHTML=document.body.innerHTML.replace(/削除したい文字列/g,'');})());

で良くない?

ログイン ユーザー登録
ようこそ ゲスト さん