Exemple #1
0
//	Calculate score of a full house (three of one value, two of another).
unsigned int ScoreFullHouse(const RollMap& rollMap)
{
	//	Iterate over the rollMap, looking for a value with three of a kind and a value with two of a kind.
	bool foundPair = false;
	bool foundTrio = false;
	RollMap::const_iterator rollMapIterator;
	for (rollMapIterator = rollMap.begin(); rollMapIterator != rollMap.end(); ++rollMapIterator)
	{
		if (*rollMapIterator == 3)
		{
			foundTrio = true;
		}
		else if (*rollMapIterator == 2)
		{
			foundPair = true;
		}
	}

	if (foundTrio && foundPair)
	{
		return CalculateSum(rollMap);
	}
	else
	{
		return 0;
	}
}
uint8_t CalculateGenericCheckSum(uint8_t *infoFrameData,uint8_t checkSum,uint8_t length)
{
        checkSum = 0x100 - CalculateSum(infoFrameData,checkSum,length);

        INFO_DEBUG_PRINT(("checkSum: %02x\n",(uint16_t)checkSum));
        return checkSum;
}
Exemple #3
0
int RoboFocus::SendCommand(char *rf_cmd)
{
    int nbytes_written=0, nbytes_read=0, check_ret=0, err_code=0;
    char rf_cmd_cks[32],robofocus_error[MAXRBUF];

    unsigned char val= 0 ;

    val = CalculateSum( rf_cmd );

    for(int i=0; i < 8; i++)
        rf_cmd_cks[i]= rf_cmd[i] ;

    rf_cmd_cks[8]=  (unsigned char) val ;
    rf_cmd_cks[9]= 0 ;

    if (isSimulation())
        return 0;

    tcflush(PortFD, TCIOFLUSH);

    DEBUGF(INDI::Logger::DBG_DEBUG, "CMD (%#02X %#02X %#02X %#02X %#02X %#02X %#02X %#02X %#02X)", rf_cmd_cks[0], rf_cmd_cks[1], rf_cmd_cks[2], rf_cmd_cks[3], rf_cmd_cks[4], rf_cmd_cks[5], rf_cmd_cks[6], rf_cmd_cks[7], rf_cmd_cks[8]);

    if  ( (err_code = tty_write(PortFD, rf_cmd_cks, RF_MAX_CMD, &nbytes_written) != TTY_OK))
    {
        tty_error_msg(err_code, robofocus_error, MAXRBUF);
        DEBUGF(INDI::Logger::DBG_ERROR, "TTY error detected: %s", robofocus_error);
        return -1;
    }

    return nbytes_written;
}
Exemple #4
0
int main(int argc, char *args[])
{
    char *buffer = (char *)malloc(MAX_LINE_LEN);;
    char *result = (char *)malloc(MAX_LINE_LEN);;
    int number;
    int dwnum;

    dwnum = GetPrice();
    if(dwnum != 0)
    {
	return dwnum;
    }
    list_t *L = ListInit();
    if(L == NULL)
    {
	return ERRNO_NULL_POINTER;
    }

    while(fgets(buffer, MAX_LINE_LEN, stdin))
    {
	number = 0;
	memset(result, 0, MAX_LINE_LEN);
	dwnum = ParseLine(buffer, result, &number);

	if(dwnum == 0)
	{
	    item_t* curnode;
	    if((curnode = ListIsNodeInListById(L, result)) != NULL)
	    {
		curnode->count += number;
		continue;
	    }

	    item_t * node = ItemMakeitem(result, number);
	    if(node == NULL)
	    {
		return ERRNO_MAKEITEM_FAIL;
	    }

	    dwnum = ListPushBack(L, (void*) node);
	    if(dwnum != 0)
	    {
		return ERRNO_LISTPUSHBACK_FAIL;
	    }
	}
    }

    dwnum = CalculateSum(L);
    if(dwnum != 0)
    {
	return ERRNO_CALCULATESUM_FAIL;	
    }

    ListFree(L);
    ListFree(my_price);
    free(buffer);
    free(result);
    return 0;
}
Exemple #5
0
unsigned char RoboFocus::CheckSum(char *rf_cmd)
{
    char substr[255] ;
    unsigned char val= 0 ;
    int i= 0 ;

    for(i=0; i < 8; i++)
        substr[i]=rf_cmd[i] ;

    val = CalculateSum( substr) ;

    if( val !=  (unsigned char) rf_cmd[8])
        DEBUGF(INDI::Logger::DBG_WARNING, "Checksum: Wrong (%s,%ld), %x != %x",  rf_cmd, strlen(rf_cmd), val, (unsigned char) rf_cmd[8]) ;

    return val ;
}
Exemple #6
0
//	Calculate score of Choice.
unsigned int ScoreChoice(const RollMap& rollMap)
{
	return CalculateSum(rollMap);
}