ok, i know i ask alot :| so if i am annoying...well
but th ething is, i am rewriting my casio patience game in C, thought it would be a good exercise
![:D](/dot/public/style_emoticons/default/biggrin.png)
i know the random number sequence i posted worked after all, so does the code kucalc showed me. But for some reason i get the same play table everytime i run the code i post below and i do not understand why. It looks like the play_table stock and the visible stock is filled in the same way everytime i run the program.
#include "fxlib.h"
#include "stdlib.h"
#include "stdio.h"
int heart[7][7]= {{0,1,1,0,1,1,0},{1,0,0,1,0,0,1},{1,0,0,1,0,0,1},{1,0,0,0,0,0,1},{0,1,0,0,0,1,0}
,{0,0,1,0,1,0,0},{0,0,0,1,0,0,0}};
int club[7][7]= {{0,0,0,1,0,0,0},{0,0,1,1,1,0,0},{0,1,0,1,0,1,0},{1,1,1,1,1,1,1},{0,1,0,1,0,1,0}
,{0,0,0,1,0,0,0},{0,0,1,1,1,0,0}};
int spade[7][7]= {{0,0,0,1,0,0,0},{0,0,1,1,1,0,0},{0,1,1,1,1,1,0},{1,1,1,1,1,1,1},{1,1,1,1,1,1,1}
,{1,1,1,1,1,1,1},{0,1,1,0,1,1,0}};
int diamond[7][7]=
{{0,0,0,1,0,0,0},{0,0,1,0,1,0,0},{0,1,0,0,0,1,0},{1,0,0,0,0,0,1},{0,1,0,0,0,1,0}
,{0,0,1,0,1,0,0},{0,0,0,1,0,0,0}};
int x_symb;
int y_symb;
int x_card;
int y_card;
int x_sel;
int y_sel;
int i;
int j;
int k;
int l;
int play_table[7][20];
int visible[7][20];
int ace_table[4][13];
int draw_stock[24];
int pick_stock[24];
int moves;
int card_memory;
int counter=0;
unsigned int key;
int new_stock[52];
int shuffle_stock[52];
void shuffle()
{
counter=0;
for(i=0;i<=52;i++){
new_stock[i]=i+1;
}
while(counter<52){
i=(int)((float)rand()*52/(RAND_MAX+1));
if(new_stock[i]!=0){
shuffle_stock[counter]=new_stock[i];
new_stock[i]=0;
counter=counter+1;
}
}
}
void fill_playstocks()
{
/*fill table*/
counter=0;
for(i=0;i<=6;i++){
for(j=i;j<=6;j++){
play_table[j][i]=shuffle_stock[counter];
shuffle_stock[counter]=0;
counter=counter+1;
}
}
}
void visibility()
{
/*visibility*/
for(i=0;i<=6;i++){
for(j=i;j<=6;j++){
if(play_table[j][i]!=0){
visible[j][i]=1;
}
if(play_table[j][i+1]==0){
visible[j][i]=2;
}
}
}
}
draw_table()
{
/*draw Table*/
for(i=0;i<=6;i++){
for(j=i;j<=6;j++){
x_card=(j*12);
y_card=(i*2);
Bdisp_PutDisp_DD();
Bdisp_DrawLineVRAM(2+x_card,2+y_card,10+x_card,2+y_card);
Bdisp_DrawLineVRAM(1+x_card,3+y_card,1+x_card,17+y_card);
Bdisp_DrawLineVRAM(11+x_card,3+y_card,11+x_card,17+y_card);
if(visible[j][i]==2&visible[j][i+1]==0){
Bdisp_DrawLineVRAM(2+x_card,18+y_card,10+x_card,18+y_card);
}
}
}
}
draw_symbol()
{
/*draw symbols*/
for(i=0;i<=6;i++){
for(j=i;j<=6;j++){
Bdisp_PutDisp_DD();
if(visible[j][i]==2&visible[j][i+1]==0){
x_symb=(j*12)+3;
y_symb=(i*2)+4;
if(play_table[j][i]<=13){
for(k=0;k<=6;k++){
for(l=0;l<=6;l++){
if(heart[l][k]==1){
Bdisp_SetPoint_DDVRAM(x_symb+k,y_symb+l,1);
}
}
}
}
if(play_table[j][i]>=14&play_table[j][i]<=26){
for(k=0;k<=6;k++){
for(l=0;l<=6;l++){
if(club[l][k]==1){
Bdisp_SetPoint_DDVRAM(x_symb+k,y_symb+l,1);
}
}
}
}
if(play_table[j][i]>=27&play_table[j][i]<=39){
for(k=0;k<=6;k++){
for(l=0;l<=6;l++){
if(spade[l][k]==1){
Bdisp_SetPoint_DDVRAM(x_symb+k,y_symb+l,1);
}
}
}
}
if(play_table[j][i]>=40&play_table[j][i]<=52){
for(k=0;k<=6;k++){
for(l=0;l<=6;l++){
if(diamond[l][k]==1){
Bdisp_SetPoint_DDVRAM(x_symb+k,y_symb+l,1);
}
}
}
}
}
}
}
}
int AddIn_main(int isAppli, unsigned short OptionNum)
{
Bdisp_AllClr_DDVRAM();
shuffle();
fill_playstocks();
visibility();
draw_table();
draw_symbol();
/*gameplaying section*/
while(1){
GetKey(&key);
}
return 1;
}
/*leave unchanged*/
#pragma section _BR_Size
unsigned long BR_Size;
#pragma section
#pragma section _TOP
int InitializeSystem(int isAppli, unsigned short OptionNum)
{
return INIT_ADDIN_APPLICATION(isAppli, OptionNum);
}
#pragma section
i think it has something to do with de values every function returns but i am not shure. if anyone finds the time to help me... well thanks in advance