/* * Copyright 2015 S. Webber * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.oakgp.examples.hanoi; /** Represents the possible moves that can be used to attempt to solve the puzzle. */ enum Move { LEFT_MIDDLE(Pole.LEFT, Pole.MIDDLE), LEFT_RIGHT(Pole.LEFT, Pole.RIGHT), MIDDLE_LEFT(Pole.MIDDLE, Pole.LEFT), MIDDLE_RIGHT(Pole.MIDDLE, Pole.RIGHT), RIGHT_LEFT(Pole.RIGHT, Pole.LEFT), RIGHT_MIDDLE(Pole.RIGHT, Pole.MIDDLE); /** The pole to remove a disc from. */ final Pole from; /** The pole to add a disc to. */ final Pole to; private Move(Pole from, Pole to) { this.from = from; this.to = to; } }