public void openGoal(){
    /* I.S. G dalam keadaan tertutup.
    *  F.S. Mengecek apakah pemain berhasil meletakkan PathCard di sebelah GoalCard yang berisi RockCard pada Board B.
    *      Jika berhasil, maka G dalam keadaan terbuka.
    *      Jika tidak, maka G tetap dalam keadaan tertutup. */
	
	boolean[][] check = new boolean[6][10];
	int i, j;
	Path_Card P = new Path_Card('0', '0', '0', '0', '0', 0);
	
	for (i=1;i<=5;i++) {
		for (j=1;j<=9;j++) {
			check[i][j]=false;
		}
	}
        Vector<Integer> position1 = new Vector<>(); position1.add(0, 1); position1.add(1, 1);
        Vector<Integer> position2 = new Vector<>(); position2.add(0, 3); position2.add(1, 1);
        Vector<Integer> position3 = new Vector<>(); position3.add(0, 5); position3.add(1, 1);
	if (! Path_Card.GoldCard.CompareCard(MatrixOfCard[1][1]))	
	{this.openGoalRecc(position1, check, P); if (Path_Card.StartCard.CompareCard(P)) {GoalCondition[0] = false;}}		//jika terdapat lintasan dari GoalCard sampai StartCard, maka GoalCard dalam keadaan terbuka
	if (! Path_Card.GoldCard.CompareCard(MatrixOfCard[3][1]))	
	{this.openGoalRecc(position3, check, P); if (Path_Card.StartCard.CompareCard(P)) {GoalCondition[1] = false;}}
	if (! Path_Card.GoldCard.CompareCard(MatrixOfCard[5][1]))	
        {this.openGoalRecc(position3, check, P); if (Path_Card.StartCard.CompareCard(P)) {GoalCondition[2] = false;}}

    }