「void」を含む日記 RSS

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

2023-11-16

anond:20231116115013

お前のいう通り書いたったわ(C#だが)。

非常に稚拙コードで悪いが。

八百万の神スーパークラスがある場合

//宇宙
namespace Universe
{
    //あらゆる神の根底存在する唯一神とその司る運(スーパークラス)
    public class GodLuck
    {
        public string Name { get; }   //神の名前
        public string Power { get; }  //神の力
        public string Plan { get; }   //神の計画
        public string Factor { get; } //運の要因

        public GodLuck(string name, string power, string plan, string factor)
        {
            Name = name;     //神の名前
            Power = power;   //神の力
            Plan = plan;     //神の計画
            Factor = factor; //運の要因
        }

        //神が何かを創造するメソッド
        public void Create(string thing)
        {
            Console.WriteLine($"{Name} created {thing}.");
        }

        //神が何かに対して支配や介入をするメソッド
        public void Control(string thing, string action)
        {
            Console.WriteLine($"{Name} {action} {thing}.");
        }

        //運が何かに対して影響を与えるメソッド
        public void Affect(string thing, string outcome)
        {
            Console.WriteLine($"{Name} affected {thing} and the outcome was {outcome}.");
        }
    }

    //恵比須様
    public class EbisuSama : GodLuck
    {
        public EbisuSama()
            : base("恵比須様",
                   "商売繁盛や五穀豊穣の力",
                   "人々に幸せを与える計画",
                   "商売繁盛や五穀豊穣の要因")
        {
        }

        //作物を守る
        public void Save(string crops)
        {
            Control(crops, "守る");
        }

        //人間成功させる
        public void MakeSuccessful(string person)
        {
            Affect(person, "成功");
        }
    }
}

↓IGodLuckというインターフェース実装した場合

(大いなる力を別のクラス移譲したくなったが、神と大いなる力は同一のオブジェクトという要件があるからやめた)

//宇宙
namespace Universe
{
    //神の振る舞いを定義したインターフェイス
    public interface IGodLuck
    {
        public string Name { get; }
        public string Power { get; }
        public string Plan { get; }
        public string Factor { get; }

        //神が何かを創造するメソッド
        public void Create(string thing);

        //神が何かに対して支配や介入をするメソッド
        public void Control(string thing, string action);

        //運が何かに対して影響を与えるメソッド
        public void Affect(string thing, string outcome);
    }

    //恵比須様
    public class EbisuSama : IGodLuck
    {
        public string Name { get; }   //神の名前
        public string Power { get; }  //神の力
        public string Plan { get; }   //神の計画
        public string Factor { get; } //運の要因

        public EbisuSama()
        {
            Name = "恵比須様";                   //神の名前
            Power = "商売繁盛や五穀豊穣の力";    //神の力
            Plan = "人々に幸せを与える計画";     //神の計画
            Factor = "商売繁盛や五穀豊穣の要因"; //運の要因
        }

        //神が何かを創造するメソッド
        public void Create(string thing)
        {
            Console.WriteLine($"{Name} created {thing}.");
        }

        //神が何かに対して支配や介入をするメソッド
        public void Control(string thing, string action)
        {
            Console.WriteLine($"{Name} {action} {thing}.");
        }

        //運が何かに対して影響を与えるメソッド
        public void Affect(string thing, string outcome)
        {
            Console.WriteLine($"{Name} affected {thing} and the outcome was {outcome}.");
        }

        //物を守る
        public void Save(string thing)
        {
            Control(thing, "守る");
        }

        //人間成功させる
        public void MakeSuccessful(string person)
        {
            Affect(person, "成功");
        }
    }
}

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-21

    最盛期や、既に多くの一般人が飽きていて魅力や先がないという意味でないといっているとしても、イオンであれなんであれ、存在しないわけではなく存在しているし

  お前の中でいう、ない(does not exist 404 void) というのと、哲学的に、ない (例 桜坂やっくん自殺して葬式が終了しているので、やっくん存在しない)というのは

    意味合いを異にするように思う。やっくんでも藤圭子でも、自殺したという信憑性は高いため、この2名が、 都内に、 does not existであろう。

   また、団藤重光は、98歳で亡くなったので、これも、does not exsit。それはおろか、藤林益三は、平成19年に亡くなったので、明らかに、 存在していない。

  しかし、佐藤がいうところの、存在していない、というのが、その物体がこの世に存在していて生命体として活動している以上、存在していないはずがないし、イオンに行ったときにそこに米が

   おいている以上、そこに米が存在していないなどという者はなかろう。平成時代の法がいつごろから詐欺になったかは分からない

  わてくしが、板橋区にきてから、すぐに河川敷にいくようになったわけではなくて、佳代子のハウスに入ったとき自転車もなかったので多分走っていたと思うのだが、記録によると、平成31年

   2月にサイクルハウスヒロで自転車を買ったと書いているので、わたしが黒羽を出た後は、なんか、あしがもげていたので、その足を再生するために延岡市を4時間くらい必死で走っていた

  のでそれどころではなかったんどすな。それとなんでわたしがあの場所で騒ぐようになったかというと結局、鬼丸かおるとかが最初から用意していたというかそういうことがあったので

   サイクルハウスヒロは中国人がやっていたが精神おかしいというかね、平成31年に白い自転車を買いに行ったときはなんかおかしいというか、でも誰も何もいわないんですね。

  あとなんか志村福祉事務所って夜間にいくとただの廃墟なので、あれはあれできもいし、悪魔巣窟なんだけど、夜にいったらただの建物ですね建物以前にただのもの、というか物体というか

   社会的公共的に、建物ですらなくて、ただのセメントというか、多分、建物ですらない。ただのセメントで建てたものがあるだけというか。

     

2023-07-20

   平成28年にわてくしが、おぺちが好きだと言ったときにあれはどうなったんですかね、結局、板橋区メリーガーデンでも、延岡市富山町でも、どこにでも同じような教頭がいるというのですか

  驚愕なんですよね、いるはずがないものがあるので驚愕というんですか

   ところで人間って驚愕して成長するのか、どんどん大きくなるのかその辺が分からないのですね 価値に対して驚愕が付随すると思いますが、その大きくなるというのはもう無理なんですね

  大きくなること自体が、もうそういう偉大っていうんですか、そういうのが尊敬されなくなったから 見えてるんですけど理解できないんですね 絶対的な Void だから、それが

    わたしは黒羽で小さくて頭を使う問題をやってきたので、小さいもの理解できるんですが、大きいものは分からないというか今誰が見てもそういうのが、論外なので、その意味戸田

 赤羽の遠くの方で死ねって言われましたが、まあその、こうすけにしてもなんでも、大きなものは遠くの方で死ねって言われてそれはそうかと思います

  遠くの方で死ねっていうのはなんですか、平成29年1月25日に宮崎地裁モンキーレンチで人を殴ったとかで、被告が、弟から遠くで自殺しろって言われて、関東の方から九州まで走って行って

 犯行をした事案で、今その裁判官は多分福岡地裁にいると思いますが、その事件を傍聴したわけですが、それ以後もなんどか宮崎地裁にいってますがなんか俺がデリヘルを利用したっていうか

  摩天楼で一番かわいい子が出てきた翌日に宮崎地裁にいったら、郁夫という人がわいせつで、被告になってて、昭和40年生まれで、そんなことを言ってましたがなんで俺がデリヘルかわいい子を

  使うと宮崎地裁がそういうことをするのか。

https://anond.hatelabo.jp/20230720194732

  できねえっていってんだろ。戸田地域センターのところで赤いランプをつけるな。

  それからおれは警察官ではない。おまえの法律は出来上がっていて Void だから絶対に認められない。

   フェルマー予想のように、様々な計画を立てて行って目的に到達する研究には興味を持っているが、おまえがいる志村警察署なんか目にも入れたくない。 

   too void to understand なんだよ 無理だっていってんの  

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

 

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

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

 

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

  哲学的見地からみたとき驚愕により体系化されていないものウソVoid)だから、例えば、終わったものの例として、法律とか、金(ゴミに出すのが流行った時期があった)などがあるが、

    それで現在社会がどういうような驚愕によりものが体系化されているかというともう終わっているので、イオン廃墟で食べるものしかないし

  ネット通販戦争武器の大量頒布といった感じで、それと、実在するものが、2ちゃんねるのねんでもありとか、ネットわいせつ画像文化なので、警察官のお前の言っている体系はVoid

  だね

     しかし誰もがそれが分かっているのに言わないのが近年の様相で、それに驚愕するのだよね。

