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


HSPTV!掲示板


未解決 解決 停止 削除要請

2015
0204
イカタコif文でcntを使う8解決


イカタコ

リンク

2015/2/4(Wed) 00:17:49|NO.67256

if文で、cntを使いたいです。
具体的に言うと、
a1〜a200ぐらいまで用意されていて、そのうちのどれかが450以上ならmes "a"的なことです。
(違ったらmes "c")

dim a,200
repeat 100,0
if 450<=a(cnt){
mes "a"
}else{
mes "c"
}
loop

こんな感じで作っては見たのですが、うまくいきません。
誰か助けてください!!



この記事に返信する


ZAP

リンク

2015/2/4(Wed) 00:42:17|NO.67257

まず、うまくいかないとはどういうことなのか。
「C」しか表示されない、ということでしょうか?

提示されたスクリプトだと、
dimで配列変数aを確保しているだけで、配列変数の中味を代入してないのだから、
a(0)〜a(199)の中味は全部ゼロであり、Cが表示されるのは何もおかしくないですよ?



GENKI

リンク

2015/2/4(Wed) 00:59:13|NO.67258

> こんな感じで作っては見たのですが、うまくいきません。

実行してみましたが、説明されているとおりに動いているように見えます。
この説明文章では何がうまく行っていないのかわかりません。というかどういう状態がうまく行っている状態なのかがよくわかりません。
もう少し説明いただけないでしょうか?

説明の仕方としては…そうですね。
入力した値と出力してほしい結果、実際に出てきた変な結果。
この辺りの情報があるとずいぶん解決しやすくなります。

【例文】------
入力に
a(0) = 100
a(1) = 500
a(2) = 200

を入れたら
○○○
○○○
○○○

と出力してほしいのに
✕○○
○✕○
○○✕

と出力されてしまう!
--------

という感じで。具体的な入出力の値があると回答する方でも再現できるので解決に繋がりやすいです。


それと
repeat 100,0

repeat 200
でいいですよ。0スタートなら最後の「,0」は省略できます。



イカタコ

リンク

2015/2/5(Thu) 13:42:09|NO.67278

ZAP,GENKIさんすいません。
dim a,200
a(0) = 100
a(1) = 500
a(2) = 200

repeat 100,0
if 450<=a(cnt){
mes "a"
}else{
mes "c"
}
loop

見たところ、実行画面には
c
a
c
c
c
c
c
.
.
.
.

このプログラムでこうなることの理解は出来るのですが、僕が求めているのは、

実行画面
a

というものです。
つまり、a(1)〜a(-)の中に一つでも450以上のものが含まれていれば

実行画面
a

そして、ひとつもなければ

実行画面
c

といったものです。
わかりにくくてすいませんでした。
これからも気を付けます。



kanahiron

リンク

2015/2/5(Thu) 14:21:58|NO.67279

それなら、450を超えた回数を適当な変数に記録して(変数に足していって)、ループ終わったあとでその変数の内容が0ならc、1以上ならaと表示するようにすれば目的の動作になると思います



イカタコ

リンク

2015/2/6(Fri) 16:22:33|NO.67291

pfctl=640
dim bar1ys,100
bar1ys(1)=0
bar1ys(2)=64

repeat 10,0
if pfctl-5<=bar1ys(cnt) & bar1ys(cnt)<=pfctl+5{
s+1
}
loop
if s>=1{
mes "a"
}else{
mes "c"
}

こんなかんじで作ってみたのですが、こいつをゲームのプログラムの中に入れると
Error 7
が出るんですけど...



skyblue

リンク

2015/2/6(Fri) 16:29:08|NO.67292

自分が実行してみた時には何のエラーも出ませんでしたけど
error7は配列外参照エラーです。hsp/doclib/error.htmにエラー番号一覧がありますので
次からは参照して下さい。およびエラー行の明治もお願いします。



GENKI

リンク

2015/2/6(Fri) 19:23:06|NO.67295

skyblueさんもおっしゃっていますが、No.67291 で書かれたスクリプトを実行したところ私の環境でも問題ありませんでした。
というかスクリプト見ただけでも問題がないことがわかります。

> こいつをゲームのプログラムの中に入れると
> Error 7
> が出るんですけど...

ということですので、作成中のゲーム側に問題があるか、組み合わせたことにより問題が生まれたかのどちらかです。
まずはエラーメッセージに表示された行番号を調べてみるといいと思います。(混ぜたスクリプトとの兼ね合いがあるのでここで行番号だけ言われても困ります。)

エラーメッセージはこんな感じで出てきたと思います。

#Error 7 in line ○○

lineの右に書いてある数字が行番号です。



イカタコ

リンク

2015/2/13(Fri) 00:54:22|NO.67388

皆さんありがとうございました!
何がエラーなのか考えて、頑張ってみます!!



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