All pastes #281636 Raw Edit

Something

public text v1 · immutable
#281636 ·published 2006-12-16 23:13 UTC
rendered paste body
#include <stdio.h>
#include <math.h>

int chips,bet;
int a, i, j, k, n, m, swapped;
long long value, playerscore, computerscore;
char *numbers[]={
	"two",
	"three",
	"four",
	"five",
	"six",
	"seven",
	"eight",
	"nine",
	"ten",
	"jack",
	"queen",
	"king",
	"ace"
	};

char *suits[]={
	"hearts",
	"clubs",
	"diamonds",
	"spades"
	};

chips=5;

struct card {
	int suit;
	int number;
};

struct card player[3];
struct card computer[3];
struct card cardone;
struct card cardtwo;
struct card cardthree;

int playerdeal()
	{
	while (a==0)
		{
		for (i=0; i<3; i++)
			{
			n=rand();
			player[i].suit=(n%4);
			m=rand();	
			player[i].number=(m%13);
			}
		while ((player[0].suit==player[1].suit && player[0].number==player[1].number) || (player[0].suit==player[2].suit && player[0].number==player[2].number) || (player[2].suit==player[1].suit && player[2].number==player[1].number))
			{
			for (i=0; i<3; i++)
				{
				n=rand();
				player[i].suit=(n%4);
				m=rand();	
				player[i].number=(m%13);
				}
			}
		if (player[0].number<=player[1].number && player[1].number<=player[2].number)
			{
			break;
			}
		}
	}	

int computerdeal()
	{
	while (a==0)
		{
		for (i=0; i<3; i++)
			{
			n=rand();
			computer[i].suit=(n%4);
			m=rand();	
			computer[i].number=(m%13);
			}
		while ((computer[0].suit==computer[1].suit && computer[0].number==computer[1].number) || (computer[0].suit==computer[2].suit && computer[0].number==computer[2].number) || (computer[2].suit==computer[1].suit && computer[2].number==computer[1].number))
			{
			for (i=0; i<3; i++)
				{
				n=rand();
				computer[i].suit=(n%4);
				m=rand();	
				computer[i].number=(m%13);
				}
			}
		if (computer[0].number<=computer[1].number && computer[1].number<=computer[2].number)
			{
			break;
			}
		}
	}	

int straightflush ()
	{
	value=0;
	if (cardone.suit==cardtwo.suit && cardtwo.suit==cardthree.suit)
		{
		if (cardone.number+1==cardtwo.number && cardone.number+2==cardthree.number)
			{
			value=(cardthree.number+1)*pow(13,10);
			}
		if (cardone.number+1==0 && cardtwo.number==1 && cardthree.number==12)
			{
			value=(cardtwo.number+1)*pow(13,10);
			}
		}
	return value;
	}

int threeofakind ()
	{
	value=0;
	if (cardone.number==cardtwo.number && cardtwo.number==cardthree.number)
		{
		value=(cardone.number+1)*pow(13,9);
		}
	return value;
	}

int straight ()
	{
	value=0;
	if (cardone.number+1==cardtwo.number && cardone.number+2==cardthree.number)
			{
			value=(cardthree.number+1)*pow(13,8);
			}
		if (cardone.number+1==0 && cardtwo.number==1 && cardthree.number==12)
			{
			value=(cardtwo.number+1)*pow(13,8);
			}
	return value;
	}

int flush ()
	{
	value=0;
	if (cardone.suit==cardtwo.suit && cardtwo.suit==cardthree.suit)
		{
		value=(cardthree.number+1)*pow(13,7)+(cardtwo.number+1)*pow(13,6)+(cardone.number+1)*pow(13,5);
		}
	return value;
	}

int pair ()
	{
	value=0;
	if (cardone.number==cardtwo.number)
		{
		value=(cardone.number+1)*pow(13,4)+(cardthree.number+1)*pow(13,3);
		}
	if (cardtwo.number==cardthree.number)
		{
		value=(cardtwo.number+1)*pow(13,4)+(cardone.number+1)*pow(13,3);
		}
	if (cardone.number==cardthree.number)
		{
		value=(cardone.number+1)*pow(13,4)+(cardtwo.number+1)*pow(13,3);
		}
	return value;
	}

int highcard ()
	{
	value=0;
	value=(cardthree.number+1)*pow(13,2)+(cardtwo.number+1)*pow(13,1)+(cardone.number+1);
	
	return value;
	}
int playerevaluate(struct card first, struct card second, struct card third)
	{
	cardone=player[0];
	cardtwo=player[1];
	cardthree=player[2];
	playerscore=straightflush()+threeofakind()+straight()+flush()+pair()+highcard();
	
	return playerscore;
	}

int computerevaluate(struct card first, struct card second, struct card third)
	{
	cardone=computer[0];
	cardtwo=computer[1];
	cardthree=computer[2];
	computerscore=straightflush()+threeofakind()+straight()+flush()+pair()+highcard();

	return computerscore;
	}
	
int main ()
	{
	srand(time(NULL));
	a=0;
	
		printf("Welcome to DILLIGAF poker. You have %d chips and will be charged one chip to play the game, leaving you with %d chips.\n", chips, chips-1); 
		chips=chips-1;
		playerdeal();
		playerscore=playerevaluate(player[0],player[1],player[2]);
		printf("Your hand is as follows:\n");
		for (i=0; i<3; i++)
			{
			printf("Card %d is a %s of %s.\n", i+1, numbers[player[i].number], suits[player[i].suit]);
			}
		printf("The score for your hand is %ll.\n",playerscore);
		printf("How many chips would you like to bet?\n");
		scanf("%d", &bet);
		chips=chips-bet;
		computerdeal();
		computerscore=computerevaluate(computer[0],computer[1],computer[2]);
		printf("The computer's hand is as follows:\n");
		for (i=0; i<3; i++)
			{
			printf("Card %d is a %s of %s.\n", i+1, numbers[computer[i].number], suits[computer[i].suit]);
			}
		printf("The score for the computer's hand is %ll.\n",computerscore);
		if (playerscore>computerscore && playerscore>pow(13,10))
			{
			chips=chips+(bet*5);
			printf("You won with a straight flush. You now have %d chips. Congratulations.\n",chips);
			}
		else if (playerscore>computerscore && playerscore>pow(13,9))
			{
			chips=chips+(bet*4);
			printf("You won with three of a kind. You now have %d chips. Congratulations.\n",chips);
			}
		else if (playerscore>computerscore)
			{
			chips=chips+(bet*2);
			printf("You won. You now have %d chips. Congratulations.\n",chips);
			}
		else if (playerscore==computerscore)
			{
			chips=chips+bet;
			printf("You tied the computer. You get back what you bet, so you now have %d chip(s).\n",chips);
			}
		else 
			{
			printf("You lost. You have %d chips.\n",chips);
			}
	}