Skip to content

Instantly share code, notes, and snippets.

@mraleph
Forked from abarth/gist:45599b0c94eb6e268d55
Created July 9, 2014 08:40
Show Gist options
  • Save mraleph/96f2faed9e1c30ab613e to your computer and use it in GitHub Desktop.
Save mraleph/96f2faed9e1c30ab613e to your computer and use it in GitHub Desktop.
diff --git a/web/fc-app.dart b/web/fc-app.dart
index 9ab1b10..f8982d3 100644
--- a/web/fc-app.dart
+++ b/web/fc-app.dart
@@ -1,11 +1,30 @@
import "package:polymer/polymer.dart";
import "dart:html";
-import "dart:js";
import "deck/deck.dart";
import "tableau/tableau.dart";
+class ModelColumn extends Column {
+ final cards = new ObservableList();
+}
+
+class ModelCell extends Cell {
+ final cards = new ObservableList();
+}
+
+class ModelTower extends Tower {
+ final cards = new ObservableList();
+}
+
+class ModelTableau extends Tableau {
+ ModelTableau() {
+ columns = columns.map((_) => new ModelColumn()).toList();
+ cells = cells.map((_) => new ModelCell()).toList();
+ towers = towers.map((_) => new ModelTower()).toList();
+ }
+}
+
@CustomTag("fc-app")
class FcApp extends PolymerElement {
@observable Tableau tableau;
@@ -14,7 +33,7 @@ class FcApp extends PolymerElement {
Deck deck = new Deck();
deck.shuffle();
- tableau = new Tableau();
+ tableau = new ModelTableau();
tableau.deal(deck);
}
diff --git a/web/tableau/pile.dart b/web/tableau/pile.dart
index 7d8fdff..d868a54 100644
--- a/web/tableau/pile.dart
+++ b/web/tableau/pile.dart
@@ -5,11 +5,7 @@
part of freecell.tableau;
abstract class Pile {
- ObservableList<Card> cards;
-
- Pile() {
- cards = new ObservableList<Card>();
- }
+ final List<Card> cards = <Card>[];
bool get isEmpty => cards.isEmpty;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment