code: func (t *Tile) Update() error {
  	switch {
  	case 0 < t.movingCount:
  		t.movingCount--
  		if t.movingCount == 0 {
  			if t.current.value != t.next.value && 0 < t.next.value {
  				t.poppingCount = maxPoppingCount
  			}
  			t.current = t.next
  			t.next = TileData{}
  		}
  	case 0 < t.startPoppingCount:
  		t.startPoppingCount--
  	case 0 < t.poppingCount:
  		t.poppingCount--
  	}
  	return nil
  }
docs: // Update updates the tile's animation states.