Avatar billede Slettet bruger
22. september 2012 - 13:18 Der er 3 kommentarer og
1 løsning

Battleship spil

Hej

Jeg er ved at lave et battleship spil, som er lektie på mit nye studie. Jeg kan dog ikke få den til at gøre en bestemt ting, nemlig at erstatte det første C i strengen til et X, jeg bruger replaceFirst(), men uden held? Er der nogen der kan se hvad jeg gør galt?

import java.util.*;

public class BattleshipExercise4 {
   
    public static String carrier         = "CCCC";
    public static String battleShip     = "BBBB";
    public static String destroyer     = "DDD";
    public static String submarine     = "S";
    public static String patrol         = "PP";
    public static String star            = "*";
    public static int Board                = 12;
   
    public static void main ( String [] args ) {
       
        Scanner console = new Scanner ( System.in );
        createBoard ();
        System.out.println ();
        System.out.print ( "Indtast venligst din breddegrad og længdegrad, adskilt med mellemrum: " );
        int userWidth = console.nextInt();
        int userHeight = console.nextInt();
        shootAt ( userWidth, userHeight );
    }
   
    //Methods
   
    //Board
    public static void createBoard () {
   
        printLine ( star, 0 );
        printLine ( star, 0 );
        printLine ( carrier, 3 );
        printLine ( battleShip, 7 );
        printLine ( star, 0 );
        printLine ( star, 0 );
        printLine ( destroyer, 6 );
        printLine ( star, 0 );
        printLine ( star, 0 );
        printLine ( submarine, 1 );
        printLine ( patrol, 6 );
   
    }
    public static void printLine ( String character, int starsBefore ) {
   
        for ( int i = 1; i <= starsBefore; i++ ) {
            System.out.print ( star );
        }
        System.out.print ( character );
        for ( int k = 1; k <= ( Board - ( character.length() + starsBefore ) ); k++ ) {
            System.out.print ( star );
        }
        System.out.println ();
       
    }
   
    //ShootAt
    public static void shootAt ( int width, int height ) {
   
        if ( width == 4 && height == 3 ) {
            System.out.println ( "Du ramte en carrier!" );
            carrier.replaceFirst ( "C", "X" );
        } else if ( width == 8 && height == 11 ) {
            System.out.println ( "Du ramte et Battleship!" );
            battleShip.replaceFirst ( "B", "X" );
        } else if ( width == 7 && height == 7 ) {
            System.out.println ( "Du ramte en destroyer!" );
        } else if ( width == 2 && height == 10 ) {
            System.out.println ( "Du ramte en submarine!" );
        } else if ( width == 7 && height == 12 ) {
            System.out.println ( "Du ramte en patrolboat." );
        } else {
            System.out.println ( "Forbier! - Prøv igen!" );
        }
        createBoard();
    }
}
Avatar billede arne_v Ekspert
22. september 2012 - 13:47 #1
carrier.replaceFirst ( "C", "X" );

skal nok vaere:

carrier = carrier.replaceFirst ( "C", "X" );

replaceFirst returnerer en ny streng - den aendrer ikke i den gamle.
Avatar billede Slettet bruger
22. september 2012 - 13:52 #2
Tusinde tak! - Har siddet og nørklet med det problem længe, mange gange tak! :) - Opretter du et svar til pointene? :)
Avatar billede arne_v Ekspert
22. september 2012 - 14:09 #3
svar
Avatar billede arne_v Ekspert
22. september 2012 - 14:10 #4
Der er faktisk ingen String metoder som aendrer vaerdien af String. Det er altid en ny String.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester