Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    9

    Problema con la programmazione di BattleShip

    Sto programmando una sorta di BattleShip. Ho creato prima una classe Cell, ed ora sto cercando
    di definire una classe BattleShip, con un costruttore che crea una matrice 10x10 di celle.
    Quando richiamo il costruttore però riscontro un NullPointException.
    Ecco il codice

    public class BattleShip
    {
    private Cell[][] field;
    //Constructor that occupies 20% of all cells randomly
    public BattleShip()
    {
    field = new Cell[10][10];

    for(int i = 0; i < 10; i++)
    {
    for(int j = 0; j < 10; j++)
    {
    if(Math.random() < 0.2)
    {
    field[i][j].occupiedCell();
    }
    }
    }
    }

    scrivo anche il costruttore di una Cell

    public class Cell
    {
    private boolean hit;
    private boolean occupied;
    //Constructor
    public Cell()
    {
    hit = false;
    occupied = false;
    }

    il metodo che vedete nel primo costruttore, occupiedCell() rappresenta il cambiamento in true
    della variabile occupied.

    Non riesco a capire dov'è l'errore.

    Qualcuno può darmi una mano?

    Grazie in anticipo

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Problema con la programmazione di BattleShip

    Originariamente inviato da McRea
    codice:
    public class BattleShip
    {
    private Cell[][] field;
    //Constructor that occupies 20% of all cells randomly
        public BattleShip()
        {
            field = new Cell[10][10];
    ....
    Non riesco a capire dov'è l'errore.
    new Cell[10][10] non istanzia 100 oggetti Cell!!! Istanzia un array di array di 10x10 reference (di tipo Cell) inizialmente a null.
    Devi istanziare anche gli oggetti Cell da assegnare poi nell'array!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    9
    Grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.