Podstawa do stworzenia gry Kółko i krzyżyk

0

Witam, mam do napisania podstawę do stworzenia gry w kółko i krzyżyk. Nie ma być to kompletna gra a jedynie część metod itd które potem mają posłużyć do stworzenia samej gry. Program bez użycia tablic, jedynie opiera się na stringach. Plansza ma składać się z trzech sklejonych łańcuchów Stringów (na początek pustych, czyli "---"). Mój aktualny problem dotyczy metod putX, putO a także prywatnej metody put, którą ma być podstawa dwóch pozostałych. Na razie pomijam obsługę wyjątków itp, chodzi jedynie o wstępny kod. Prosiłbym tez o zerknięcie na metodę getRow, która przy wywołaniu zwraca zawsze pierwszy rząd niezależnie od podanej wartości.

 public class Plansza {

	
	String wiersz1 = ("---");
	String wiersz2 = ("---");		
	String wiersz3 = ("---");
	int x,y;


	public Plansza (String w1, String w2, String w3) {
		
		String wiersz1 = w1;
		String wiersz2 = w2;
		String wiersz3 = w3;
	}
	
	private void put(int x, int y, char znak) {
		
		char z1 =znak ;
		String wiersze = "---";
		
		char c1= wiersze.charAt(0);
		char c2= wiersze.charAt(1);
		char c3= wiersze.charAt(2);	
		
		if ( x > 2 | y > 2) System.out.println("bledne dane");
		
		if (x == 0 & y == 0){
		
			String nowyWiersz = "" + znak + c2 + c3;
			wiersz1 = nowyWiersz; 
				}
		else
			if (x == 1 & y == 0) {
				String nowyWiersz = "" + c1 + znak + c3;
				wiersz1 = nowyWiersz;
			}
		else
			if (x == 2 & y == 0) {
					String nowyWiersz = "" + c1 + c2 + znak;
					wiersz1 = nowyWiersz;
				}
		else
			if (x == 0 & y == 1) {
					String nowyWiersz = "" + znak + c2 + c3;
					wiersz2 = nowyWiersz;
					}
		else
			if (x == 1 & y == 1) {
					String nowyWiersz = "" + c1 + znak + c3;
					wiersz2 = nowyWiersz;
					}
		else
			if (x == 2 & y == 1) {
					String nowyWiersz = "" + c1 + c2 + znak;
					wiersz2 = nowyWiersz;
					}
		else
			if (x == 0 & y == 2) {
					String nowyWiersz = "" + znak + c2 + c3;
					wiersz3 = nowyWiersz;
						}
		else
			if (x == 1 & y == 2) {
					String nowyWiersz = "" + c1 + znak + c3;
					wiersz3 = nowyWiersz;
						}
		else
			if (x == 2 & y == 2) {
					String nowyWiersz = "" + c1 + c2 + znak;
					wiersz3 = nowyWiersz;
						}		
		
	}
	public void putX(int x, int y) {
		
		char znak = 'X';		
		put(x, y, znak);
		
		
		
	}
	
	public void putO(int x, int y) {

		char znak = 'O';		
		put(x, y, znak);
	}
	
	//public boolean isFull(Plansza p) {	}
	
	//public char get(int x, int y) {
	//	return wiersz1;
	//}
	
	 public String getRow(int rowNumber){
	
		String wiersz = "";

			if( y == 0 )

				wiersz = wiersz1;

			else

				if( y == 1 )

					wiersz = wiersz2;

			else

				wiersz = wiersz3;
			return wiersz;
	}
	
	//public String setCol(int colNumber){
		
	//}    

    //public String getSlashRow() {
    	
    //}

    //public String getBackslashRow(){
    	
    //}
	
	public String toString() {
		return ("wiersz1: " + wiersz1 + "\n" + "wiersz2: "
				+ wiersz2 + "\n" + "wiersz3: " + wiersz3);
	}

oraz main:

 
public class KolkoiKrzyzyk {

	
	public static void main(String[] args) {
		
		Plansza p = new Plansza("", "", "");
		
		String pierwszyWiersz = p.getRow(1);
		
		System.out.println(p);
		System.out.println(pierwszyWiersz);
		

	}

}
0

Podstawowe błędy:

  1. Używasz | i & zamiast || i &&
  2. Duplikacja kodu
  3. W metodzie put masz na stałe wpisane
    String wiersze = "---";
    Nie jest to poprawne - ten wiersz może już zawierać jakiś znak.

1 użytkowników online, w tym zalogowanych: 0, gości: 1