Hatena::ブログ(Diary)

yappyの日記 このページをアンテナに追加 RSSフィード

2013-02-24

序論

| 07:11

どうでもよさそう…。

ギガチュウ: 正しいコード…

ギガチュウ: 今はこの、にとりの河登りのソースコードを参考にしていますけど……

yappy: ざわ…

yappy: おれもあまりC++コードは見る機会がないけど…

yappy: Brightmoon - Touhou Archive Extractor

    • Brightmoon?

東方Project作品(と幾つかの別作品)のアーカイブファイルを閲覧、抽出することが

出来るGUIアプリケーションです。

みょんなエラーが出るかもしれませんが、そこはご愛嬌ということで……

yappy: これとかどうですかね

ギガチュウ: お、ニコ動投稿者御用達のアレですね

yappy: -- src.zip?

Brightmoonのソースコードzip圧縮したものです。ビルドにはboostが必要です。

ギガチュウ: くそいー

yappy: ソース読むだけなので…

yappy: 少々危険ですが確か私の評価は高かったはず

ギガチュウ: 全ゲ連のBoost紹介講演のスライド見てるんですけど

ギガチュウ: この講演の対象

Boostを使ったことがある

STLを使ったことがある

テンプレート含むC++の言語機能をある程度理解できる

C++プログラムを書いている

×C++は書かない

多分こんな感じ

yappy: 残当

ギガチュウ: って書いてあって完全に△だった…

yappy: 下の方への話ってしてても自分が面白くないですからね…

yappy: ぱっと見boostへの依存は多くなさそうですよ

yappy: つーかどこに使ってるんだ…

yappy: あーscoped_arrayか

まだ0xでなかった頃のスマートポインタだけは使いたかったパターンですね…

ギガチュウ: スマートポインタ

ギガチュウ: ポインタは今のところ一箇所しか使ってないです

ギガチュウ: int WINAPI WinMain( … )

{

Game *game;

game = new Game;

game -> mainLoop();

delete game;

return 0;

}

yappy: それにとりっていうんですよ…

yappy: 弱キャラです

ギガチュウ: ^^^^^^^^^^^^^^

yappy: Game game;

game.mainLoop();

return 0;

yappy: これがアリスです

ギガチュウ: あ、それ!

ギガチュウ: 最初はそう書いてたんですよ

yappy: Game game;

コンストラクタ呼ばれるんですよ

yappy: WinMainからリターンするとデストラクタ呼ばれるんですよ

yappy: おわり

ギガチュウ: Game *game = new Game;

だとそういうのは呼ばれないんですか

yappy: 呼ばれますよ

ギガチュウ: deleteのタイミングで呼ばれるとkかですか?

yappy: newはそのクラス(構造体)の大きさのメモリを確保して、その後そこに対してコンストラクタを呼びます

yappy: deleteはそこに対してデストラクタを呼んだ後、さらにメモリを解放します

yappy: メモリの動的確保と解放は重いからむやみに使うのは厳禁ですよ

ギガチュウ: そうなんですか…

ギガチュウ: 僕の手元にある『これならわかるC++』には「実は、newとdeleteをきれいに使いこなすことは、C++屋の腕の見せ所のひとつなのです。」って書いてあったので…

ギガチュウ: てっきりnewを使ったほうが賢いのかと…

yappy: newとdeleteは使えば使うほどメモリリークバグを増やすので

yappy: スマートポインタを使うというのが闇の軍団のセオリーですね…

ギガチュウ: new→メモリ確保→コンストラクタ呼び出し

delete→デストラクタ→メモリ解放

ギガチュウ: という流れはわかりましたけど、

ギガチュウ: Game game; だとどういう流れになるんですか?

yappy: まずは int とか struct とかと同じ感じで捉えてください

yappy: まずはメモリっすね

ギガチュウ: 型 ってやつですか…

yappy: ローカル変数ならスタックに、グローバル変数なら静的領域とかなんとかいうところに取られます

ギガチュウ: でたーメモリの領域

