Die Auswahl an möglichen Programmiersprachen ist groß und eine Prolog-Lösung gibt es bislang noch nicht.


Code: Alles auswählen
-module(rock_paper_scissors).
-export([main/0]).
-define(Choices, [$r,$p,$s]).
main() ->
	Input = hd(io:get_line("Choose [r]ock, [p]aper, or [s]cissors: ")),
	Random = lists:nth(random:uniform(3), ?Choices),
	case winner(Input, Random) of
		error ->
			io:format("Unknown input `~c`!~n", [Input]);
		computer ->
			io:format("You lost! Computer chose ~c~n", [Random]);
		player ->
			io:format("You won! Computer chose ~c~n", [Random]);
		drawn ->
			io:format("Drawn game...~n")
	end.
winner(X,Y) ->
	AreMembers = lists:member(X,?Choices) andalso lists:member(Y,?Choices),
	case {X,Y} of
		{X,Y} when not AreMembers ->
			error;
		{$r,$s} ->
			player;
		{$p,$r} ->
			player;
		{$s,$p} ->
			player;
		{X,X} ->
			drawn;
		_ ->
			computer
	end.