I cant solve this algorithm :(

???
Hi everyone;

I am working on a very simple Solitare Game, fisrtly, i had started with sorting 28 cards into 7 rows and columns. I am using ArrayList to add 28 cards` location on the form.

As you know, solitare game starts with first row delivering 7 cards, then 2nd row delivering 6 cards etc…
Like this:

|||||||
||||||
|||||
||||
|||
||
|

I am trying to add cards`locations into ArrayList exactly like this;

        xTut.Add(50); //1
        xTut.Add(150);
        xTut.Add(250);
        xTut.Add(350);
        xTut.Add(450);
        xTut.Add(550);
        xTut.Add(650);
        xTut.Add(150);
        xTut.Add(250);
        xTut.Add(350);//10
        xTut.Add(450);
        xTut.Add(550);
        xTut.Add(650);
        xTut.Add(250);
        xTut.Add(350);//15
        xTut.Add(450);
        xTut.Add(550);
        xTut.Add(650);
        xTut.Add(350);
        xTut.Add(450);//20
        xTut.Add(550);
        xTut.Add(650);
        xTut.Add(450);
        xTut.Add(550);
        xTut.Add(650);//25
        xTut.Add(550);
        xTut.Add(650);
        xTut.Add(650);//28
        yTut.Add(10);//1
        yTut.Add(10);
        yTut.Add(10); 
        yTut.Add(10); 
        yTut.Add(10);//5 
        yTut.Add(10); 
        yTut.Add(10); 
        yTut.Add(40); 
        yTut.Add(40); 
        yTut.Add(40);//10 
        yTut.Add(40); 
        yTut.Add(40); 
        yTut.Add(40); 
        yTut.Add(70); 
        yTut.Add(70);//15 
        yTut.Add(70);
        yTut.Add(70);
        yTut.Add(70);
        yTut.Add(100);
        yTut.Add(100);//20
        yTut.Add(100);
        yTut.Add(100);
        yTut.Add(130);
        yTut.Add(130);
        yTut.Add(130);//25
        yTut.Add(160);
        yTut.Add(160);
        yTut.Add(190);//28

i couldnt figure out an algorithm to calculate this locations like nested for loops or smt.
program works well if i add 28 cards` locations manually, which is not good programming.

i have created yTut and xTut arraylists and tried,

static public void koordinatHesap(){
xTut.Add(x);
yTut.Add(y);
for (int a = 0; a <= 6; a++)
{
int x = 50;
x = a * 100 + x;
xTut.Add(x);
for (int b = 0; b <= a; b++)
{

                int y = 10;
                y = b * 30 + y;
                yTut.Add(y);

            }
        }
    }

but doesnt work, anyone can help me please? Thanks.

How about something simpler, like the following:

public void initialDeal() {
   int board[97];  // only 97 possible board positions (7 columns with 6 face down and 13 face up being the longest column)
   for (int i=0; i<97; i++) {
      board[i] = 0;  // no card yet
   }
   for (int row=0; row<7; row++) {
      for (int col=6; col >=row; col--) {
         boolean faceUp = (col == row);
         board[(row*13)+col] = drawCard(faceUp);  // row 0 is at the top, col 0 is at the left
      }
   }
}