ギガチュウ: ちょっと待って下さいね…

yappy: ローカル変数 int i; がスタック上に4バイトと同じ感じで、自作クラスのサイズで取られるってことです

yappy: 最初からほとんど場所が決まっているようなものなので、

yappy: 実行時にnew用のヒープ領域からNバイト連続して空いているところを検索するnewとはえらい違いですね…

ギガチュウが2013-02-23 23.03.20-1.jpgを送信しました

ギガチュウ: これ

yappy: デター

ギガチュウ: 『14歳からはじめる わくわくC言語ゲームプログラミング教室

yappy: ばろす

ギガチュウ: 高校時代からページを開いてはあまりのクソさに本を投げ捨てるのを6年間繰り返す程度には愛読ています

yappy: やはり知っているとかなり違うから説明しておくか…

ギガチュウ: おにゃしゃす><


なんやこの意味のないdis

newとdeleteの練習は必要ですよ

2012-11-26

ここは私の故郷。私はここで生まれ育った。

| 22:58

D

D

神ゲー

2012-10-30

team introduction

| 16:57

	icp.py is the 5th icp.* team family. You can pronounce it
as you like, for example, i, c, p, dot, p, y, as the file name
and extension.

	Anyway, we study Hokuto, well known as sports action game. Its study
started in 1995, but about 2 years later, it had changed completely.
The study of Hokuto includes many sub areas; bounding physics,
one chance game theory, accumulation theory, and so on. Bounding physics
analyzes the relations of the gravity and a hit count, and it reveals
that humans can be bounding. This study is very helpful for solving
problems based on the real world. One chance game theory shows that
the winner is determined with only one chance. This theory is very useful
at a pointing game, such as the programming contest. It is known that
accumulation phenomenon happens at a pointing game, accumulation theory
is also very important. In addition, a new study appeared recently:
seikimatsu marketing.

	We believe that many of these studies help us challenge the contest.
In fact, we introduced Hokuto disk onto our workspace at the contest
last year and we had a good result. We promise that we will do our best
and show the correctness of our theory.

追記: 年号に誤りがありました。

誤: 1995

正: 2005

2012-10-26

マジキチ納得ニュース

| 00:18

納得がしたい方は、金曜日の、午後7時くらいになってしまうかもしれませんが、いつもの場所にお集まりください…!

なお、当日は早朝から北斗の救助に行ってくるので夜はあまり動けないかもしれません。

2012-10-21

トキのメモ

| 01:32

ひょんなこと(笑)からメインキャラになっちゃいましたけど、やはりどんなキャラもちょっとやろうとすると…ね。


ピヨり確認…なるべく星を取りつつ素早く落とす

受身無視で落とす早さ重視に使いやすいチェーン

  • 2C > バニ
  • 2CC > 空キャンバニ (2CC>[2D]>バニ、2CCの後2を入れながらC+Dを2連打)
  • 近D > バニ
  • グレ > JB > 天翔(1) > 降りナギ > バニ

気絶時のコンボ選択

上のコンボで素早く落としつつ相手の体力・相手のゲージ・自分のゲージを確認

相手のゲージ

トキのブーストと相手のブーストを比べると相手のブーストの方が価値が高い。特にレイユダあたり相手ではものすごく高い。

相手のブースト

1.0未満 << 1.0 << 1.2 < 1.5 < ...

  • 0(→1): 2Dからノーゲージで死ぬ
  • 1(→2): 2Dからブースト1本あれば(星2一撃ができれば)死ぬ
  • 2(→3): セッカツがCHすると死ぬ

あと、1本目の場合次ラウンド何もできずに死んだ時さらに+1。最悪でも+1。

自分のブースト・オーラ

上のものを優先した上でできるだけ欲しい。ブーストは差し合い・確反のほか隙のない固めができるようになったり、あとオーラは溜まりやすいけど0に近いと1.0ないと結構防御面は怪しいところも。


