Inserire degli elementi sui contorni di una matrice

di il
3 risposte

Inserire degli elementi sui contorni di una matrice

Ciao ragazzi, sto riscontrando un problema e non so proprio come risolverlo, praticamente dopo aver creato una matrice di interi, che dovrebbe rappresentare il campo di gioco della battaglia navale, chiedo all'utente dove vuole inserire le navi.
Per inserimento c'è una regola semplice:
una nave non si deve toccare con un altra, ossia oltre a non sovrapporsi deve stare una casella di distacco tra una nave e altra.
Il campo di gioco, come detto prima io l'ho fatto con una matrice di interi riempita di 0.
Quando inserisco una nave che puo essere di varie dimensioni:
-5 caselle (vuol dire cinque 1 in modo orizzontale o verticale, dipende da cosa sceglie utente)
-4 caselle (vuol dire quattro 1 in modo orizzontale o verticale, dipende da cosa sceglie utente) e cosi via......

quando ho fatto il codice oltre a controllare se quella posizione in quelle specifiche coordinate è gia occupata, controllo anche se i contorni sono assumono il valore di 0.
Il problema arriva quando voglio inserire una nave nei bordi della matrice dove il controllo dei contorni non puo essere effettuato perche o a sinistra o a destra o in alto o in basso non c'è nessun 0 visto che la matrice è terminata.
vi allego uno screenshot:


Grazie mille a tutti
Allegati:
32192_e13cb3b9c4d93c39779a46aceaa9d722.png
32192_e13cb3b9c4d93c39779a46aceaa9d722.png

3 Risposte

  • Re: Inserire degli elementi sui contorni di una matrice

    E qual è il problema col codice?
  • Re: Inserire degli elementi sui contorni di una matrice

    byluca02 ha scritto:


    controllo anche se i contorni assumono il valore di 0
    Ciao, e se invece di controllare che la nave "confini" con tutti 0, ti assicurassi invece che la nave non "confini" con nessun 1 (prestando ovviamente attenzione a quelle che sono le dimensioni della matrice, evitando di accedere a zone di memoria che non gli competono)?

    In ogni caso volendo continuare sulla strada da te delineata ti basta semplicemente aggiungere una cornice di 0 alla matrice che stai attualmente considerando (il che ovviamente si traduce nell'aggiungere due righe e due colonne, oltre ad altri ovvi accorgimenti)!
  • Re: Inserire degli elementi sui contorni di una matrice

    Ok grazie mille
Devi accedere o registrarti per scrivere nel forum
3 risposte