ANTARES' BBS

前の掲示板のログ

投稿者
Eメール スパム対策のため、入力すると投稿できません
題名
内容(自動改行、タグ不可、URL自動リンク)

 記事中にご自分のHPのURLを書くと、自動リンクされます。
[更新] [終了]
 書き込み直後にブラウザの「再読み込み」や「更新」を行なうと二重投稿になります。 上の[更新]をお使いください。
 良識ある書き込みをお願いします。

Re:ソートの記述について 投稿者 ANTARES [softbank219198206123.bbtec.net] 投稿日 2016年2月3日(水)14時07分 削除

 超亀レスですみません(^_^;;

>そういうケースでは末尾に挿入してからソートした方が速いです
おっしゃる通りなのかもしれませんが、私の方で確認ができませんので、
保留とさせていただきます。

>トップの Japanese only は誤解を生むだけなので控えた方がよいと思います
申し訳ありませんが、曲解・こじつけの類に耳を貸すつもりはありません。


Re:「ロンパル殺人事件」のクリック処理 投稿者 ANTARES [softbank219198206123.bbtec.net] 投稿日 2016年2月3日(水)13時55分 削除

 超亀レスですみません(^_^;;

 感想とバグ報告をありがとうございます。
できるだけ早く修正したいと思います。


ソートの記述について 投稿者 ラグ [58-188-20-234f1.osk2.eonet.ne.jp] 投稿日 2015年10月15日(木)00時46分 削除

細かいことですが誤りを発見しましたので報告します

http://antares.cn/hsp/long/sort.html
> データを追加するときに、それが入るべき位置に挿入するようにすれば、いちいちソートする必要はありません。
このとき、挿入する位置より後の部分をずらさなければなりませんが、
とありますが、運悪く先頭に近い位置への挿入を繰り返してしまうと
(つまり入力データがほぼ逆順にならんでいると)
挿入にすごく時間がかかります
そういうケースでは末尾に挿入してからソートした方が速いです

それと、トップの Japanese only は誤解を生むだけなので控えた方がよいと思います
参考 http://www.wdic.org/w/WDIC/Japanese+only


「ロンパル殺人事件」のクリック処理 投稿者 碁盤鮫 [p1167123-ipngn200805tokaisakaetozai.aichi.ocn.ne.jp] 投稿日 2015年10月14日(水)11時37分 削除

はじめまして。「ロンパル殺人事件」を楽しませていただいています。昔
やったときはただ手探りでガチャガチャ解いただけだったのですが、ふと思
い出して再挑戦したところ、法則性を一つ一つ理詰めで暴き出す楽しさを味
わうことができました。

ところで、プログラムの動作にビミョ〜〜に気になる点がありましたので念
のためお知らせします。

「証言表」の容疑者の名前の欄の右端をクリックすると、その右隣(0時)
のマスをクリックしたのと同じ結果になります。

murder.as
> *l_coordchk
>     i=mx-ttx/fsize2: j=my-tty/33: flg=0
>     if (i<0)|(i>23)|(j<1)|(j>5): flg=1
> return

小数部分の打ち切りによって
1≦(mx-ttx)/fsize2<2 のとき i=1
0≦(mx-ttx)/fsize2<1 のとき i=0
-1<(mx-ttx)/fsize2≦0 のとき i=0 ←
-2<(mx-ttx)/fsize2≦1 のとき i=-1
このように負の領域を含んで「0時(の列)」と解釈されるのだと思いま
す。(これも実は、私にとってはかなり頭をひねらないと解けない問題でし
た。。)


Re:HSPnosavevars.as 投稿者 ANTARES [softbank219187188073.bbtec.net] 投稿日 2008年4月26日(土)01時28分 削除

 解決できて良かったですね。


Re:HSPnosavevars.as 投稿者 kids [121-83-122-238.eonet.ne.jp] 投稿日 2008年4月25日(金)22時03分 削除

アドバイス有難うございます。
2 vsaveで試してみました。
型が違う場合は同じ配列に保存できなかったので、型ごとに別々の配列で
とりあえず何とかできました。


Re:HSPnosavevars.as 投稿者 ANTARES [softbank219187188060.bbtec.net] 投稿日 2008年4月22日(火)23時25分 削除

>HSPの配列の勉強の為savevars.asを研究させていただいています。
 HSP3では文字配列の構造が大きく変わったため、
このスクリプトは正しく動作しません。

「HSP3 文字配列 保存」で検索したところ、以下の3つの方法があるようです。
1 arraysave命令(場合によっては思い通りにならないらしい)
2 vsave命令(すべての変数を保存するため、効率は悪いが簡単で確実)
3 1要素ずつ保存する(1や2の欠点はないが、多少面倒)


HSPnosavevars.as 投稿者 kids [121-82-216-110.eonet.ne.jp] 投稿日 2008年4月22日(火)11時25分 削除

HSPの配列の勉強の為savevars.asを研究させていただいています。
最後のadimのところで
astr.0=ABCDEFG
astr.1=HIJKLMN
astr.2=OPQRSTU
と表示されると思いますがastr.1、aste.2が空白になってしまいます。
これで、正しいのでしょうか。
表示させるたいのですがどうすればよいのでしょうか。
ご教授お願いします。


Re:EXFORCE 投稿者 矢野 [cm-125-215-81-190.client.mcbnet.ne.jp] 投稿日 2007年10月18日(木)23時02分 削除

丹念に調べていただきありがとうございます。

こちらでも、さらに種々検索してみたいと思います。
またこの機会に、APIについても、使えるようにしたいと
思っておりますので、その時は、報告したいと思います。


Re:EXFORCE 投稿者 ANTARES [softbank219187188085.bbtec.net] 投稿日 2007年10月18日(木)21時34分 削除

>Win32APIですか。紹介された英語版と日本語版に目を通してみたのです
>が、手強そうですね。
 もう少し、調べてみたら、どうやらテキストを印刷する手順だったようです。
 HSPのウィンドウを印刷するのなら、ビットマップを印刷するのが最も近いと
思いますが、近いだけで同じではないだろうと思いますし、
残念ながら、初めて挑戦するのに適切なテーマとはとても思えませんでした。
残念です。m(_ _)m


Re:EXFORCE 投稿者 矢野 [cm-125-215-81-190.client.mcbnet.ne.jp] 投稿日 2007年10月18日(木)00時10分 削除

回答ありがとうございます。

やはり、EXFORCE.as の3.1用が出される可能性は低そうなのですね。
代替命令は、私も何度かググってみたのですが、やはり見あたらない
ようですね・・・・・

Win32APIですか。紹介された英語版と日本語版に目を通してみたのです
が、手強そうですね。
実はまだ自分で組んだことがないのですが、
少し時間をかけて、この機会に取り組んでみたいと思います。

どのような手順で、組んでいくのか、その道筋のヒントをお願いします。


Re:EXFORCE 投稿者 ANTARES [softbank219187188085.bbtec.net] 投稿日 2007年10月17日(水)21時46分 削除

>@ EXFORCE.as の3.1用はそのうちに、作成されるのでしょうか。
 わかりませんが、可能性は低そうです。

>A 上記@の可能性が低いなら、「pxset,pxstart,pxpage,pxfinish」の
>  代替命令はあるのでしょうか。
 ないと思いますが、Win32APIでできるかもしれません。

英語版
http://msdn2.microsoft.com/en-us/library/ms535663.aspx

日本語版
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpgdi/html/_win32_startpageprinter.asp

英語版のRemarksに印刷手順が書いてあるようなので、
参考になりそうです。


EXFORCE 投稿者 矢野 [cm-125-215-81-190.client.mcbnet.ne.jp] 投稿日 2007年10月17日(水)01時05分 削除

教えてほしいことがありますので、よろしくお願いします。

2.61用の私のスクリプトにおいて、
ウィンドウズの印刷設定画面からの印刷もできるし、
印刷設定画面にボタンを配置して、独自の印刷もできるようにしていま
す。
独自の印刷命令は、EXFORCE.as の「pxset,pxstart,pxpage,pxfinish」
という一連の命令で実行しています。

さて、このスクリプトを、3.1用に変換してきたのですが、
この1カ所だけ、変換できずにそのままになっています。
印刷自体は、ウィンドウズの印刷設定画面から印刷できるので
支障はないのですが、独自の印刷設定画面からの印刷は、
3.1用で実行すると、エラーとなります。
やはり、何とかクリアーしたいと思います。

そこで質問なのですが、
 @ EXFORCE.as の3.1用はそのうちに、作成されるのでしょうか。
 A 上記@の可能性が低いなら、「pxset,pxstart,pxpage,pxfinish」の
   代替命令はあるのでしょうか。
この2点について、分かれば教えてください。


Re:お礼 投稿者 ANTARES [softbank219187188085.bbtec.net] 投稿日 2007年9月25日(火)20時02分 削除

>おかげで、9000行のスクリプトの
>2用から3用への変換が、無事完成しました。
 おめでとうございます\(^_^)/

>結局、バッファ確保の不備だったのですが、それに気づくのに
>1ヶ月余りかかりました。
 犯しやすい、気づきにくい、思い当たってすらあぶり出すのが
難しいと三拍子揃った、いちばんやっかいなバグですね。
可能性のあるところでは必ずチェックを入れるというのが
唯一の予防法ですが、3ではなまじ自動拡張があるので
チェックする気がおきないため、自動拡張にバグがあると
お手上げかも。

>ただ、今後扱うデータ量が増えると、
>2用では対応できなくなることがあるのかな?ということで、
 本質的な制限は寧ろ3の方が厳しいような気が……


お礼 投稿者 矢野 [cm-125-215-81-190.client.mcbnet.ne.jp] 投稿日 2007年9月24日(月)21時02分 削除

こんばんは、矢野です。
この度は大変お世話になりました。おかげで、9000行のスクリプトの
2用から3用への変換が、無事完成しました。

今回の変換のきっかけとなったのが、8月11日の貴兄への質問です。
「xnoteaddの限界」で始まり、「xnoteaddの限界」で終わりました。
結局、バッファ確保の不備だったのですが、それに気づくのに
1ヶ月余りかかりました。

3用なら種々の制限が緩和されたことと、
貴兄が「anthspex3.as」を出されたことを知って
この機会に、2用から3用への変換を試してみようと始めました。
以前に一度変換を試みて挫折しましたので、2度目のチャレンジでした。
まず、ミムラさんの「ソースコンバーター2」を使用して変換したあと
修正を加えていきました。それでも何カ所かの不具合が残りましたので
貴兄の掲示板を始め、何カ所かの掲示板で質問し、
修正法を教えていただきやっと完成しました。振り返りますと、
貴兄の掲示板をかなり占拠してしまいました。
ほんとに感謝に堪えません。
クイックソートも貴兄のおかげだと思っています。
お礼が伝えたくて、書き込みをしました。

さて、3用への変換後の感想すが、ソフトを実行しても
2用との差異が感じられないというのが実感です。
ただ、今後扱うデータ量が増えると、
2用では対応できなくなることがあるのかな?ということで、
今後は両者を併用していきたいと思っています。

今後ともよろしくご指導ください。


Re:getstr で解決 投稿者 ANTARES [softbank219187188085.bbtec.net] 投稿日 2007年9月17日(月)23時45分 削除

>strmid命令が遅くなったのは、3.1用になってからなのです。
 元々HSP3の話でしたね。すっかり忘れていました(^_^;;


>この文章で、getstr命令を思いつき、「0」を勝手に改行コードと
>表現しておりました。不適切でしたのでここに訂正しておきます。
 了解しました。


>実際は、第4パラメータには何も書かなくても、改行部分まで
>取り出してくれていたのですね。
 デフォルトは0だと思います。ほとんどデフォルト値が
明記されていますが、この命令は見落とされているようですね。
多くの場合、数値引数のデフォルトは0です。


Re:getstr で解決 投稿者 矢野 [cm-125-215-81-190.client.mcbnet.ne.jp] 投稿日 2007年9月17日(月)20時16分 削除

すみません。1文読み落としていました。
「HSP3 レファレンスブック」の説明ですが、私の勝手な解釈でした。
”peek命令はpeek関数になりましたが、同時にver2.xでサポート
していた文字列読み出しの機能は廃止されています。
同等の処理を行う場合はgetstr命令で、区切りキャラクターコードを
「0」として使ってください。”
この文章で、getstr命令を思いつき、「0」を勝手に改行コードと
表現しておりました。不適切でしたのでここに訂正しておきます。
実際は、第4パラメータには何も書かなくても、改行部分まで
取り出してくれていたのですね。


Re:strmid と memcpy 投稿者 矢野 [cm-125-215-81-190.client.mcbnet.ne.jp] 投稿日 2007年9月17日(月)11時34分 削除

他の掲示板で、解決法を見つけました。
やはり、「poke」命令の併用が必要だったようです。
次のように修正すれば、きれいに処理されました。

    memcpy kudamono1,kudamono,place1,0,hajime : poke
kudamono1,place1


getstr で解決 投稿者 矢野 [cm-125-215-81-190.client.mcbnet.ne.jp] 投稿日 2007年9月17日(月)09時12分 削除

先ほどのスクリプトですが、1カ所修正してください。

poke obuf,1000,0 → poke obuf,10000,0


getstr で解決 投稿者 矢野 [cm-125-215-81-190.client.mcbnet.ne.jp] 投稿日 2007年9月17日(月)08時40分 削除

strmid命令が遅くなったのは、3.1用になってからなのです。
特に、処理する対照が大きくなればなるほど、遅くなっています。
スクリプトを、3.1用に書き換えて、num=100000 としてみました。
試してみてください。

#include "anthspex3.as"

    num=100000
    sdim ibuf,10001
    sdim obuf,10001
    ;ibufの作成
    repeat 10000
        c=rnd(62)
        if c<26 { c+='A' }
        else { if c<52 { c+='a'-26 }
        else { c+='0'-52 } }
        poke ibuf,cnt,c
    loop
    ;strmid
    gettick start
    repeat num
        obuf=strmid(ibuf,0,10000)
    loop
    gettick vend
    mes vend-start
    ;memcpy
    gettick start
    repeat num
        memcpy obuf,ibuf,10000
        poke obuf,1000,0
    loop
    gettick vend
    mes vend-start
    ;getstr
    gettick start
    repeat num
        getstr obuf,ibuf,0
    loop
    gettick vend
    mes vend-start
stop


削除キー
管理者のみ
文字列
ANDOR
[更新]
[終了]

※ すべてのボタンは1回だけ押してしばらくお待ちください.
※ 検索文字列はスペースで区切ることで複数指定できます.

MiniBBS v10.31