onclickで同じ処理を繰り返さない方法について

simanezumi1989 shared this question 5 years ago
Answered

オイラーの多面体定理の教材を作っています。以下の教材では点,辺,面をクリックすることで 色の変化+カウント 行いますが,同じ点や辺などをクリックしてもカウントされるので困っています。

https://www.geogebra.org/ma...


OnClickのスクリプトはvを点の数とすると

SetColor[.....]

v=v+1

とすることにより,色とカウントを行っています。


真偽値とIfコマンドをうまく使おうとしたのですが,Ifコマンドは関数に対して使うようでエラーが出ます。

そこでv(x)という関数をつくってIf[真偽値,v(x)=v(x)+1]をやってみたところ,クリックするたびに未定義の関数が出てきます。


以上をまとめると

「onclickスクリプトの処理で同じオブジェクトに対する処理は一回のみにする方法が知りたい」

です。

Comments (2)

photo
1

真偽値を格納する変数を定義したらどうでしょう?

a=If[論理式, v(x)=v(x)+1]


変数を宣言しないと,ボタンを押すたびに自動生成してしまいます.

photo
1

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


別方法で実装できました


[別方法]

listV={0,0,0,0}(点のリスト:0は非クリック,1はクリックを意味する)

SetValue[listV,1,1](listVの1つめを1に変える)


ただ,クリックする数が増えるとややこしくなる可能性が出てきたので,教えていただいた方法でも試してみます。

© 2021 International GeoGebra Institute