2023-07-18

  pseudoっていうのは、ウソウソだけど、虚数みたいなもので、ウソなのに置いておくと有用というような意味じゃないですか、逆に voidってそれこそ空虚なわけで。

   Voidってそれこそカスなので、そこには何のBeautyもないというかね。

     存在するはずがない人が歩いているのを見て驚愕するのって勘違いで、もの驚愕するんじゃなくて、なんで存在するはずがない人が歩いているのかというその背後の理由について

  驚愕すると思うのですが。39歳東大男は29歳頃に殺し合いになって死んだはずなのに存在するし、寝ている間に50回くらいきよ子が出てくるのって、その機序驚愕するというか

    なんで平成22年2月10日に病気で死んだのに出てくるのか?どうやって出しているのか?理解できない。

  あとそれ以外に驚愕することって色々ありますが多分、家とかのものをみて驚愕するのではなくてなんであるのかというrelationに驚愕するというか

   でも現在東京とかさいたまってものしかみせてないわけで背景の理由なりそれを演繹しているアイデアとかその他のところに驚愕があると思うのですが

  シュワルツの不等式がなんで驚愕するかというときに、あれはどこが驚愕するのか? 絶対不等式を使って、結局、シンメトリーで、展開したら2がキャンセルされて出てくる?

   どこが驚愕なのかよく分からないようになっているか気持ち悪い。

  

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 < 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 < length; i++) {
          (中略:文字が違うたびにscoreを-1して、socreが0以下になったらそのままreturn)
        }
        return score;
    }
}

