開発環境
- OS X Mavericks - Apple (OS)
- Dart Editor (開発環境)
- Dartium | Dart/ Structured web apps (ブラウザ, Dart VM 用 (Chromium with the Dart VM))
- Safari (ブラウザ, JavaScript 用)
- Dart (プログラミング言語)
Head First C#―頭とからだで覚えるC#の基本 (Andrew Stellman (著)、Jennifer Green (著)、佐藤 嘉一 (監修)、木下 哲也 (翻訳)、オライリージャパン)の2章(オブジェクト指向になる!: わかりやすいコードにする)、エクササイズ(p.117)をDartで考えてみる。
その他参考書籍
- What is Dart? [Kindle版] (O'Reilly Media) Kathy Walrath Seth Ladd (著) このブログでの感想
エクササイズ(p.117)
コード
sample.dart
import 'dart:html';
void main() {
update();
b0.onClick.listen((MouseEvent event){
if (bank >= 1000) {
bank -= joe.receiveCash(1000);
update();
} else {
window.alert('銀行にお金がありません。');
}
});
b1.onClick.listen((MouseEvent event){
bank += bob.giveCash(500);
update();
});
joe2bob.onClick.listen((MouseEvent event){
bob.receiveCash(joe.giveCash(1000));
update();
});
bob2joe.onClick.listen((MouseEvent event){
joe.receiveCash(bob.giveCash(500));
update();
});
}
LIElement li_joe = querySelector('#joe_cash');
LIElement li_bob = querySelector('#bob_cash');
LIElement li_bank = querySelector('#bank');
ParagraphElement msg_joe = querySelector('#msg_joe');
ParagraphElement msg_bob = querySelector('#msg_bob');
ButtonElement b0 = querySelector('#b0');
ButtonElement b1 = querySelector('#b1');
ButtonElement joe2bob = querySelector('#joe2bob');
ButtonElement bob2joe = querySelector('#bob2joe');
Guy joe = new Guy('Joe', 5000);
Guy bob = new Guy('Bob', 10000);
int bank = 10000;
void update() {
li_joe.text = '${joe.name}の所持金は${joe.cash}円';
li_bob.text = '${bob.name}の所持金は${bob.cash}円';
li_bank.text = '銀行の所持金は$bank円';
}
class Guy {
String name;
int cash;
Guy(this.name, this.cash);
int giveCash(int amount) {
if (amount <= cash && amount > 0) {
cash -= amount;
return amount;
}
window.alert('「私はもう$amount円もお金がありません。」と$nameが言った…');
return 0;
}
int receiveCash(int amount) {
if (amount > 0) {
cash += amount;
return amount;
}
window.alert('「$amount円では足りません」と$nameが言った…');
return 0;
}
}
0 コメント:
コメントを投稿