Need Help Coding this - PICK 4 Game Search Engine - Can someone please help ?

A Very Good Morning to you,

Hi and how do you do ?

I hope your day is going great.

I would like help writing a CPP Function() with the following criteria :-

It is to search for 4 digit numbers in a Pick 4 Game.

1. Given a 2D Array of 4 Digit Number from 0 to 9
Lets call this 2D array - Array 1
This Array consists of only 9 sets of 4 digit random numbers
Digits can be repeated up to 4 times

e.g. - 0000 or 0001 or 0012 or 0123 or 1234 or 2342 or 3422 or 5676 or 5644

2. Given a 2D Array of 4 Digit Numbers from 0 to 9
Lets call this 2d array - Array 2
This Array consists of say 1000 sets of 4 digit random numbers
Digits can be repeated up to 4 times

e.g. -
0000
0001
0012
0123
1234
3242
3453
6575
6786
8797
2342
3453

Questions -
-----------

Point A.
How can I search for all the 9 numbers from Array 1 in Array 2 with the following number criteria -

A. If all 4 digits in Array 1 are unique, find all combination of this 4 digits in Array 2

B. 1 digit from Array 1 can be an Exception - Meaning it can be a differnt number out of the 3 in Array 1

e.g. -
First Number in Array 1 to Search from Array 2 = 1234

Result of search in Array 2 will return - 1234 2134 4321 3214 2143 etc etc

Result of search from Array 2 will also include 4 digit numbers where 1 digit from Array 1 that can be
Different

look at this example - where 3 digits are found in Array 1 and 1 digit can be different out of the 4
digits found in Array 1

- e.g. 1238 2135 4372 3941 9421 4326 2149 2364 4351 1428 etc etc

Point B.
Now Array 1 can have duplicate random digits e.g. - 0000 1111 2222 3333 4444 0001 0012 0123 1234

For duplicate digits numbers in Array 1 - The Search for digits in Array 2 has the same criteria as Point A.

.e.g - Array 1 = 0012

- Search Returns - 2100 0012 0210 0120 1200 2100 2001 etc etc

- Search also returns Numbers where 1 number from Array 1 can be different in Array 2

e.g. - 2101 2102 2103 9012 8120 7210 8001 6002 2170 0127 0001 2210 1100 1208 0002 1100 1204 4002 2103 etc etc -

Can some kind soul please kindly write this CPP Function for me ???

Thank you very much for your time.

I hope you have a Great Day Ahead.
Last edited on
I started coding this in CPP and this is all I can muster :-

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <memory.h>
#include <dos.h>

