Yak!の日記: 今更 blog 開設
こんなところを見ている人も居ないと思いますが、C++11 Advent Calendar および Boost Advent Calendar を機に http://yak-ex.blogspot.com/ を開設しました。プログラミング、ソフトウェア関連のネタは(どれだけ書くかはともかく)以降そっちに書くと思います。
こちらは、Yak!さんのユーザページですよ。 Idle.slashdot.jpは、あなたの人生において完全な時間の浪費です。見るなよ、見るなよ。
こんなところを見ている人も居ないと思いますが、C++11 Advent Calendar および Boost Advent Calendar を機に http://yak-ex.blogspot.com/ を開設しました。プログラミング、ソフトウェア関連のネタは(どれだけ書くかはともかく)以降そっちに書くと思います。
とりあえず碧の軌跡クリアしたので雑多な感想など。
■総合
プレイ時間 123:15:34。寝落ちや放置も含んでると思いますが。獲得実績 34/56 2250pt。みーしぇのイベントだけ検索かけちゃいましたが他はノーヒント。結構頑張った方じゃないでしょうか。アニエス揃えられたのは嬉しかったですね。
なのですが感想というと、うーん。ラスト絵のところに空の軌跡の時のようにメッセージが出るんですが "Comletedly Finished" になってました。なんか違う。そぅ、クリア後の感想としてもなんか違うというかもっと良くできたんじゃないの?という気が。特に最後、単純に流れを見せられるだけなのはどうかと。同一世界観で話が続いていくのはともかくクロスベルの話としてはきちっとけりをつけてもらわないと。一旦エンドでその後プレイアブルにクロスベル解放してくれれば満足してたような気もします。
■ラストダンジョン
タレコミ中の記述がなんとなく実施例での記述っぽかったので請求項を見てみました。実施例はほとんど見てません。
不愉快度、というものは請求項自体には書かれていません(実施例には書かれているようです)。判定対象と類似したドキュメント群の許可できない部分と一致する部分を判定対象のドキュメントが持つかどうかで判断して、コンテンツの承認、却下を決める方法、になっています。
また、従属クレームで以下のような判定基準が書かれています。
・フレーム更新間隔が短いもの
・ユーザー操作なしに音楽、映像をダウンロードするもの
・ドキュメント自身以外からデータを持ってくるもの
・ネットワーク接続を開くもの
・ハードウェアにアクセスするもの(例:マウス、ゲームコントローラ)
・擬似乱数生成器を持つもの
・ループ回数が大きいもの
・画像の質に対する判定(例:境界がはっきりしない、サイズが大きい、(フレーム間での)コントラストの変更率、色の変更率、(おそらく反転や明度変更のような)変換を含む率)
> whether the document comprises computer code that opens network connections.
ネットワーク接続を開くコード、の誤訳でしょう。
コメント付いているのに気付いてませんでした。
その説明は誤りだと思います。2. の時点で既に領域が無効だ、という説明かと思いますが、その場合、同様の議論が struct ではなく int に対しても成立し以下のコードも誤りとなってしまいます(3. で持ってくるのはアドレスではなく値になりますが領域自体が無効なら議論は同じです)。
int addressee(void) {
int result = 5;
return result;
}
int main(void) {
printf("Hello, %d!\n", addressee());
return 0;
}
さすがにこのコードが誤りだと関数の戻り値は全て使えないことになってしまいます。確かに result は関数内で確保されていますが値返しで返ってくるため再度スタック上に積まれて呼び出し側でも有効な状態で返ってきます。問題はそのスタック上の値がいつまで有効か、です。C99 規格上では次の副作用完了点まで有効ですので以下のコードは未定義動作を含みません(次の副作用完了点は printf 呼び出しなのでその前に a[0] の評価は完了する)。嫌な例でわざわざ f() 呼び出しが入っているのは別の副作用完了点を入れて問題を起こすため、です。
int main()
{
printf("%c%c!\n", addressee().a[0]);
return 0;
}
Twitter 上で C++ STL の vector に関して評価順序不定ではまっているコードの例が流れていてそこから C 言語における(規格上の)落とし穴に行き着いたのでメモ。
// from http://www.jpcert.or.jp/sc-rules/c-exp35-c.html
#include <stdio.h>
struct X { char a[6]; };
struct X addressee(void) {
struct X result = { "world" };
return result;
}
int main(void) {
printf("Hello, %s!\n", addressee().a);
return 0;
}
ooo-o--- で 39pts 594 位。Round 2 は通過ならず。仕方ないというか大健闘と言っていい感じかと。初の T シャツゲットです、多分。とりあえず small 専業と割り切ったのはレベル相応で悪くない判断だったと思っています。B-large、C-large、D-small は解けても良かったかもと思わないでもないですが、バグ無しで思ったコードをさくっと書けないというコーディング力や、練習が足りないという点も含めてやっぱり実力がちょっと足りなかったと思います。なお、以下は Contest Analysis を読まない状態で書いています。
A. Airport Walkways
速度が遅いところから greedy に t 秒とっていけばいいだけ。
int main(void)
{
ios_base::sync_with_stdio(false);
きっと誰かやってるだろうと思いつつ書いてみたら案の定 @iorate さんが直近で同様の事をやっているわけだが折角なので晒してみる。
なんとか R1B 枠で通過しました。
R1A Problem A. FreeCell Statistics
人生の大半の問題はスルー力で解決する -- スルー力研究専門家