| Index: frog/await/samples/dartcombat/grids.dart
|
| diff --git a/frog/await/samples/dartcombat/grids.dart b/frog/await/samples/dartcombat/grids.dart
|
| deleted file mode 100644
|
| index bbb317274a2746282f9b66651ae53b2e53f64701..0000000000000000000000000000000000000000
|
| --- a/frog/await/samples/dartcombat/grids.dart
|
| +++ /dev/null
|
| @@ -1,97 +0,0 @@
|
| -// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
|
| -// for details. All rights reserved. Use of this source code is governed by a
|
| -// BSD-style license that can be found in the LICENSE file.
|
| -
|
| -/** A boat in the grid. */
|
| -class Boat {
|
| - final int startX;
|
| - final int startY;
|
| - final bool horizontal;
|
| - final int length;
|
| - int hitCount = 0;
|
| -
|
| - Boat(this.startX, this.startY, this.horizontal, this.length) {}
|
| -
|
| - bool get sunk() => length == hitCount;
|
| -}
|
| -
|
| -/** Represents a grid configuration. */
|
| -class BoatGrid {
|
| - List<List<Boat>> boatMap;
|
| -
|
| - BoatGrid() : boatMap = new List(Constants.SIZE) {
|
| - for (int i = 0; i < Constants.SIZE; i++) {
|
| - boatMap[i] = new List(10);
|
| - }
|
| - }
|
| -
|
| - void placeBoats(List<Boat> boats) {
|
| - for (int b = 0; b < boats.length; b++) {
|
| - Boat boat = boats[b];
|
| - for (int i = 0; i < boat.length; i++) {
|
| - int x = boat.startX + (boat.horizontal ? i : 0);
|
| - int y = boat.startY + (boat.horizontal ? 0 : i);
|
| - boatMap[x][y] = boat;
|
| - }
|
| - }
|
| - }
|
| -
|
| - List<int> shoot(GridState state, int x, int y) {
|
| - assert(x >= 0);
|
| - assert(y >= 0);
|
| - assert(x < Constants.SIZE);
|
| - assert(y < Constants.SIZE);
|
| - assert(state.valueAt(x, y) == null); // repeated shot
|
| - Boat b = boatMap[x][y];
|
| - if (b == null) {
|
| - state.miss(x, y);
|
| - return const [Constants.MISS];
|
| - } else {
|
| - state.hit(x, y);
|
| - b.hitCount++;
|
| - return b.sunk ? [Constants.SUNK, b.length] : const [Constants.HIT];
|
| - }
|
| - }
|
| -}
|
| -
|
| -/** Represents the current state of a boat grid. */
|
| -class GridState {
|
| - List<List<int>> cells;
|
| -
|
| - GridState()
|
| - : cells = new List(Constants.SIZE) {
|
| - for (int i = 0; i < Constants.SIZE; i++) {
|
| - cells[i] = new List(10);
|
| - }
|
| - }
|
| -
|
| - int valueAt(int x, int y) => cells[x][y];
|
| -
|
| - void miss(int x, int y) {
|
| - cells[x][y] = Constants.MISS;
|
| - }
|
| -
|
| - void hit(int x, int y) {
|
| - cells[x][y] = Constants.HIT;
|
| - }
|
| -
|
| - void pending(int x, int y) {
|
| - cells[x][y] = Constants.PENDING;
|
| - }
|
| -
|
| - void clear(int x, int y) {
|
| - cells[x][y] = null;
|
| - }
|
| -}
|
| -
|
| -
|
| -/** Static constants used by the game. */
|
| -class Constants {
|
| - static final SIZE = 10;
|
| - static final MISS = 1;
|
| - static final HIT = 2;
|
| - static final SUNK = 3;
|
| - static final PENDING = 4;
|
| -
|
| - Constants() {}
|
| -}
|
|
|