[ create a new paste ] login | about

Link: http://codepad.org/ongTE6ob    [ raw code | output | fork ]

C, pasted on Oct 28:
#include<stdio.h>
#include <stdlib.h>
#include <string.h>

#define TRUE	1
#define FALSE	0

#define CARD_RAND_SEED		2
#define GARA_RAND_SEED		5

#define CARD_COL_NUM		5
#define CARD_ROW_NUM		5

#define MAX_RAND_NUM		100

int* generateRand(int seed, int num);
void swapValue(int *ppCard, int *pRandNum);
void showCard(int *pCard);
void drawLots(int *pCard, int value);
int checkBingo(int *pCard);

int main(void)
{
	int i,j;
	int myBingoCard[CARD_ROW_NUM][CARD_COL_NUM] = {0};
	int *pCreateCardRandArray = generateRand(CARD_RAND_SEED, MAX_RAND_NUM);		// ヒープ領域に確保
	int *pGaraGaraRandArray = generateRand(GARA_RAND_SEED, MAX_RAND_NUM);		// ヒープ領域に確保
	
	printf("Rundum number:\n");
	for(i=0; i<MAX_RAND_NUM; ++i)
	{
		printf("%3d ", pCreateCardRandArray[i]);
		
		if(((i+1)%20 == 0))
		{
			printf("\n");
		}
	}
	
	swapValue((int*)myBingoCard, pCreateCardRandArray);
	
	printf("\nMy Card:\n");
	showCard((int*)myBingoCard);
	printf("\n");
	
	for(i=0; i<MAX_RAND_NUM; ++i)
	{
		printf("No.%3d - [Draw:%d]\n", i, pGaraGaraRandArray[i]);
		
		// 抽選
		drawLots((int*)myBingoCard, pGaraGaraRandArray[i]);
		
		// 結果を表示
		showCard((int*)myBingoCard);
		
		// Bingoしたか調べる
		if(checkBingo((int*)myBingoCard) == TRUE)
		{
			printf("Bingo!!\n");
			break;
		}
		printf("\n");
	}
	
	
	free(pCreateCardRandArray);
	free(pGaraGaraRandArray);
	
	return 0;
}

void swapValue(int *ppCard, int *pRandNum)
{
	int i,j;
	int maxNum = CARD_COL_NUM * CARD_ROW_NUM;
	
	for(i=0; i<maxNum; ++i)
	{
		*(ppCard+i) = *(pRandNum+i);
	}
}

int* generateRand(int seed, int num)
{
	int i;
	int currentIndex = 0;
	int genNum = 0;
	int *pArray = (int*)malloc(num*sizeof(int));
	memset(pArray, 0, num*sizeof(int));
	
	srand(seed);
	
	do
	{
		genNum = (rand() % MAX_RAND_NUM) + 1;
		
		for(i=0; i<currentIndex; ++i)
		{
			if(genNum == pArray[i])
			{
				genNum = (rand() % MAX_RAND_NUM) + 1;
				i = 0;
			}
		}
		pArray[currentIndex++] = genNum;
	}while(currentIndex < num);
	
	return pArray;
}

void showCard(int *pCard)
{
	int i;
	int maxNum = CARD_COL_NUM * CARD_ROW_NUM;
	
	for(i=0; i<maxNum; ++i)
	{
		if(*(pCard+i) != 0) {
			printf("%3d ", *(pCard+i));
		}else{
			printf(" ● ");
		}
		
		if(((i+1)%CARD_COL_NUM) == 0)
		{
			printf("\n");
		}
	}
}

void drawLots(int *pCard, int value)
{
	int i;
	int maxNum = CARD_COL_NUM * CARD_ROW_NUM;
	for(i=0; i<maxNum; ++i)
	{
		if(*(pCard+i) == value)
		{
			*(pCard+i) = 0;
			break;
		}
	}
}

