#include<stdio.h>
#include<ctype.h>
#define TIME_TO_RUN 100 //thimes to random the cards
#define HEART 0//Hearts
#define DIAM 1 //Diamonds
#define CLUB 2 //Clubs
#define SPAD 3 //Spades
int isDifference( int val1, int type1, int val2, int type2)
{
return ( ( ( val1 == val2) && ( type1 == type2) ) ) ;
}
char GetType( ) //function that returns a random char from 'h'/'d'/'d'/'s' to the card-type
{
int rndType
= rand ( ) % 4 ; switch ( rndType)
{
case HEART:
return 'h' ;
break ;
case DIAM:
return 'd' ;
break ;
case CLUB:
return 'c' ;
break ;
case SPAD:
return 's' ;
break ;
}
}
char GetValue( ) //function that returns a random char from '0'-'9' OR 'J'/'Q'/'K' to the card-number
{
int rndVal
= rand ( ) % 13 + 1 ;
switch ( rndVal)
{
case 1 :
return 'A' ;
break ;
case 2 :
return '2' ;
break ;
case 3 :
return '3' ;
break ;
case 4 :
return '4' ;
break ;
case 5 :
return '5' ;
break ;
case 6 :
return '6' ;
break ;
case 7 :
return '7' ;
break ;
case 8 :
return '8' ;
break ;
case 9 :
return '9' ;
break ;
case 10 :
return '0' ;
break ;
case 11 :
return 'J' ;
break ;
case 12 :
return 'Q' ;
break ;
case 13 :
return 'K' ;
break ;
}
}
int IsFlash( int n1, int n2, int n3, int n4, int n5)
{
return ( ( n1 == n2) && ( n3 == n4) && ( n1 == n3) && ( n1 == n5) ) ;
}
int main( )
{
char cardVal1 = GetValue( ) ;
char cardType1 = GetType( ) ;
char cardVal2 = GetValue( ) ;
char cardType2 = GetType( ) ;
char cardVal3 = GetValue( ) ;
char cardType3 = GetType( ) ;
char cardVal4 = GetValue( ) ;
char cardType4 = GetType( ) ;
char cardVal5 = GetValue( ) ;
char cardType5 = GetType( ) ;
int countFlash = 0 ;
int i;
for ( i = 0 ; i < TIME_TO_RUN; i++ )
{
if ( cardVal1 == '0' ) //if the val is 10 that means that his char-val is '0'. so i print "1" and then the char-val which is "0". and together its "10".
if ( cardVal2 == '0' ) //if the val is 10 that means that his char-val is '0'. so i print "1" and then the char-val which is "0". and together its "10".
if ( cardVal3 == '0' ) //if the val is 10 that means that his char-val is '0'. so i print "1" and then the char-val which is "0". and together its "10".
if ( cardVal4 == '0' ) //if the val is 10 that means that his char-val is '0'. so i print "1" and then the char-val which is "0". and together its "10".
if ( cardVal5 == '0' ) //if the val is 10 that means that his char-val is '0'. so i print "1" and then the char-val which is "0". and together its "10".
if ( IsFlash( cardType1, cardType2, cardType3, cardType4, cardType5) )
countFlash++;
cardVal1 = GetValue( ) ;
cardType1 = GetType( ) ;
do
{
cardVal2 = GetValue( ) ;
cardType2 = GetType( ) ;
} while
( isDifference( cardVal1, cardType1, cardVal2, cardType12) ) ; //roll another card 2 if card 1 and card 2 are not equal
do
{
cardVal3 = GetValue( ) ;
cardType3 = GetType( ) ;
} while
( isDifference( cardVal1, cardType1, cardVal3, cardType13) //roll another card 3 if card 1 and card 3 are not equal
&& isDifference( cardVal2, cardType2, cardVal3, cardType13) ;
do
{
cardVal4 = GetValue( ) ;
cardType4 = GetType( ) ;
} while
( isDifference( cardVal1, cardType1, cardVal4, cardType14)
&& isDifference( cardVal2, cardType2, cardVal4, cardType14)
&& isDifference( cardVal3, cardType3, cardVal4, cardType14) ;
do
{
cardVal5 = GetValue( ) ;
cardType5 = GetType( ) ;
} while
( isDifference( cardVal1, cardType1, cardVal5, cardType15)
&& isDifference( cardVal2, cardType2, cardVal5, cardType15)
&& isDifference( cardVal3, cardType3, cardVal5, cardType15)
&& isDifference( cardVal4, cardType4, cardVal5, cardType15) ;
}
printf ( "%d flashes happend" , countFlash
) ; return 0 ;
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8Y3R5cGUuaD4KCiNkZWZpbmUgVElNRV9UT19SVU4gMTAwIC8vdGhpbWVzIHRvIHJhbmRvbSB0aGUgY2FyZHMKI2RlZmluZSBIRUFSVCAwLy9IZWFydHMKI2RlZmluZSBESUFNIDEgLy9EaWFtb25kcwojZGVmaW5lIENMVUIgMiAvL0NsdWJzCiNkZWZpbmUgU1BBRCAzIC8vU3BhZGVzCgppbnQgaXNEaWZmZXJlbmNlKGludCB2YWwxLCBpbnQgdHlwZTEsIGludCB2YWwyLCBpbnQgdHlwZTIpCnsKCXJldHVybiAoKCh2YWwxID09IHZhbDIpICYmICh0eXBlMSA9PSB0eXBlMikpKTsKfQoKY2hhciBHZXRUeXBlKCkJLy9mdW5jdGlvbiB0aGF0IHJldHVybnMgYSByYW5kb20gY2hhciBmcm9tICdoJy8nZCcvJ2QnLydzJyB0byB0aGUgY2FyZC10eXBlCnsKCWludCBybmRUeXBlID0gcmFuZCgpICUgNDsKCXN3aXRjaCAocm5kVHlwZSkKCXsKCWNhc2UgSEVBUlQ6CgkJcmV0dXJuICdoJzsKCQlicmVhazsKCWNhc2UgRElBTToKCQlyZXR1cm4gJ2QnOwoJCWJyZWFrOwoJY2FzZSBDTFVCOgoJCXJldHVybiAnYyc7CgkJYnJlYWs7CgljYXNlIFNQQUQ6CgkJcmV0dXJuICdzJzsKCQlicmVhazsKCX0KfQoKY2hhciBHZXRWYWx1ZSgpLy9mdW5jdGlvbiB0aGF0IHJldHVybnMgYSByYW5kb20gY2hhciBmcm9tICcwJy0nOScgT1IgJ0onLydRJy8nSycgdG8gdGhlIGNhcmQtbnVtYmVyCnsKCWludCBybmRWYWwgPSByYW5kKCkgJSAxMyArIDE7CgoJc3dpdGNoIChybmRWYWwpCgl7CgljYXNlIDE6CgkJcmV0dXJuICdBJzsKCQlicmVhazsKCWNhc2UgMjoKCQlyZXR1cm4gJzInOwoJCWJyZWFrOwoJY2FzZSAzOgoJCXJldHVybiAnMyc7CgkJYnJlYWs7CgljYXNlIDQ6CgkJcmV0dXJuICc0JzsKCQlicmVhazsKCWNhc2UgNToKCQlyZXR1cm4gJzUnOwoJCWJyZWFrOwoJY2FzZSA2OgoJCXJldHVybiAnNic7CgkJYnJlYWs7CgljYXNlIDc6CgkJcmV0dXJuICc3JzsKCQlicmVhazsKCWNhc2UgODoKCQlyZXR1cm4gJzgnOwoJCWJyZWFrOwoJY2FzZSA5OgoJCXJldHVybiAnOSc7CgkJYnJlYWs7CgljYXNlIDEwOgoJCXJldHVybiAnMCc7CgkJYnJlYWs7CgljYXNlIDExOgoJCXJldHVybiAnSic7CgkJYnJlYWs7CgljYXNlIDEyOgoJCXJldHVybiAnUSc7CgkJYnJlYWs7CgljYXNlIDEzOgoJCXJldHVybiAnSyc7CgkJYnJlYWs7Cgl9Cn0KCmludCBJc0ZsYXNoKGludCBuMSwgaW50IG4yLCBpbnQgbjMsIGludCBuNCwgaW50IG41KQp7CglyZXR1cm4gKChuMSA9PSBuMikgJiYgKG4zID09IG40KSAmJiAobjEgPT0gbjMpICYmIChuMSA9PSBuNSkpOwp9CgppbnQgbWFpbigpCnsKCWNoYXIgY2FyZFZhbDEgPSBHZXRWYWx1ZSgpOwoJY2hhciBjYXJkVHlwZTEgPSBHZXRUeXBlKCk7CgljaGFyIGNhcmRWYWwyID0gR2V0VmFsdWUoKTsKCWNoYXIgY2FyZFR5cGUyID0gR2V0VHlwZSgpOwoJY2hhciBjYXJkVmFsMyA9IEdldFZhbHVlKCk7CgljaGFyIGNhcmRUeXBlMyA9IEdldFR5cGUoKTsKCWNoYXIgY2FyZFZhbDQgPSBHZXRWYWx1ZSgpOwoJY2hhciBjYXJkVHlwZTQgPSBHZXRUeXBlKCk7CgljaGFyIGNhcmRWYWw1ID0gR2V0VmFsdWUoKTsKCWNoYXIgY2FyZFR5cGU1ID0gR2V0VHlwZSgpOwoKCWludCBjb3VudEZsYXNoID0gMDsKCWludCBpOwoKCWZvciAoaSA9IDA7IGkgPCBUSU1FX1RPX1JVTjsgaSsrKQoJewoJCWlmIChjYXJkVmFsMSA9PSAnMCcpLy9pZiB0aGUgdmFsIGlzIDEwIHRoYXQgbWVhbnMgdGhhdCBoaXMgY2hhci12YWwgaXMgJzAnLiBzbyBpIHByaW50ICIxIiBhbmQgdGhlbiB0aGUgY2hhci12YWwgd2hpY2ggaXMgIjAiLiBhbmQgdG9nZXRoZXIgaXRzICIxMCIuCgkJCXByaW50ZigiMSIpOwoJCXB1dGNoYXIoY2FyZFZhbDEpOwoJCXB1dGNoYXIoY2FyZFR5cGUxKTsKCQlwcmludGYoIlx0Iik7CgoJCWlmIChjYXJkVmFsMiA9PSAnMCcpLy9pZiB0aGUgdmFsIGlzIDEwIHRoYXQgbWVhbnMgdGhhdCBoaXMgY2hhci12YWwgaXMgJzAnLiBzbyBpIHByaW50ICIxIiBhbmQgdGhlbiB0aGUgY2hhci12YWwgd2hpY2ggaXMgIjAiLiBhbmQgdG9nZXRoZXIgaXRzICIxMCIuCgkJCXByaW50ZigiMSIpOwoJCXB1dGNoYXIoY2FyZFZhbDIpOwoJCXB1dGNoYXIoY2FyZFR5cGUyKTsKCQlwcmludGYoIlx0Iik7CgoJCWlmIChjYXJkVmFsMyA9PSAnMCcpLy9pZiB0aGUgdmFsIGlzIDEwIHRoYXQgbWVhbnMgdGhhdCBoaXMgY2hhci12YWwgaXMgJzAnLiBzbyBpIHByaW50ICIxIiBhbmQgdGhlbiB0aGUgY2hhci12YWwgd2hpY2ggaXMgIjAiLiBhbmQgdG9nZXRoZXIgaXRzICIxMCIuCgkJCXByaW50ZigiMSIpOwoJCXB1dGNoYXIoY2FyZFZhbDMpOwoJCXB1dGNoYXIoY2FyZFR5cGUzKTsKCQlwcmludGYoIlx0Iik7CgoJCWlmIChjYXJkVmFsNCA9PSAnMCcpLy9pZiB0aGUgdmFsIGlzIDEwIHRoYXQgbWVhbnMgdGhhdCBoaXMgY2hhci12YWwgaXMgJzAnLiBzbyBpIHByaW50ICIxIiBhbmQgdGhlbiB0aGUgY2hhci12YWwgd2hpY2ggaXMgIjAiLiBhbmQgdG9nZXRoZXIgaXRzICIxMCIuCgkJCXByaW50ZigiMSIpOwoJCXB1dGNoYXIoY2FyZFZhbDQpOwoJCXB1dGNoYXIoY2FyZFR5cGU0KTsKCQlwcmludGYoIlx0Iik7CgoJCWlmIChjYXJkVmFsNSA9PSAnMCcpLy9pZiB0aGUgdmFsIGlzIDEwIHRoYXQgbWVhbnMgdGhhdCBoaXMgY2hhci12YWwgaXMgJzAnLiBzbyBpIHByaW50ICIxIiBhbmQgdGhlbiB0aGUgY2hhci12YWwgd2hpY2ggaXMgIjAiLiBhbmQgdG9nZXRoZXIgaXRzICIxMCIuCgkJCXByaW50ZigiMSIpOwoJCXB1dGNoYXIoY2FyZFZhbDUpOwoJCXB1dGNoYXIoY2FyZFR5cGU1KTsKCQlwcmludGYoIlx0Iik7CgoJCXByaW50ZigiXG4iKTsKCgkJaWYgKElzRmxhc2goY2FyZFR5cGUxLCBjYXJkVHlwZTIsIGNhcmRUeXBlMywgY2FyZFR5cGU0LCBjYXJkVHlwZTUpKQoJCQljb3VudEZsYXNoKys7CgoJCWNhcmRWYWwxID0gR2V0VmFsdWUoKTsKCQljYXJkVHlwZTEgPSBHZXRUeXBlKCk7CgkJZG8KCQl7CgkJCWNhcmRWYWwyID0gR2V0VmFsdWUoKTsKCQkJY2FyZFR5cGUyID0gR2V0VHlwZSgpOwoJCX0gd2hpbGUKCQkJKGlzRGlmZmVyZW5jZShjYXJkVmFsMSwgY2FyZFR5cGUxLCBjYXJkVmFsMiwgY2FyZFR5cGUxMikpOy8vcm9sbCBhbm90aGVyIGNhcmQgMiBpZiBjYXJkIDEgYW5kIGNhcmQgMiBhcmUgbm90IGVxdWFsCgoJCWRvCgkJewoJCQljYXJkVmFsMyA9IEdldFZhbHVlKCk7CgkJCWNhcmRUeXBlMyA9IEdldFR5cGUoKTsKCQl9IHdoaWxlCgkJCShpc0RpZmZlcmVuY2UoY2FyZFZhbDEsIGNhcmRUeXBlMSwgY2FyZFZhbDMsIGNhcmRUeXBlMTMpLy9yb2xsIGFub3RoZXIgY2FyZCAzIGlmIGNhcmQgMSBhbmQgY2FyZCAzIGFyZSBub3QgZXF1YWwKCQkJCSYmIGlzRGlmZmVyZW5jZShjYXJkVmFsMiwgY2FyZFR5cGUyLCBjYXJkVmFsMywgY2FyZFR5cGUxMyk7CgoJCWRvCgkJewoJCQljYXJkVmFsNCA9IEdldFZhbHVlKCk7CgkJCWNhcmRUeXBlNCA9IEdldFR5cGUoKTsKCQl9IHdoaWxlCgkJCShpc0RpZmZlcmVuY2UoY2FyZFZhbDEsIGNhcmRUeXBlMSwgY2FyZFZhbDQsIGNhcmRUeXBlMTQpCgkJCQkmJiBpc0RpZmZlcmVuY2UoY2FyZFZhbDIsIGNhcmRUeXBlMiwgY2FyZFZhbDQsIGNhcmRUeXBlMTQpCgkJCQkmJiBpc0RpZmZlcmVuY2UoY2FyZFZhbDMsIGNhcmRUeXBlMywgY2FyZFZhbDQsIGNhcmRUeXBlMTQpOwoKCQlkbwoJCXsKCQkJY2FyZFZhbDUgPSBHZXRWYWx1ZSgpOwoJCQljYXJkVHlwZTUgPSBHZXRUeXBlKCk7CgkJfSB3aGlsZQoJCQkoaXNEaWZmZXJlbmNlKGNhcmRWYWwxLCBjYXJkVHlwZTEsIGNhcmRWYWw1LCBjYXJkVHlwZTE1KQoJCQkJJiYgaXNEaWZmZXJlbmNlKGNhcmRWYWwyLCBjYXJkVHlwZTIsIGNhcmRWYWw1LCBjYXJkVHlwZTE1KQoJCQkJJiYgaXNEaWZmZXJlbmNlKGNhcmRWYWwzLCBjYXJkVHlwZTMsIGNhcmRWYWw1LCBjYXJkVHlwZTE1KQoJCQkJJiYgaXNEaWZmZXJlbmNlKGNhcmRWYWw0LCBjYXJkVHlwZTQsIGNhcmRWYWw1LCBjYXJkVHlwZTE1KTsKCX0KCglwcmludGYoIiVkIGZsYXNoZXMgaGFwcGVuZCIsIGNvdW50Rmxhc2gpOwoJcmV0dXJuIDA7Cn0K
compilation info
prog.c: In function ‘GetType’:
prog.c:17:16: warning: implicit declaration of function ‘rand’ [-Wimplicit-function-declaration]
int rndType = rand() % 4;
^~~~
prog.c: In function ‘main’:
prog.c:148:49: error: ‘cardType12’ undeclared (first use in this function)
(isDifference(cardVal1, cardType1, cardVal2, cardType12));//roll another card 2 if card 1 and card 2 are not equal
^~~~~~~~~~
prog.c:148:49: note: each undeclared identifier is reported only once for each function it appears in
prog.c:155:49: error: ‘cardType13’ undeclared (first use in this function)
(isDifference(cardVal1, cardType1, cardVal3, cardType13)//roll another card 3 if card 1 and card 3 are not equal
^~~~~~~~~~
prog.c:156:63: error: expected ‘)’ before ‘;’ token
&& isDifference(cardVal2, cardType2, cardVal3, cardType13);
^
prog.c:180:1: error: expected declaration or statement at end of input
}
^
prog.c:180:1: error: expected declaration or statement at end of input
prog.c: In function ‘GetType’:
prog.c:33:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
prog.c: In function ‘GetValue’:
prog.c:81:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
stdout