def allCombinations
: Seq
[ List
[ Byte
] ] = { ( 0 to 9 ) .map ( _ .byteValue ) .toList .combinations ( 4 ) .toList .flatMap ( _ .permutations )
}
def nextGuess
( possible
: Seq
[ List
[ Byte
] ] ) : List
[ Byte
] = possible
match { case _ => possible
( Random.
nextInt ( possible.
size ) ) }
def doGuess
( guess
: List
[ Byte
] ) : Pair
[ Int, Int
] = { println( "My guess is " + guess) ;
val arr
= readLine
( ) .
split ( ' ' ) .
map ( Integer.
valueOf ( _ ) ) ( arr( 0 ) , arr( 1 ) )
}
def testGuess
( alt
: List
[ Byte
] , guess
: List
[ Byte
] ) : Pair
[ Int, Int
] = { val bulls
= alt.
zip ( guess
) .
filter ( p
=> p.
_ 1
== p.
_ 2
) .
size val cows
= guess.
filter ( alt.
contains ( _ ) ) .
size - bulls
( bulls, cows)
}
def play
( possible
: Seq
[ List
[ Byte
] ] ) : List
[ Byte
] = { val curGuess
= nextGuess
( possible
) val bc
= doGuess
( curGuess
) if ( bc.
_ 1
== 4 ) { println
( "Ye-haw!" ) ; curGuess
} play( possible.filter ( p => testGuess( p, curGuess) == bc) )
}
def main
( args
: Array
[ String
] ) { play( allCombinations)
}
}
b2JqZWN0IE1haW4gZXh0ZW5kcyBBcHAgewoJIGRlZiBhbGxDb21iaW5hdGlvbnM6IFNlcVtMaXN0W0J5dGVdXSA9IHsKICAgICAgKDAgdG8gOSkubWFwKF8uYnl0ZVZhbHVlKS50b0xpc3QuY29tYmluYXRpb25zKDQpLnRvTGlzdC5mbGF0TWFwKF8ucGVybXV0YXRpb25zKQogICAgfQogCiAgICBkZWYgbmV4dEd1ZXNzKHBvc3NpYmxlOiBTZXFbTGlzdFtCeXRlXV0pOiBMaXN0W0J5dGVdID0gcG9zc2libGUgbWF0Y2ggewogICAgICBjYXNlIE5pbCA9PiB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uIAogICAgICBjYXNlIExpc3Qob25seSkgPT4gb25seQogICAgICBjYXNlIF8gPT4gcG9zc2libGUoUmFuZG9tLm5leHRJbnQocG9zc2libGUuc2l6ZSkpCiAgICB9CiAKICAgIGRlZiBkb0d1ZXNzKGd1ZXNzOiBMaXN0W0J5dGVdKTogUGFpcltJbnQsIEludF0gPSB7CiAgICAgIHByaW50bG4oIk15IGd1ZXNzIGlzICIgKyBndWVzcyk7CiAgICAgIHZhbCBhcnIgPSByZWFkTGluZSgpLnNwbGl0KCcgJykubWFwKEludGVnZXIudmFsdWVPZihfKSkKICAgICAgKGFycigwKSwgYXJyKDEpKQogICAgfQogCiAgICBkZWYgdGVzdEd1ZXNzKGFsdDogTGlzdFtCeXRlXSwgZ3Vlc3M6IExpc3RbQnl0ZV0pOiBQYWlyW0ludCwgSW50XSA9IHsKICAgICAgdmFsIGJ1bGxzID1hbHQuemlwKGd1ZXNzKS5maWx0ZXIocCA9PiBwLl8xID09IHAuXzIpLnNpemUKICAgICAgdmFsIGNvd3MgPSBndWVzcy5maWx0ZXIoYWx0LmNvbnRhaW5zKF8pKS5zaXplIC0gYnVsbHMKICAgICAgKGJ1bGxzLCBjb3dzKQogICAgfQogCiAgICBkZWYgcGxheShwb3NzaWJsZTogU2VxW0xpc3RbQnl0ZV1dKTogTGlzdFtCeXRlXSA9IHsKICAgICAgdmFsIGN1ckd1ZXNzID0gbmV4dEd1ZXNzKHBvc3NpYmxlKQogICAgICB2YWwgYmMgPSBkb0d1ZXNzKGN1ckd1ZXNzKQogICAgICBpZiAoYmMuXzEgPT0gNCkgeyBwcmludGxuKCJZZS1oYXchIik7IGN1ckd1ZXNzIH0gCiAgICAgIGVsc2UgCiAgICAgICAgcGxheShwb3NzaWJsZS5maWx0ZXIocCA9PiB0ZXN0R3Vlc3MocCwgY3VyR3Vlc3MpID09IGJjKSkKIAogICAgfQogCiAgICBkZWYgbWFpbihhcmdzOiBBcnJheVtTdHJpbmddKSB7CiAgICAgIHBsYXkoYWxsQ29tYmluYXRpb25zKQogICAgfQp9
compilation info
/opt/scala/bin/scalac: line 50: /dev/null: Permission denied
Main.scala:9: error: not found: value Random
case _ => possible(Random.nextInt(possible.size))
^
one error found
spoj: The program compiled successfully, but Main.class was not found.
Class Main should contain method: def main(args: Array[String]).
stdout