int checkBingo(int *pCard)
{
	// 横が揃ったか調べる
	if(((pCard[ 0] + pCard[ 1] + pCard[ 2] + pCard[ 3] + pCard[ 4]) == 0) ||
	   ((pCard[ 5] + pCard[ 6] + pCard[ 7] + pCard[ 8] + pCard[ 9]) == 0) ||
	   ((pCard[10] + pCard[11] + pCard[12] + pCard[13] + pCard[14]) == 0) || 
	   ((pCard[15] + pCard[16] + pCard[17] + pCard[18] + pCard[19]) == 0) || 
	   ((pCard[20] + pCard[21] + pCard[22] + pCard[23] + pCard[24]) == 0))
	{
		return TRUE;
	}
	// 縦が揃ったか調べる
	if(((pCard[ 0] + pCard[ 5] + pCard[10] + pCard[15] + pCard[20]) == 0) ||
	   ((pCard[ 1] + pCard[ 6] + pCard[11] + pCard[16] + pCard[21]) == 0) ||
	   ((pCard[ 2] + pCard[ 7] + pCard[12] + pCard[17] + pCard[22]) == 0) || 
	   ((pCard[ 3] + pCard[ 8] + pCard[13] + pCard[18] + pCard[23]) == 0) || 
	   ((pCard[ 4] + pCard[ 9] + pCard[14] + pCard[19] + pCard[24]) == 0))
	{
		return TRUE;
	}
	// 斜めが揃ったか調べる
	if(((pCard[ 0] + pCard[ 6] + pCard[12] + pCard[18] + pCard[24]) == 0) ||
	   ((pCard[ 4] + pCard[ 8] + pCard[12] + pCard[16] + pCard[20]) == 0))
	{
		return TRUE;
	}
	return FALSE;
}


Output:
Rundum number:
 91  20  89  76  62  99  65  78  46  28  43  80  50  94  38  55  74  68  31   3 
 73  70  16  92  11  97  64  14  87  83  53  98  58  29   7  61  66  57  15  45 
100  67  10  24  49   6  63  44  22  17  18  69  91  71   5  86  34  85   4  52 
 82   2  56   9  19  47  12  84  35  90  93  75  42  33  32  51  88  23  21  41 
 27  79  40  72  25  39  30  54  48   1  36  77   8  81  13  26  60  96  37  95 

My Card:
 91  20  89  76  62 
 99  65  78  46  28 
 43  80  50  94  38 
 55  74  68  31   3 
 73  70  16  92  11 

No.  0 - [Draw:76]
 91  20  89  ●  62 
 99  65  78  46  28 
 43  80  50  94  38 
 55  74  68  31   3 
 73  70  16  92  11 

No.  1 - [Draw:66]
 91  20  89  ●  62 
 99  65  78  46  28 
 43  80  50  94  38 
 55  74  68  31   3 
 73  70  16  92  11 

No.  2 - [Draw:11]
 91  20  89  ●  62 
 99  65  78  46  28 
 43  80  50  94  38 
 55  74  68  31   3 
 73  70  16  92  ● 

No.  3 - [Draw:73]
 91  20  89  ●  62 
 99  65  78  46  28 
 43  80  50  94  38 
 55  74  68  31   3 
 ●  70  16  92  ● 

No.  4 - [Draw:77]
 91  20  89  ●  62 
 99  65  78  46  28 
 43  80  50  94  38 
 55  74  68  31   3 
 ●  70  16  92  ● 

No.  5 - [Draw:33]
 91  20  89  ●  62 
 99  65  78  46  28 
 43  80  50  94  38 
 55  74  68  31   3 
 ●  70  16  92  ● 

No.  6 - [Draw:21]
 91  20  89  ●  62 
 99  65  78  46  28 
 43  80  50  94  38 
 55  74  68  31   3 
 ●  70  16  92  ● 

No.  7 - [Draw:50]
 91  20  89  ●  62 
 99  65  78  46  28 
 43  80  ●  94  38 
 55  74  68  31   3 
 ●  70  16  92  ● 