蓄積
ピヨると蓄積乗りっぱなしなのでオーラもブーストもよく溜まる。相手の増加量はそのまんま。ゲージ使用後の増加ゼロ時間の影響は受ける。蓄積乗りっぱなしでピヨってるのか蓄積切れたけど気絶値が溜まってピヨったのか判別できるといいかも。
壁コン
ニコンだとブーストを吐いているため見えないが、ブーストがお互いに非常によく溜まる。トキだと投げが該当。
普通のコンボ
ブーストがあまり溜まらない。オーラがよく溜まる。
グレコン
よくわかんないけど多分ブーストがほとんど溜まらない。

投げ > ...
ブーストがよく溜まる。相手にもよく溜まる。使いどころは相手のブーストがMAXに近くて自分はあんまりないときくらい。
ダッシュ > ブースト > 投げ ...
ブースト0.2本消費。ブースト使用後はお互いに一定時間ブーストが溜まらない。ニュートラルからのブーストではなくダッシュモーションからブーストすると投げられる(別件でも有用)。ブーストを溜めさせたくなくて火力が必要なとき。
バニ > 自動ブースト > ...
ブーストを溜めさせたくなくて星重視
バニ > セッカツ
バニからはノーキャンセッカツがダウン追い打ちでヒット数も少なくダメージ大
近C > 近D > 遠D > バニ > ...
高火力始動。残り体力に応じて最初の方を省略可能。地上コン部分で蓄積つきの両ゲージ回収かつ相手のブーストはあまり溜まらない。サウザーハート様には遠Dバニはつながらない。
近C > 近D > 遠D > 6D > ...
高火力始動から通常のグレコンへ。壁コンでないので相手のブーストがあまり溜まらず、蓄積で両ゲージをたくさん回収。オーラモリモリ。体力を調整して断迅やセッカツでKO。

固めと割りどころ

  • アジリティーディフェンス: ガード硬直-5F
  • オーラガード: ガード硬直+5F
2A > 2C
連ガ。2Aアジガで連ガが切れる。アジガのあと無想をとりあえず入力して読みが外れてもひよらない感じの対応をされると怖い。あとはだいたい一点読みに近い無敵技か。無強化チョップがきれいに刺さる。また、密着で2Cをすかせる1F(?)低姿勢技でも可。シンの2Bとサウザーの2C。
2C > 2D
2Cをガードさせるとこれが連ガになる。
2D > Bナギ > 2A
ノーマルガードだと(多分)2Fくらい空く。2Dアジガだと相手側有利で割り込まれる。Aナギで逃げるくらいしかない。
  • 2A > 2C > 2D > Bナギ > 2A...
    • 2Aアジガ後2A>2Cのところで何かやるかBナギ>2Aで何かする。
  • 2A > 2A > 2C
    • 初段2Aアジガ警戒。オラガに2Aを2発当てると2Cが届かなくなる。2C空振るといろいろ確定。
  • (2A >) 2A > 2D
    • 2Aノーマルガードから2Dは非連ガで無敵割り込み・2Dをアジガ可能。しかし2Aをオラガすると2Dが連ガ。

現代のトキはオラガ確認から2Dを連ガにして2D>Bナギで最密着できるようになるとよい。一応2A(オラガ)>2A(ノーマルガード)>(オラガ確認)2D(アジガ)で(爆笑)のつく理論上の読み合いが可能。

安全にゲージを溜めつつ勝手に動いて引っかかってくれるのを待っている(固め)だけなので、これを割られるプレッシャーをかけることで相手に崩しを急がせることができる。するとトキの崩しはリスクのあるものが多いので最速暴れ擦りを行うことでワンチャンが生じる。そこまでやらなくとも固めは緩くなるはずなので適度なオーラジャンプ等いろいろ試してみよう。

いろいろなところでガーキャン
マジキチな割り方は(ゼロではないくらいに)たまに見せて基本これでかえすくらいがバランスがいいと思う。ゼロだとガーキャンだけガン見して当身準備つき2A>2C>2Dループになってしまうかも…。
ユダを使ってダガキャンする