Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 30

Discussione: Problema in Java

  1. #1

    Problema in Java

    Ciao a tutti.
    Ho un problema con Java:
    devo realizzare una classe che mi permetta di giocare a dama, mi hanno consiglioato di memorizzare tutte le caselle della scacchiera in un array. Ma ... come posso fare per far apparire la sistemazione delle pedine a inizio gioco?
    Le classi per pedine e dame le ho gia implementate.
    Qualcuno ha un'idea?
    Rif

  2. #2
    scorri tutte le caselle con un ciclo
    ti ricordi quando da piccoli andavamo in treno? io mettevo il culo fuori dal finestrino e tu la faccia e tutti ci chiedevano se eravamo gemelli...

  3. #3
    Ok, fin qui ci sono, ma come faccio a far visualizzare una pedina nera (con la lettera n) o una bianca (con la lettera b) secondo la configurazione iniziale delle pedine nella scacchiera di dama ?
    Rif

  4. #4
    usi l'incremento giusto!!!
    se non ce la fai prova con le if!!:gren:

    for(int i=0;i<8;i=i+2){
    for(int j=0;j<8; j++){
    if(j<4){
    disponi(i,j,b);
    }else if(j>5){
    disponi(i,j,n);
    }
    }
    }
    Blink@go

    "Non tutto quel che è oro brilla, Ne gli erranti sono perduti; Il vecchio ch'è forte non s'aggrinza, Le radici profonde non gelano.Dalle ceneri rinascerà un fuoco, L'ombra sprigionerà una scintilla, Nuova sarà la lama ormai rotta, E re quei ch'è senza corona."

    ------------
    Lang: java 1.4.1 Eclipse

  5. #5
    Scusa ancora, ma non riesco a combinare niene !
    Allora: io ho creato una classe di un pezzo immaginario della tastiera, poi ne ho create due da questa, una che descrive una pedina e una che descrive una dama.
    ora, devo crare un array per la scacchiera e far visualizzare le mie 24 pedine. Ma nonappena provo a stampare mi da errore come se l'array fosse vuoto !
    Mi sono spiegato male ? Sapresti darmi una mano ?
    Rif

  6. #6
    intanto io avrei fatto estendere direttamente Dama da Pedina.
    class Dama extends Pedina
    considera che la Dama deve avere tutti i metodi di pedina! magari in + ci implementi il metodo vaiIndietro(int).

    Per il problema dell'array vuoto posta il codice di inizializzazione... un array bidimensionale devi inizializzarlo con un doppio ciclo, magari hai sbagliato qualcosa!

  7. #7
    E' vero, diventa molto più facile la gestione delle dame così !
    Per il resto, ho cambiato idea: volevo fare un array di 24 oggetti generici di tipo pezzo, e successivamente un array di 8x8 oggetti dove sistemare le pedine! Ma con questo codice che ti posto mi da un errore java.lang.NullPointerException ! Il codice è richiamato in un altra classe con
    Scacchiera scac = new Scacchiera()
    scac.stampa()

    Ecco il codice :

    public class Scacchiera
    {
    Pezzo[] pezzi;
    public void scacchiera()
    {
    pezzi = new Pezzo[24];
    pezzi[0] = new Pedina ("bianco", 1, "b");
    pezzi[1] = new Pedina ("bianco", 1, "b");
    pezzi[2] = new Pedina ("bianco", 1, "b");
    pezzi[3] = new Pedina ("bianco", 1, "b");
    pezzi[4] = new Pedina ("bianco", 1, "b");
    pezzi[5] = new Pedina ("bianco", 1, "b");
    pezzi[6] = new Pedina ("bianco", 1, "b");
    pezzi[7] = new Pedina ("bianco", 1, "b");
    pezzi[8] = new Pedina ("bianco", 1, "b");
    pezzi[9] = new Pedina ("bianco", 1, "b");
    pezzi[10] = new Pedina ("bianco", 1, "b");
    pezzi[11] = new Pedina ("bianco", 1, "b");

    pezzi[12] = new Pedina ("nero", 1, "n");
    pezzi[13] = new Pedina ("nero", 1, "n");
    pezzi[14] = new Pedina ("nero", 1, "n");
    pezzi[15] = new Pedina ("nero", 1, "n");
    pezzi[16] = new Pedina ("nero", 1, "n");
    pezzi[17] = new Pedina ("nero", 1, "n");
    pezzi[18] = new Pedina ("nero", 1, "n");
    pezzi[19] = new Pedina ("nero", 1, "n");
    pezzi[20] = new Pedina ("nero", 1, "n");
    pezzi[21] = new Pedina ("nero", 1, "n");
    pezzi[22] = new Pedina ("nero", 1, "n");
    pezzi[23] = new Pedina ("nero", 1, "n");
    }

    public void stampa()
    {
    for (int count=0; count<pezzi.length; count++)
    {
    System.out.println(pezzi[count]);
    }
    }
    }
    Rif

  8. #8
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    public void scacchiera() { questo è un metodo
    public Scacchiera() { questo è un costruttore
    se chiami new Scacchiera() il costruttore viene eseguito
    e l'array viene riempito nel metodo, in pratica mai quindi rimane null

  9. #9
    quindi devo usare scacchiera con la lettera minuscola ?
    Rif

  10. #10
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491
    PRIMO:Potresti evitare di inizzializzare l'array posizione x posizione e farlo con un ciclo!!
    Del tipo:

    for(int i=0; i<pezzi.lengh() ;i++){
    if(i<=11) pezzi[i]=new Pedina(....);
    else pezzi[i]=new Pedina(....);
    }

    E' sicuramente più elegante, ma sopratutto più veloce da scrivere!!:adhone:

    SECONDO:
    Il costruttore di una classe deve essere di questo tipo:

    public NomeClasse(){...}

    e sopratutto deve avere la stesso Nome della classe (Attenzione anche le maiuscole sono importanti!!!), prova a cambiare

    public void scacchiera() con
    public Scacchiera()

    Spero di esserti stato di aiuto!!!!!!
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

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 © 2024 vBulletin Solutions, Inc. All rights reserved.