content: -- Copyright 2019 Google LLC
  --
  -- 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
  --
  --     https://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.
  
  
  
  {-# LANGUAGE CPP #-}
  {-# OPTIONS_GHC -fno-warn-orphans #-}
  
  import           System.Environment
  import           Game
  
  usage :: IO ()
  usage = do
    progName <- getProgName
    putStrLn $ "usage: " ++ progName ++ " play"
    putStrLn $ "       " ++ progName ++ " solve"
  
  main :: IO ()
  main = do
    let answer = randomCode kSeed kCodeSize
    args <- getArgs
    if length args /= 1
      then usage
      else case head args of
        "play"  -> play answer kMaxTurns humanInput
        "solve" -> play answer kMaxTurns computerInput
        _       -> usage
  