Generator
ES6以降で利用できる
難しいのでプログラミング練習には好ましくないだろうね
code:test.js
function* gfn(from, to){
while(from <= to) yield from++;
}
var g = gfn(1, 20);
for(var num of g) alert(num);
スケジューラみたいなのが書ける
プログラムのあちこちにyieldを書いておけばそのたびにプロセス切り替えされる
code:tasks.js
function* task1(){
while(true) yield "I am task1"
}
function* task2(){
while(true) yield "I am task2"
}
var t1 = task1()
var t2 = task2()
while(true){
alert(t1.next().value)
alert(t2.next().value)
}
対戦を考える
code:battle.js
function* player1(){
// 場を見て次の手を考える
yield te // 手を出す
}
function* player2(){
// 場を見て考える
yield te // 手を出す
}
ba = {}
p1 = player1()
p2 = player2()
while(true){
te1 = p1.next().value
te2 = p2.next().value
// 勝負を計算して結果を場にセーブ
}