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


HSPTV!掲示板


未解決 解決 停止 削除要請

2019
0213
ぼぶ二次元配列を#defcfuncと#deffuncに渡すのってどうやるんですか。4解決


ぼぶ

リンク

2019/2/13(Wed) 01:08:02|NO.86564


#module 僕の考えたやつ #deffunc かくぞ array a      for x,0,10,1   for y,0,10,1    print a(x,y)   next  next return #defcfunc すうちいれるぞ array a      for x,0,10,1   for y,0,10,1    a(x,y) = 51   next  next return a(x,y) #global dim はいれつ,10,10 はいれつ = すうちいれるぞ(はいれつ) //ここの書き方もいまいちわからない。 かくぞ はいれつ

ようするに配列に適当な数字をいれて画面に書きたいです。
module機能をつかって書こうとしています。
こまってます。



この記事に返信する


リンク

2019/2/13(Wed) 11:19:57|NO.86566

私もこれずっと気になっています。 array で渡すと、一次元配列って想定にされちゃいます。
var で渡して、 メモリアドレスを計算する関数を作って、memcpy したらできるかもしれません。
数値型なら、1要素4バイトで、0,0 1,0 2,0 3,0 ... 0,1 1,1 2,1
って並びになってたと思うので、

#defcfunc オフセット計算するぞ int 元のx, int 元のy, int 入れたいx, int 入れたいy if 入れたいx>=元のx || 入れたいy>=元のy:return -1//メモリをぶっ壊さないように、-1を返したらmemcpyしないでね return (入れたいx*4)+(入れたいy*元のy*4)
こんな感じ?



沢渡

リンク

2019/2/13(Wed) 11:39:16|NO.86567

・関数は配列を返り値にはできない。
・関数、命令内でvarやarrayで渡された変数や配列の内容を変更した場合、
元の変数や配列の内容にも反映される。
 よって、「すうちいれるぞ」を関数ではなく、渡された配列の内容を変える
命令にすればよいでしょう。


#module 僕の考えたやつ #deffunc かくぞ array a for x,0,10,1 pos 0,x*16 for y,0,10,1 print str(a(x,y))+" ",1 next next return #deffunc すうちいれるぞ array a for x,0,10,1 for y,0,10,1 a(x,y) = 51 next next return #global dim はいれつ,10,10 すうちいれるぞ はいれつ かくぞ はいれつ



ぼぶ

リンク

2019/2/13(Wed) 20:14:23|NO.86570

できました!ふたりともありがとうございました。



ぼぶ

リンク

2019/2/13(Wed) 20:14:46|NO.86571

かいけつしました。



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