Tablice dwuwymiarowe.

0

Witam, nie będę się zbytnio rozdrabniał, ale niedawno rozpocząłem naukę Java.
I tutaj mam pewne zadanie, które 2 podpunkty przerastają moje możliwości:

1.Wypełni dwuwymiarową tablicę zerami. Wymiary tablicy mają być przechowywane na zmiennych, aby umożliwić łatwą ich modyfikację.
2.Niektóre komórki wypełni jedynkami (liczba tych komórek również będzie przechowywana na zmiennej).
3.W pętli będzie pobierał od gracza współrzędne komórki tablicy. Jeśli w podanej komórce jest 1, to zwiększa liczbę uzyskanych punktów. Ilość strzałów, jakie może oddać gracz jest parametrem gry (przechowuje się ją na jakiejś zmiennej).
4.Na końcu wypisuje liczbę zdobytych punktów.

Punkt 1 oraz 2 już stworzyłem, natomiast nad 3 i 4 nie jestem w stanie przeskoczyć :

Kod:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Dwa {

public Dwa() {
}

public static int [][] generujtablicezer(int ix, int iy) {
int tablica[][] = new int[ix][iy];
for(int i = 0; i < ix; i++)
for(int j = 0; j < iy; j++)
tablica[i][j] = 0;
return tablica;
}

public static void main(String[] args) {
int ix = 10;
int iy = 10;
BufferedReader we = new BufferedReader(new InputStreamReader(System.in));
String s = null;
String s2[] = new String[2];
int tablica[][] = generujtablicezer(ix, iy);

System.out.println("Podaj rozmiar tablic x,y - dwie liczby całkowite przedzielone przecinkiem.");
int ilicznikjedynek = 0;
int i, j;
try {
  s = we.readLine();
  if ((s != null) && (!s.equals(""))) {
    s2 = s.split(",");
    ix = new Integer(s2[0].trim());
    iy = new Integer(s2[1].trim());
    tablica = generujtablicezer(ix, iy);
  }
} catch (IOException ex) {
  ex.printStackTrace();
} 

wypisztablice(tablica);

System.out.println("Podaj indeksy komórek w postaci x,y - dwie liczby całkowite przedzielone przecinkiem. 0,0 To poczatek tablicy");
System.out.println("Wartości tablicy dla podanych wartości zostaną ustawione na 1");
do {
  try {
    s = we.readLine();
    if ((s != null) && (!s.equals(""))) {
      s2 = s.split(",");
      i = new Integer(s2[0].trim());
      j = new Integer(s2[1].trim());
      tablica[i][j] = 1;
      ilicznikjedynek++;  
    }
  } catch (IOException ex) {
    ex.printStackTrace();
  }
} while ((s != null) && (!s.equals("")));
wypisztablice(tablica);
System.out.println("Liczba ustawionych wartości na 1 wynosi " + ilicznikjedynek);

}

private static void wypisztablice(int[][] tablica) {
for(int i = 0; i < tablica.length; i++) {
for(int j = 0; j < tablica[i].length; j++) {
System.out.print(tablica[i][j] + "\t");
}
System.out.println("");
}
System.out.println("");
}
}


Jeżeli jakaś dobra dusza byłaby wstanie dokończyć pkt 3 lub 4 ewentualnie podać sugestię jak to zrobić - byłbym niesamowicie wdzięczny.
Pozdrawiam

0

przecież to możesz łatwo wykonać na podstawie tego co już masz

pseudokod:

int liczbaStrzalow = 10;
int wynik = 0;
int strzalNr = 0;

while(strzalNr < liczbaStrzalow )
{
   sczytywanie wspolrzednych tablicy
   sprawdzenie w ifach czy wspolrzedne nie przekraczaja zakresu tablicy
   jesli przekraczaja to 
   continue;
 jesli nie to  strzalNr++;

   if(tablica[wspolrzedna1][wspolrzedna2] == 1)
   {
     wynik++;
     
   }
     

}

System.out.println("Twoj wynik: " + wynik);
0

Dzięki wielkie.

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