void main(void)
{
FILE *fileptr;

int **mainnum_db;
int dbRows, dbCols;
int db_index;

int **FourD_db;
int sgtotoRows, sgtotoCols;

int char1, char2, char3, charx;

int x, y, z;
int a, b, c, d, e, f, g;

int dbVal1 ,dbVal2, dbVal3, dbVal4, dbVal5, dbVal6, dbVal7, dbVal8;

int dbValx[10];

int theNUMBZ[50];

dbRows=1000;
dbCols=7;

if((mainnum_db = (int **)malloc(dbRows * sizeof(int*)))==NULL)
{
printf("Memory Allocation Failed\n");
exit(0);
}
for(x=0;x!=dbRows;x++)
{
if((mainnum_db[x] = (int *)malloc(dbCols * sizeof(int)))==NULL)
{
printf("Memory Allocation Failed\n");
exit(0);
}
}

for(x=0;x!=1000;x++)
for(y=0;y!=dbCols;y++)
mainnum_db[x][y]=0;

fileptr=fopen("4d RAW database - Format C.txt", "r");

y=0;
x=0;

while(!feof(fileptr))
{
fscanf(fileptr,"%1d%1d%1d%1d,",&dbVal1,&dbVal2,&dbVal3,&dbVal4);

mainnum_db[x][0]=dbVal1;
mainnum_db[x][1]=dbVal2;
mainnum_db[x][2]=dbVal3;
mainnum_db[x][3]=dbVal4;

x++;
}
x--;
db_index=x;

fclose(fileptr);

sgtotoRows=18;
sgtotoCols=7;

if((FourD_db = (int **)malloc(sgtotoRows * sizeof(int*)))==NULL)
{
printf("Memory Allocation Failed\n");
exit(0);
}
for(x=0;x!=sgtotoRows;x++)
{
if((FourD_db[x] = (int *)malloc(sgtotoCols * sizeof(int)))==NULL)
{
printf("Memory Allocation Failed\n");
exit(0);
}
}

for(x=0;x!=sgtotoRows;x++)
for(y=0;y!=sgtotoCols;y++)
FourD_db[x][y]=0;

fileptr=fopen("4d master preditions.txt", "r");

for(x=0;x!=9;x++)
{
fscanf(fileptr,"%1d%1d%1d%1d,",&dbVal1,&dbVal2,&dbVal3,&dbVal4);
FourD_db[x][0]=dbVal1;
FourD_db[x][1]=dbVal2;
FourD_db[x][2]=dbVal3;
FourD_db[x][3]=dbVal4;
}

fclose(fileptr);
a=0;
b=0;
c=0;
d=0;
e=0;
f=0;

for(x=0;x!=9;x++)
{
dbValx[0]=FourD_db[x][0];
dbValx[1]=FourD_db[x][1];
dbValx[2]=FourD_db[x][2];
dbValx[3]=FourD_db[x][3];

printf("[%1d][%d%d%d%d] : ",x+1,FourD_db[x][0],FourD_db[x][1],FourD_db[x][2],FourD_db[x][3]);

for(y=0;y!=db_index;y++)
{
b=0;
c=0;
for(z=0;z!=5;z++)
{
if(dbValx[c]==mainnum_db[y][z])
b++;
c++;
}
if(b >= 3)
{
printf("[%d%d%d%d]",mainnum_db[y][0],mainnum_db[y][1],mainnum_db[y][2],mainnum_db[y][3]);
}
}
printf("\n\n");
}
for(x=0; x<sgtotoCols; x++)
free(FourD_db[x]);
free(FourD_db);

for(x=0; x<dbCols; x++)
free(mainnum_db[x]);
free(mainnum_db);

}
Contents of File - 4d RAW database - Format C.txt

5729,2795,5679,6795,7596,7569,7350,5730,5703,5370,0607,6007,0760,7006,7043,3047,7340,4073,0932,2039,3209,2093,2709,0972,2097,7029,6647,7664,0758,8705,0875,9365,3965,5396,1908,1089,1809,3948,8349,4839,0945,4095,5049,6925,9652,5296,2496,6924,2964,1929,9921,2919,1035,1053,3510,8716,1678,6836,6683,8663,6705,7506,6750,5389,3598,9385,0907,7090,0709,7937,9773,7739,6024,2406,3484,4348,2849,4829,1293,3129,1251,5112,2398,8239,1690,6109,1380,6384,6843,3548,4835,3304,3034,7513,1735,5681,8651,3587,3875,2962,6229,0903,6027,7260,7174,7741,6299,2699,5088,0885,7756,7567,7635,3675,7486,4786,7390,9307,6872,7826,5064,6054,4995,4599,6023,3026,0236,2306,2603,0623,0632,6230,0362,3260,3620,6032,1258,1285,1825,8521,5182,2158,8215,5218,5281,2518,5821,2581,8452,2485,2458,4528,5248,5824,4852,4825,8542,2584,4258,2548,0726,2067,2076,2607,2670,7620,7602,6207,0267,6027,0276,6072,0627,2045,5042,0452,4520,4250,0245,4052,2450,5420,0542,2540,2504,5204,3054,4035,0534,0543,5340,0354,5043,3540,0435,4530,3405,4350,3716,7631,6371,6173,6713,7163,6731,7136,1673,3617,3167,7396,7369,6793,6397,3967,6379,3796,7693,7639,9376,7936,7853,5378,5783,5873,8753,7583,3578,7385,7835,7302,2370,3027,0732,3720,3270,7032,2073,
Contents of File - 4d master preditions.txt

0000,0001,0012,0123,1234,5845,5940,2589,9882,
Last edited on
Topic archived. No new replies allowed.