No.  8 - [Draw:74]
 91  20  89  ●  62 
 99  65  78  46  28 
 43  80  ●  94  38 
 55  ●  68  31   3 
 ●  70  16  92  ● 

No.  9 - [Draw:82]
 91  20  89  ●  62 
 99  65  78  46  28 
 43  80  ●  94  38 
 55  ●  68  31   3 
 ●  70  16  92  ● 

No. 10 - [Draw:27]
 91  20  89  ●  62 
 99  65  78  46  28 
 43  80  ●  94  38 
 55  ●  68  31   3 
 ●  70  16  92  ● 

No. 11 - [Draw:49]
 91  20  89  ●  62 
 99  65  78  46  28 
 43  80  ●  94  38 
 55  ●  68  31   3 
 ●  70  16  92  ● 

No. 12 - [Draw:61]
 91  20  89  ●  62 
 99  65  78  46  28 
 43  80  ●  94  38 
 55  ●  68  31   3 
 ●  70  16  92  ● 

No. 13 - [Draw:99]
 91  20  89  ●  62 
 ●  65  78  46  28 
 43  80  ●  94  38 
 55  ●  68  31   3 
 ●  70  16  92  ● 

No. 14 - [Draw:29]
 91  20  89  ●  62 
 ●  65  78  46  28 
 43  80  ●  94  38 
 55  ●  68  31   3 
 ●  70  16  92  ● 

No. 15 - [Draw:87]
 91  20  89  ●  62 
 ●  65  78  46  28 
 43  80  ●  94  38 
 55  ●  68  31   3 
 ●  70  16  92  ● 

No. 16 - [Draw:15]
 91  20  89  ●  62 
 ●  65  78  46  28 
 43  80  ●  94  38 
 55  ●  68  31   3 
 ●  70  16  92  ● 

No. 17 - [Draw:6]
 91  20  89  ●  62 
 ●  65  78  46  28 
 43  80  ●  94  38 
 55  ●  68  31   3 
 ●  70  16  92  ● 

No. 18 - [Draw:80]
 91  20  89  ●  62 
 ●  65  78  46  28 
 43  ●  ●  94  38 
 55  ●  68  31   3 
 ●  70  16  92  ● 

No. 19 - [Draw:32]
 91  20  89  ●  62 
 ●  65  78  46  28 
 43  ●  ●  94  38 
 55  ●  68  31   3 
 ●  70  16  92  ● 

No. 20 - [Draw:84]
 91  20  89  ●  62 
 ●  65  78  46  28 
 43  ●  ●  94  38 
 55  ●  68  31   3 
 ●  70  16  92  ● 

No. 21 - [Draw:53]
 91  20  89  ●  62 
 ●  65  78  46  28 
 43  ●  ●  94  38 
 55  ●  68  31   3 
 ●  70  16  92  ● 

No. 22 - [Draw:68]
 91  20  89  ●  62 
 ●  65  78  46  28 
 43  ●  ●  94  38 
 55  ●  ●  31   3 
 ●  70  16  92  ● 

No. 23 - [Draw:47]
 91  20  89  ●  62 
 ●  65  78  46  28 
 43  ●  ●  94  38 
 55  ●  ●  31   3 
 ●  70  16  92  ● 

No. 24 - [Draw:28]
 91  20  89  ●  62 
 ●  65  78  46  ● 
 43  ●  ●  94  38 
 55  ●  ●  31   3 
 ●  70  16  92  ● 

No. 25 - [Draw:85]
 91  20  89  ●  62 
 ●  65  78  46  ● 
 43  ●  ●  94  38 
 55  ●  ●  31   3 
 ●  70  16  92  ● 

No. 26 - [Draw:9]
 91  20  89  ●  62 
 ●  65  78  46  ● 
 43  ●  ●  94  38 
 55  ●  ●  31   3 
 ●  70  16  92  ● 

