2013年11月26日火曜日

開発環境

初めてのコンピュータサイエンス(Jennifer CampbellPaul GriesJason MontojoGreg Wilson(著)長尾 高弘(翻訳))の9章(集合と辞書)、9.5(練習問題)、8をDartで解いてみる。

その他参考書籍

9.5(練習問題)、8.

コード

sample.dart

import 'dart:html';
import 'dart:math' as math;

void main() {
  InputElement input = querySelector('#t0');
  InputElement run = querySelector('#run_dart');
  InputElement clear = querySelector('#clear');
  Element pre = querySelector('#pre0');
  math.Random random = new math.Random();
  run.onClick.listen((MouseEvent event){
    String result = '${window.navigator.userAgent}\n';
    try{
      int n = int.parse(input.value);
      new List(n).forEach((e){
        Map<String, num> colors = new Map.fromIterable(
            ['R', 'G', 'B'], key:(String s) => s,
            value:(String s) => random.nextInt(6) / 10);
        result += '$colors, isBalanced: ${isBalanced(colors)}\n';
      });
    } catch (e){
      result += '$e\n';
    }
    pre.text = result;
  });
  clear.onClick.listen((MouseEvent event) => pre.text = '');
}

bool isBalanced(Map<String, num> colors){
  return colors.values.fold(0, (num prev, num n) => prev + n) == 1;
}















						

0 コメント:

コメントを投稿