あるページのプログラムをVBに置き換えて利用したいのですが、
どう書き換えたらvbに実装できるかわかりません
このページのスクリプトです。
http://lagstyle.com/icm/icm.html
var getTotalProbability = function(player, rank) {
var ranking = [];
var ret = 0;
// 内部関数で再帰
var makeRanking = function() {
// 自分の順位なら、最後の順位に自分を入れて確率を計算
if(rank == ranking.length) {
ranking.push(player);
ret += getProbability(ranking);
ranking.pop(player);
return;
}
for(var i = 0; i < 10; i++) {
if(i == player) {
continue;
}
for(var j = 0; j < ranking.length; j++) {
if(ranking[j] == i) {
break;
}
}
if(j != ranking.length) {
continue;
}
// 他人を次の順位に入れて再帰する
ranking.push(i);
makeRanking();
ranking.pop(i);
}
};
makeRanking();
return ret;
};
JavaScriptの 関数の中の関数、 再帰などを
vbに置き換えて実装することは可能でしょうか?
またその方法を教えていただきたいです。
VBというのはExcelVBAやVB6ということですよね?
JavaScriptの関数の中の関数は書き方によってはVBでは再現出来ない動作をしますが、これについては、JavaScriptでは関数内で定義されている関数も全部普通に関数定義する書き方でVBに書き換えれば問題ないと思います。
(あまり詳細には見ていませんが)
ただし変数については「関数の中の関数」からは「外側の関数で宣言された変数」も見えることを意識して、いくつかグローバル変数に変えてやる必要があります。
ちなみに再帰はVBでも問題なくできますので、特に注意する点は無いかと。
また、JavaScriptの配列にはpushやpopというスタック操作が行えるメソッドが用意されていますが、VBにはそれが無いのでスタック操作を自前で作る必要がありそうです。