No. 27 - [Draw:100]
 91  20  89  ●  62 
 ●  65  78  46  ● 
 43  ●  ●  94  38 
 55  ●  ●  31   3 
 ●  70  16  92  ● 

No. 28 - [Draw:62]
 91  20  89  ●  ● 
 ●  65  78  46  ● 
 43  ●  ●  94  38 
 55  ●  ●  31   3 
 ●  70  16  92  ● 

No. 29 - [Draw:41]
 91  20  89  ●  ● 
 ●  65  78  46  ● 
 43  ●  ●  94  38 
 55  ●  ●  31   3 
 ●  70  16  92  ● 

No. 30 - [Draw:72]
 91  20  89  ●  ● 
 ●  65  78  46  ● 
 43  ●  ●  94  38 
 55  ●  ●  31   3 
 ●  70  16  92  ● 

No. 31 - [Draw:54]
 91  20  89  ●  ● 
 ●  65  78  46  ● 
 43  ●  ●  94  38 
 55  ●  ●  31   3 
 ●  70  16  92  ● 

No. 32 - [Draw:38]
 91  20  89  ●  ● 
 ●  65  78  46  ● 
 43  ●  ●  94  ● 
 55  ●  ●  31   3 
 ●  70  16  92  ● 

No. 33 - [Draw:14]
 91  20  89  ●  ● 
 ●  65  78  46  ● 
 43  ●  ●  94  ● 
 55  ●  ●  31   3 
 ●  70  16  92  ● 

No. 34 - [Draw:36]
 91  20  89  ●  ● 
 ●  65  78  46  ● 
 43  ●  ●  94  ● 
 55  ●  ●  31   3 
 ●  70  16  92  ● 

No. 35 - [Draw:24]
 91  20  89  ●  ● 
 ●  65  78  46  ● 
 43  ●  ●  94  ● 
 55  ●  ●  31   3 
 ●  70  16  92  ● 

No. 36 - [Draw:8]
 91  20  89  ●  ● 
 ●  65  78  46  ● 
 43  ●  ●  94  ● 
 55  ●  ●  31   3 
 ●  70  16  92  ● 

No. 37 - [Draw:2]
 91  20  89  ●  ● 
 ●  65  78  46  ● 
 43  ●  ●  94  ● 
 55  ●  ●  31   3 
 ●  70  16  92  ● 

No. 38 - [Draw:94]
 91  20  89  ●  ● 
 ●  65  78  46  ● 
 43  ●  ●  ●  ● 
 55  ●  ●  31   3 
 ●  70  16  92  ● 

No. 39 - [Draw:16]
 91  20  89  ●  ● 
 ●  65  78  46  ● 
 43  ●  ●  ●  ● 
 55  ●  ●  31   3 
 ●  70  ●  92  ● 

No. 40 - [Draw:23]
 91  20  89  ●  ● 
 ●  65  78  46  ● 
 43  ●  ●  ●  ● 
 55  ●  ●  31   3 
 ●  70  ●  92  ● 

No. 41 - [Draw:89]
 91  20  ●  ●  ● 
 ●  65  78  46  ● 
 43  ●  ●  ●  ● 
 55  ●  ●  31   3 
 ●  70  ●  92  ● 

No. 42 - [Draw:86]
 91  20  ●  ●  ● 
 ●  65  78  46  ● 
 43  ●  ●  ●  ● 
 55  ●  ●  31   3 
 ●  70  ●  92  ● 

No. 43 - [Draw:90]
 91  20  ●  ●  ● 
 ●  65  78  46  ● 
 43  ●  ●  ●  ● 
 55  ●  ●  31   3 
 ●  70  ●  92  ● 

No. 44 - [Draw:43]
 91  20  ●  ●  ● 
 ●  65  78  46  ● 
 ●  ●  ●  ●  ● 
 55  ●  ●  31   3 
 ●  70  ●  92  ● 
Bingo!!


Create a new paste based on this one


Comments: