Seite 2 von 2
					
				Re: Schere-Stein-Papier in nicht-Python
				Verfasst: Montag 11. Juli 2011, 12:47
				von numerix
				Auch wenn der Thread-Titel anders gemeint war, passt diese 
SPOJ-Aufgabe auch irgendwie dazu. 
Die Auswahl an möglichen Programmiersprachen ist groß und eine Prolog-Lösung gibt es bislang noch nicht.  

 
			
					
				Re: Schere-Stein-Papier in nicht-Python
				Verfasst: Montag 18. Juli 2011, 19:55
				von nomnom
				Erlang (ich bin gerade am Lernen von Erlang, also wird der Code vermutlich ziemlich unschön sein ...):
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.