2ちゃんねるログビューア

カルネージハートエクサ1機目   を含む(ツリー表示)

■TOP■ 全部 1- 101- 201- 301- 401- 501- 601- 701- 801- 901- ツリー表示
135: 名前:枯れた名無しの水平思考 :2010/07/07(水) 21:08:55 ID:XE+K+/ot0(4)
> RT @GANDONE: 試合結果の出力が出来ると超嬉しいんですけど!テキストでもスクショでも。
> スクリーンショット機能が間に合いそうなので、それを利用してください。
写真と違ってズレることはないので画像のピクセルを調べれば結果は判定可能か。
必要そうならスクショから大会結果を自動出力するツールとかつくろうかしら。

141: 名前:枯れた名無しの水平思考 :2010/07/07(水) 22:46:40 ID:XE+K+/ot0(4)
Main->Sub でSubからRETURNするとMainに戻る。これがスタック1段。
Main->SubA->SubBと呼べて、さらにSubBからRETURNすると一旦SubAに戻り、そこからもう一度RETURNするとMainに戻る。これがスタック2段。

つまり、Main->SubA->SubB->SubA->SubB->SubA->SubB->SubA->SubB->SubA->SubB->
RETURN->RETURN->RETURN->RETURN->RETURN->RETURN->RETURN->RETURN->RETURN->RETURN。
ということができる。ただし11回目(Mainも数えるなら10回目かも)のSub呼び出しは失敗する(これがオーバーフロー)。
145: 名前:枯れた名無しの水平思考 :2010/07/07(水) 23:14:56 ID:XE+K+/ot0(4)
>>142
あの書き方だとできそうね。禁止する理由もなさそう。
>>143
うーん、そうきたかw。じゃぁ別な説明で。
「どこからSubが呼ばれたか」という情報を記録する場所が10個ある。始めは全部空っぽ。
  [空][空][空][空][空][空][空][空][空][空]

まず、MainからSubを呼んだら、その場所を一つ使ってMainから呼ばれたことを記録する。
  [Main][空][空][空][空][空][空][空][空][空]
さらに、Subの中からSubをもう一度呼んだら、もう一つ場所を使ってSubから呼ばれたことを記録する。
  [Main][Sub][空][空][空][空][空][空][空][空]
そこからさらにSubを呼ぶと、もう一個使う。
  [Main][Sub][Sub][空][空][空][空][空][空][空]
そこからSubからReturnするときには、最後に記録した情報の場所に戻ると同時に、その最後の記録を消す。
  [Main][Sub][空(消去済)][空][空][空][空][空][空][空]

もし、MainからSubを呼び、そのSubの中からもう一度Subを呼び、そこからさらにSubを…と繰り返すと
空いている場所が減っていき、Subが10回呼ばれたときに最期は全部情報が入っている状態になり、空いている場所がなくなる。
  [Main][Sub][Sub][Sub][Sub][Sub][Sub][Sub][Sub][Sub]
空いている場所がない時にSubの呼び出そうとしても、「どこからSubが呼ばれたか」はもう記録できない。
その場合は、呼び出しに失敗する(おそらくSUBチップを素通りする)。
152: 名前:枯れた名無しの水平思考 :2010/07/07(水) 23:28:07 ID:XE+K+/ot0(4)
>>147,149
「無視されます」だからオーバーフロー時にはMainに戻るんじゃなくて、SUBを素通りするだけな気が。
そして問題はスタックの制限だけっぽいから、Sub1でもSub2でも区別なくMax10段…じゃないかなぁ。
あー早くモノを手に入れて検証したいw

■TOP■ 全部 1- 101- 201- 301- 401- 501- 601- 701- 801- 901- ツリー表示 dat