HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2008
0118
黄緑草猫これって無理なのではないか4解決


黄緑草猫

リンク

2008/1/18(Fri) 21:53:13|NO.13132

g=0
randomize a=rnd (10000) if a=0 : goto *p ・        ・ if a=9999 : goto *tttth stop *p mesbox(など)(変数がwとする) if w=1 :goto *ok if w!1 :goto *bad stop
×10000回
絶対無理ですよね



この記事に返信する


KENTA

リンク

2008/1/18(Fri) 22:25:13|NO.13133

作ろうと思う根気されあれば、絶対無理ではないと思います。

> if a=0 : goto *p
>       ・
>       ・
> if a=9999 : goto *tttth

on命令あたりを使ってみれば簡単になるのでは?



naznyark

リンク

2008/1/19(Sat) 02:18:35|NO.13137

> 絶対無理ですよね

> 作ろうと思う根気されあれば、絶対無理ではないと思います。

共通部分のない一万通りの分岐処理を書かなきゃならない状況に
陥れば個人の意思とは関係なく書くしかないです(笑)。

最も全ての部分を手打ちで書く必要はありません。
以下分岐部分のコードを自動生成するコードの例です。

sdim code, 1000000 sdim codetmp, 1000000 codetmp = " on ( a / 1000 \\ 10 ) goto *lbl_0xxx" repeat 9, 1 i = cnt codetmp += strf( ", *lbl_%01dxxx", i ) loop codetmp += "\n" code += codetmp repeat 10 i = cnt codetmp = "//====================//\n" codetmp += strf( "*lbl_%01dxxx\n", i ) codetmp += strf( " on ( a / 100 \\ 10 ) goto *lbl_%01d0xx", i ) repeat 9, 1 j = cnt codetmp += strf( ", *lbl_%02dxx", i * 10 + j ) loop codetmp += "\n" code += codetmp loop repeat 100 i = cnt codetmp = "//====================//\n" codetmp += strf( "*lbl_%02dxx\n", i ) codetmp += strf( " on ( a / 10 \\ 10 ) goto *lbl_%02d0x", i ) repeat 9, 1 j= cnt codetmp += strf( ", *lbl_%03dx", i * 10 + j ) loop codetmp += "\n" code += codetmp loop repeat 1000 i = cnt codetmp = "//====================//\n" codetmp += strf( "*lbl_%03dx\n", i ) codetmp += strf( " on ( a \\ 10 ) goto *lbl_%03d0", i ) repeat 9, 1 j= cnt codetmp += strf( ", *lbl_%04d", i * 10 + j ) loop codetmp += "\n" code += codetmp loop codetmp = "//====================//\n" repeat 10000 codetmp += strf( "//------\n*lbl_%04d\n", cnt ) loop code += codetmp notesel code ;notesave "testcode.hsp"



naznyark

リンク

2008/1/19(Sat) 03:16:48|NO.13138

そういや 3.1 ならラベル型変数が使えたか・・・。
そのほうがいろいろすっきり仕上がります。



黄緑草猫

リンク

2008/1/19(Sat) 07:16:33|NO.13139

そういうことも出来たんですか
参考になりました



ONION software Copyright 1997-2021(c) All rights reserved.