どっこい、生きてる。近況報告

急にブログを更新する意欲を失ったのでがっつり放置してましたが意外と生きています
冬椿です。

夏コミに関して

当選しました(日曜日 西e21b)
完成は現在の進捗具合とお仕事のごにょごにょとかを考えると厳しそうです
申し訳ありません
闘会議で完成とか言ってた過去の自分の能天気さが腹立たしすぎてうらやましいです

きゆづきさとこ展に行ってました

行ってました
ありがとうございました。世界

お仕事先のコンパイラを新しくしたい感じにしてました

コンパイラ更新のために大いに役立ったdockerは神


あとは特に何もないですね


お仕事のほうのプロダクトは完成が近いので、街角とかで新しくリリースされたなんかを見かけたら子犬を相手取るように優しくしてあげてください

それでは

デジゲー博頒布物について

取り急ぎ告知
どみだらよの体験版を頒布します。100円
体験版です。関係者各位及び期待してくれた方ごめんなさい
f:id:txttxt:20151114220429p:plain

残念ながら対戦できません。一人回ししかできません
ああなんとなくこんなゲームなんだなーといった体験版になります
ご留意ください

製品版(予定)との差異

  • 対戦できない
  • カードが少ない
  • CGモードがない


ざっくりとしたルール説明

  • ルールはおおむねドミニオンと一緒。勝利点(ANOS)を集めよう
  • ANOSは12コイン
  • ANOSは購入すると全てのプレイヤーが行動可能になる
  • ANOS発動中のターンの終了条件はターンプレイヤーとそれ以外の過半数のプレイヤーの同意
  • ことによっては石(1金の1勝利点)をかき集めたほうがいいかもしれない。それ用のカードもある
  • 他にユニークなカードだと「記憶管理」。そのターン中デッキをシャッフルしない。ループを操りたい

そんな感じ

当日はよろしくお願いいたします

二次創作で自転車創業、そしてドミだらよなデッキ構築。デジゲー博。TXT.TXT。それはC-10bです

告知だよ
告知は1週間前にはしてるといいって近所の猫が言ってたよ。完成してるとなおよい
気楽に言いやがって……猫畜生め

タイトルの通り完成していればだらよなドミニオンが頒布されます
雰囲気おすそ分け

f:id:txttxt:20151110014601p:plain
グギギ、頑張って完成させよう。もうちょい見栄えのいいスクショをそのうち上げます

完成してなかったら体験版か土下座してます。萌えっこ or DOGEZA

そうそう、萌えっこなんですよ
今回何点か絵を描いてもらったんですよ*1
それだけで買う価値があると思うし買うべきだと思う。萌えっこナイス

TXT.TXT デジゲー博C-10bでお待ちしています。自転車創業島で僕と握手*2

*1:全て描いてもらったわけではない。注意

*2:そうは言うものの当日は多分そこらへんでフラフラしていないかもしれません

そういえばデジゲー博2015 C-10b「TXT.TXT」ですよ。っと

デジゲー博の場所決まってました
デジゲー博 | 同人&インディーゲームオンリー展示・即売会

c-10b「TXT.TXT」です
やったね緩衝材だよ

当日はなんか二次創作なドミニオンゲーを出しているかもしれません
もしくは無限のUDONを求めて九州地方に旅立っているかもしれません
九州、いいよね

詳細はもうちょっと待ってください。当日開場には間に合わせます

優先順位付オーバーロード関数オブジェクト

事の起こり
apply(a,b)(  //a,bは多態型
  [](int,int){}
  ,[](auto,int){}
  ,[](auto,auto){}
)

みたいなことをやりたかった

優先順位付オーバーロード関数オブジェクト

関数が上からチェックされるオーバーロード関数オブジェクト
[Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ

ordered overload function oject · GitHub

    auto f=alol::make_poly(
        [](int,auto){std::cout<<"(int,auto)";}
        ,[](auto,int){std::cout<<"(auto,int)";}
        ,[](auto,auto){std::cout<<"(auto,auto)";}
    );
    f(42,42);


上から評価されるので(int,auto)と(auto,int)でかち合わない

問題は

    auto g=alol::make_poly(
        [](double){std::cout<<"double";}
        ,[](int){std::cout<<"int";}
    );
    g(42);

のようなときにintがdoubleに暗黙型変換されてしまうことである
そういう場合はoverloadルールで解決されるmake_overloadを使おう
make_overloadを書いた - ここは匣

だらよ/だらよ3※の感想の様な

自転車創業さんの
そう、あたしたちはこんなにも理不尽な世界に生きているのだらよ」(以下だらよ)
そう、あたしたちはこんなにも理不尽な世界に生きているのだらよ3 ※この世界で2の発売予定はありません。」(以下だらよ3※)
の感想、のような。のような
私は普段、感想とか感想とかを書くタイプの人類ではないのですが、ちょっと成仏してもらわないと困る訳で、出力して行こうかと思いました訳で。



当然ですがネタバレを含みます
未プレイの良い子は今すぐamazonとかさんげっとに行って買ってくるんだ。前作未プレイならそっちも買ってくるんだ。ロストカラーズメロンブックスで買うのがお勧めだ。

続きを読む

constexpr variantの限界:自分版

Variant
型安全Union
関数型風にいうと直和型
例えば

 Variant<int,double,string> 

であればint,double,stringの内どれかの値が入っている
複数の型のうちの一つを入れることができる型

variantはとても便利な機能だ。C++の標準にもこれと似たものを入れようという動きがある。それだけこの機能が求められているということであろう

それだけ求められているvariantである。やはりconstexprに対応させたい。させるべきである。そう考えるのは人間の道理である。

melpon.org


しかしこのクラスにはoperator=が実装されていない。実装できなかったのだ

variant a(3),b(string("ABC"));
a=b;

このような時、プログラムはどのように動くべきであろうか
何らかの方法で3の値を安全に破棄し、『何らかの方法でstring()を構築して』ABCを代入する
と言ったところであろう
実行時であればplacement newを用いて3があったメモリ上にstringを構築するであろう
しかし、それはコンパイル時にはできないことなのだ。コンパイル時にnewを行うことはできない
故にstringを構築できず、故にoperator=を実装することができないのである


故に、完全なconstexpr variantを作ることができなかったのである。私は

さぁ、私でないあなた。今すぐC++を立ち上げよう。この問題を解決しよう