Kart Oyunu

Kategori: Java , 08 Temmuz 2019 , JanFranco


4x4 kartın olduğu bir platformda her tur 2 kartı açıp, aynı kartları bulup yok etmeye çalıştığımız bir oyun tasarlayacağız. Bunun için bir kart sınıfı tanımlayacağız. Bu kart sınıfının iki değişkeni olacak. Kartın üzerinde yazan değer ve o kartın tahmin edilip edilmediği:


public class Card {

	private char value;
	private boolean guess = false;
	
	public Card(char value) {
		this.value = value;
	}

	public char getValue() {
		return value;
	}

	public void setValue(char value) {
		this.value = value;
	}

	public boolean isGuess() {
		return guess;
	}

	public void setGuess(boolean guess) {
		this.guess = guess;
	}

}
Algoritma şu şekilde işleyecek: Bu kart sınıfından 4x4 lük toplam 16 obje barındıran 2 boyutlu bir array tanımlayacağız. Kullanıcı her tur i ve j değerlerini girerek iki kart seçecek. Seçtiği zaman bu kartların tahmin değerleri True olacak. Daha sonra oyun tahtası konsola yazdırılacak. Tahmin değeri True olan kartların değerleri konsola basılırken, False olan kartların yerine | | şeklinde bir yazı yazılacak. Seçilen iki kart karşılaştırılacak. Eğer farklı kartlar ise tahmin değerleri tekrar False olacak. Oyunun bittiğini kontrol eden bir fonksiyon ve ekrana oyun platformunu basan iki fonksiyon olacak ve while döngüsü içinde sürekli olarak çalışacaklar:

import java.util.Scanner;

public class Main_class {
	
	private static Card[][] cards = new Card[4][4];
	
	public static void game_board() {
		
		for(int i=0; i<4; i++) {
			System.out.println("____________________");
			for(int j=0; j<4; j++) {
				if(cards[i][j].isGuess()) {
					System.out.print(" |" + cards[i][j].getValue() + "| ");
				}
				else {
					System.out.print(" | | ");
				}
			}
			System.out.print("\n");
		}
		System.out.println("____________________");
	}
	
	public static void guess() {
		Scanner scanner = new Scanner(System.in);
		
		System.out.println("First guess : i - j = ");
		int i1 = scanner.nextInt();
		int j1 = scanner.nextInt();
		if((i1 >= 0 && i1 <= 3) && (j1 >= 0 && j1 <= 3)) {
			cards[i1][j1].setGuess(true);
			game_board();
			
			System.out.println("Second guess : i - j = ");
			int i2 = scanner.nextInt();
			int j2 = scanner.nextInt();
			if((i2 >= 0 && i2 <= 3) && (j2 >= 0 && j2 <= 3)) {
				cards[i2][j2].setGuess(true);
				game_board();
				
				if(cards[i1][j1].getValue() != cards[i2][j2].getValue()) {
					cards[i1][j1].setGuess(false);
					cards[i2][j2].setGuess(false);
				}
			}
		
		}
			
	}
	
	public static boolean game_over() {
		for(int i=0; i<4; i++) {
			for(int j=0; j<4; j++) {
				if(!(cards[i][j].isGuess())) {
					return false;
				}
			}
		}
		return true;
	}
	
	public static void main(String args[]) {
		
		cards[0][0] = new Card('E');
		cards[0][1] = new Card('A');
		cards[0][2] = new Card('B');
		cards[0][3] = new Card('F');
		cards[1][0] = new Card('G');
		cards[1][1] = new Card('A');
		cards[1][2] = new Card('D');
		cards[1][3] = new Card('H');
		cards[2][0] = new Card('F');
		cards[2][1] = new Card('C');
		cards[2][2] = new Card('D');
		cards[2][3] = new Card('H');
		cards[3][0] = new Card('E');
		cards[3][1] = new Card('G');
		cards[3][2] = new Card('B');
        	cards[3][3] = new Card('C');
				
		while(!game_over()) {
			game_board();
			guess();
		}
		
	}
	
}
>>

____________________
 | |  | |  | |  | | 
____________________
 | |  | |  | |  | | 
____________________
 | |  | |  | |  | | 
____________________
 | |  | |  | |  | | 
____________________
First guess : i - j = 
1 1
____________________
 | |  | |  | |  | | 
____________________
 | |  |A|  | |  | | 
____________________
 | |  | |  | |  | | 
____________________
 | |  | |  | |  | | 
____________________
Second guess : i - j = 
0 0
____________________
 |E|  | |  | |  | | 
____________________
 | |  |A|  | |  | | 
____________________
 | |  | |  | |  | | 
____________________
 | |  | |  | |  | | 
____________________
____________________
 | |  | |  | |  | | 
____________________
 | |  | |  | |  | | 
____________________
 | |  | |  | |  | | 
____________________
 | |  | |  | |  | | 
____________________
GitHub link: Card Game


Sonraki Yazı: for-each Loop
Yorumlar

Henüz bir yorum bulunmuyor.
Yorum bırakın