generated at
Generator
コルーチンや非同期処理を扱うためのもの
ES6以降で利用できる
対戦/勝負 に使うとべんり
数え上げにも便利ではないか?
難しいのでプログラミング練習には好ましくないだろうね


test.js
function* gfn(from, to){ while(from <= to) yield from++; } var g = gfn(1, 20); for(var num of g) alert(num);

スケジューラみたいなのが書ける
プログラムのあちこちに yield を書いておけばそのたびにプロセス切り替えされる
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) }

対戦を考える
複数のページのプログラムを勝負させればいいだろう
乱数対ニセ乱数とかに使えるか?
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 // 勝負を計算して結果を場にセーブ }