All pastes #548831 Raw Edit

Someone

public text v1 · immutable
·published 2007-06-07 21:36 UTC
rendered paste body
#include <stdio.h>
#include <time.h>

/* Return 2 for tie, 1 for win, 0 for loss */
char rock(void);
char paper(void);
char scissors(void);

void print_results(char results);

#define TIE 2
#define WIN 1
#define LOSE 0

int comp_choice;
char * char_comp[] = { "rock", "paper", "scissors" };

int main(void)
{
	int user_choice;
	char user_input[3];

	srand(time(NULL));

	printf("Welcome to RPS\n");
	printf("1 - Rock\n");
	printf("2 - Paper\n");
	printf("3 - Scissors\n");
	printf("4 - Exit\n");
	printf("anything else - get called a retard\n");

	while (1) {
		printf(": ");
		fgets(user_input,sizeof(user_input)-1,stdin);
		user_input[1] = '\0';
		user_choice = atoi(user_input);
		fgets(user_input,sizeof(user_input)-1,stdin);

		comp_choice = 1 + rand() % 3;

		switch(user_choice) {
		case 1:
			print_results(rock());
		break;
		case 2:
			print_results(paper());
		break;
		case 3:
			print_results(scissors());
		break;
		case 4:
			printf("Thanks for playing!\n");
			exit(0);
		break;
		case '\0':
		break;
		default:
			printf("Retard!\n");
			exit(1);
		break;
		}
	}

	return 0;
}		

char rock(void)
{
	if (comp_choice == 1)
		return TIE;
	if (comp_choice == 2)
		return LOSE;
	if (comp_choice == 3)	
		return WIN;
	return -1;
}

char paper(void)
{
	if (comp_choice == 1)
		return WIN;
	if (comp_choice == 2)
		return TIE;
	if (comp_choice == 3)
		return LOSE;
	return -1;
}

char scissors(void)
{
	if (comp_choice == 1)
		return LOSE;
	if (comp_choice == 2)
		return WIN;
	if (comp_choice == 3)
		return TIE;
	return -1;
}

void print_results(char results)
{
	printf("Comp chose %s\n",char_comp[comp_choice-1]);

	if (results == WIN)
		printf("You Win!\n");
	if (results == LOSE)
		printf("You Lose!\n");
	if (results == TIE)
		printf("You Tie!\n");
}