Exemplo n.º 1
0
void MakeCard()
{
	int balls = DrawRandomNumbers2();
	int temp_numbers[5][5];
	int counts[5];
	int n;
	for( n = 0; n < 5; n++ ) counts[n] = 0;
	for( n = 0; n < 75; n++ ) {
	}
}
Exemplo n.º 2
0
int main( void )
{
	int n;
	char tmp[256];
   int card_count = 0;
	int card;
	char *cardset;
	int cardset_start = 0;
	int cardset_end = 32000;
	snprintf( tmp, sizeof( tmp ), "cards.dat" );
	printf( "Loading cardset....\n" );
	LoadCardset( tmp, &card_count, &cardset );
	{
      int num;
      //int s =  ( n - 1 ) / 15;
		printf( "Sorting cardset...\n" );
		for( card = 0; card < card_count; card++ )
		{
			PCARD_TESTER tester = GetFromSet( CARD_TESTER, &test_set );
			tester->card = cardset + (card * 25);
			//lprintf( "card %d(%d) = %p", card, GetMemberIndex( CARD_TESTER, &test_set, tester ), tester );
			for( num = 0; num < 25; num++ )
			{
				if( num == 12 )
					continue;
				{
					PCARD_TESTER_LINK link = GetFromSet( CARD_TESTER_LINK, &test_set_links );
					PCARD_TESTER_LINK *base_tester= &sorted_cards[cardset[card*25+num]];
					link->tester = tester;
					//lprintf( "Add card %d to %d", card, cardset[card*25+num] );
					if( link->next = (*base_tester) )
						(*base_tester)->me = &link->next;
					(*base_tester) = link;
				}
			}
		}
	}
	printf( "Drawing balls...\n" );
	for( n = 0; n < 0x40000000; n++ )
	{
      int *source_balls = DrawRandomNumbers2();
		int *balls;
		int ball;

		switch( n % 6 )
		{
		case 0:
			max_counts[0] = 5;
			max_counts[1] = 15;
			max_counts[2] = 15;
			max_counts[3] = 15;
			max_counts[4] = 5;
			break;
		case 1:
			max_counts[0] = 15;
			max_counts[1] = 5;
			max_counts[2] = 15;
			max_counts[3] = 15;
			max_counts[4] = 5;
			break;
		case 2:
			max_counts[0] = 5;
			max_counts[1] = 15;
			max_counts[2] = 15;
			max_counts[3] = 5;
			max_counts[4] = 15;
			break;
		case 3:
			max_counts[0] = 15;
			max_counts[1] = 5;
			max_counts[2] = 15;
			max_counts[3] = 5;
			max_counts[4] = 15;
			break;
		case 4:
			max_counts[0] = 5;
			max_counts[1] = 5;
			max_counts[2] = 15;
			max_counts[3] = 15;
			max_counts[4] = 15;
			break;
		case 5:
			max_counts[0] = 15;
			max_counts[1] = 15;
			max_counts[2] = 15;
			max_counts[3] = 5;
			max_counts[4] = 5;
			break;
		}

      balls = PickBalls( source_balls );

		for( card = 0; card < card_count; card++ )
		{
			PCARD_TESTER tester = GetSetMember( CARD_TESTER, &test_set, card );
			tester->marks = 0;
		}
		for( ball = 0; ball <= 75; ball++ )
		{
			lprintf( "First card %p", sorted_cards[ball] );
			
		}
		for( ball = 0; ball < 45; ball++ )
		{
			int cards_marked = 0;
			int real_ball = balls[ball];
			PCARD_TESTER_LINK tester;
			PCARD_TESTER_LINK prior = NULL;
			PCARD_TESTER_LINK _prior = NULL;
			lprintf( "First card %p", sorted_cards[real_ball] );
			for( tester = sorted_cards[real_ball]; tester; tester = tester->next )
			{
				cards_marked++;
				tester->tester->marks++;
				_prior = prior;
				prior = tester;
			}
			lprintf( "Marked %d cards with %d", cards_marked, real_ball );
		}

		printf( "balls: " );
		for( ball = 0; ball < 75; ball++ )
		{
			printf( "%d,", balls[ball] );
		}
		printf( "\n" );
		fflush( stdout );
		{
			for( ball = 0; ball < 25; ball++ )
			{
				marks[ball] = 0;
			}
			ForAllInSet( CARD_TESTER, test_set, TestOk, 0 );
			printf( "cards with X marks: " );
			for( ball = 0; ball < 25; ball++ )
			{
				printf( "%d,", marks[ball] );
			}
		}
		printf( "\n" );
		fflush( stdout );
		{
			for( ball = 0; ball < 25; ball++ )
			{
				marks[ball] = 0;
			}
			ForAllInSet( CARD_TESTER, test_set, TestOk2, 0 );
			printf( "cards with X marks: " );
			for( ball = 0; ball < 25; ball++ )
			{
				printf( "%d,", marks[ball] );
			}
		}
		printf( "\n" );
		fflush( stdout );
	}
	return 0;
}