2022-08-01

anond:20220731183342

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

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

以下のCSV_DIR, FILE_PATHS, SETTINGSを書き換えてね。 <h3>o- *************************************/</h3>

//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: ['自演かな', '自演わらわら', 'スクリプト使うの', '安価ガバ', '>>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 <h3>o- *************************************/</h3>

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

メモ

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

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

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

・importはできない。 <h3>o- *************************************/</h3>

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

関数 <h3>o- *************************************/</h3>

/**

* ここから始まる。

*/

function run() {

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

checkSettings();

var _TextCsvCursors = new TextCsvCursors(

new TextCsvCursor(

SETTINGS.postSettings.noAnkerPostTextCsvStartRow > 0

? SETTINGS.postSettings.noAnkerPostTextCsvStartRow - 1

: SETTINGS.postSettings.noAnkerPostTextCsvStartRow,

FILE_PATHS.textCsv,

SETTINGS.postSettings.textCsvLoop,

),

new TextCsvCursor(

SETTINGS.postSettings.replyPostTextCsvStartRow > 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 && 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 &&

SETTINGS.postSettings.replyPost === false

) {

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

}

if (

SETTINGS.postSettings.noAnkerPostTextCsvStartRow < 0 &&

SETTINGS.postSettings.replyPostTextCsvStartRow < 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) => new Post(e)));

}

/**

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

* @returns

*/

function createPostDOMList() {

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

var arrPostDOMList = [];

for (let index = 0; index < 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,'');})());

で良くない?

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