How to elegantly overwrite a character in a 2d Java array when the player moves to it? -


i coding game in ‘p’ moves across 10x10 board picking ‘doughnuts’ , avoiding ‘walls’. far, have gotten right cannot player ‘p’ overwrite character '@' when player moves latter's position, in other words ‘eat’ doughnut.

i have tried implement in inputmanager method, works problems ‘eats’ doughnuts in order in have been declared, opposed positon of ‘p’.

can please kindly me aspect?

import java.util.random; import java.util.scanner;  public class game {      //initial player , home positions     static int playercolumn = 0;     static int playerrow = 9;     static int homecolumn = 9;     static int homerow = 0;      //variable declaration player , home     static char player = 'p';     static char home = 'h';      //doughnut coordinates     //doughnut 1     static int d1c = 5;     static int d1r = 6;     //doughnut 2     static int d2c = 7;     static int d2r = 1;     //doughnut 3     static int d3c = 1;     static int d3r = 4;     //doughnut 4     static int d4c = 2;     static int d4r = 8;     //doughnut 5     static int d5c = 4;     static int d5r = 5;      //variable declaration doughnuts     static char d1 = '@';     static char d2 = '@';     static char d3 = '@';     static char d4 = '@';     static char d5 = '@';      //board dimension variables     static final int column = 10;     static final int row = 10;      //board setup     static char[][] tenbyten = new char[column][row];      //counters     static int movecounter;     static int doughnutcounter;      public static void main(string[] args) {         while (true) {             boardmanager();             inputmanager();         }     }      public static void boardmanager() {          //iterate through r         (int r = 0; r < tenbyten.length; r++) {             //iterate through c             (int c = 0; c < tenbyten[r].length; c++) {                  tenbyten[c][r] = '.';                  tenbyten[3][2] = 'x';                 tenbyten[3][3] = 'x';                 tenbyten[3][4] = 'x';                 tenbyten[3][5] = 'x';                 tenbyten[3][6] = 'x';                  tenbyten[7][2] = 'x';                 tenbyten[7][3] = 'x';                 tenbyten[7][4] = 'x';                 tenbyten[7][5] = 'x';                 tenbyten[7][6] = 'x';                  tenbyten[2][7] = 'x';                 tenbyten[3][7] = 'x';                 tenbyten[4][7] = 'x';                 tenbyten[5][7] = 'x';                 tenbyten[6][7] = 'x';                  //position doughnuts per coordinates defined @ class level                 tenbyten[d1c][d1r] = d1;                 tenbyten[d2c][d2r] = d2;                 tenbyten[d3c][d3r] = d3;                 tenbyten[d4c][d4r] = d4;                 tenbyten[d5c][d5r] = d5;                  //position player , home accordingly                 tenbyten[playercolumn][playerrow] = player;                 tenbyten[homecolumn][homerow] = home;                  system.out.print(tenbyten[c][r] + " ");             }             system.out.println();         }         system.out.println("");          //user prompt         system.out.println("press 'u' move up, 'd' move down, 'l' move left , 'r' move right");         //move counter         system.out.println(movecounter);         system.out.println(doughnutcounter);          // quit mechanism: valid when player position 'p' equal home 'h'         if (tenbyten[playercolumn][playerrow] == tenbyten[homecolumn][homerow]) {             system.out.println("welcome home and...good bye!");             system.exit(0);         }     }      public static void inputmanager() {         scanner scan = new scanner(system.in);         char inputcharacter = scan.nextline().charat(0);          switch (inputcharacter) {             case 'u':                 if (playerrow == 0) {                     system.out.println("sorry, move takes off board");                 } else if (tenbyten[playercolumn][playerrow - 1] == 'x') {                     system.out.println("you cannot go through wall");                 } else if (tenbyten[playercolumn][playerrow - 1] == tenbyten[d1c][d1r]) {                     doughnutcounter++;                     playerrow = --playerrow;                     d1 = '.';                 } else if (tenbyten[playercolumn][playerrow - 1] == tenbyten[d2c][d2r]) {                     doughnutcounter++;                     playerrow = --playerrow;                     d2 = '.';                 } else if (tenbyten[playercolumn][playerrow - 1] == tenbyten[d3c][d3r]) {                     doughnutcounter++;                     playerrow = --playerrow;                     d3 = '.';                 } else if (tenbyten[playercolumn][playerrow - 1] == tenbyten[d4c][d4r]) {                     doughnutcounter++;                     playerrow = --playerrow;                     d4 = '.';                 } else if (tenbyten[playercolumn][playerrow - 1] == tenbyten[d5c][d5r]) {                     doughnutcounter++;                     playerrow = --playerrow;                     d5 = '.';                 } else {                     movecounter++;                     playerrow = --playerrow;                 }                 break;             case 'd':                 if (playerrow == 9) {                     system.out.println("sorry, move takes off board");                 } else if (tenbyten[playercolumn][playerrow + 1] == 'x') {                     system.out.println("you cannot go through wall");                 }  else if (tenbyten[playercolumn][playerrow + 1] == tenbyten[d1c][d1r]) {                     doughnutcounter++;                     playerrow = --playerrow;                     d1 = '.';                 } else if (tenbyten[playercolumn][playerrow + 1] == tenbyten[d2c][d2r]) {                     doughnutcounter++;                     playerrow = --playerrow;                     d2 = '.';                 } else if (tenbyten[playercolumn][playerrow + 1] == tenbyten[d3c][d3r]) {                     doughnutcounter++;                     playerrow = --playerrow;                     d3 = '.';                 } else if (tenbyten[playercolumn][playerrow + 1] == tenbyten[d4c][d4r]) {                     doughnutcounter++;                     playerrow = --playerrow;                     d4 = '.';                 } else if (tenbyten[playercolumn][playerrow + 1] == tenbyten[d5c][d5r]) {                     doughnutcounter++;                     playerrow = --playerrow;                     d5 = '.';                 } else {                     movecounter++;                     playerrow = ++playerrow;                 }                 break;             case 'l':                 if (playercolumn == 0) {                     system.out.println("sorry, move takes off board");                 } else if (tenbyten[playercolumn - 1][playerrow] == 'x') {                     system.out.println("you cannot go through wall");                 }  else if (tenbyten[playercolumn - 1][playerrow] == tenbyten[d1c][d1r]) {                     doughnutcounter++;                     playerrow = --playerrow;                     d1 = '.';                 } else if (tenbyten[playercolumn - 1][playerrow] == tenbyten[d2c][d2r]) {                     doughnutcounter++;                     playerrow = --playerrow;                     d2 = '.';                 } else if (tenbyten[playercolumn - 1][playerrow] == tenbyten[d3c][d3r]) {                     doughnutcounter++;                     playerrow = --playerrow;                     d3 = '.';                 } else if (tenbyten[playercolumn - 1][playerrow] == tenbyten[d4c][d4r]) {                     doughnutcounter++;                     playerrow = --playerrow;                     d4 = '.';                 } else if (tenbyten[playercolumn - 1][playerrow] == tenbyten[d5c][d5r]) {                     doughnutcounter++;                     playerrow = --playerrow;                     d5 = '.';                 }else {                     movecounter++;                     playercolumn = --playercolumn;                 }                 break;             case 'r':                 if (playercolumn == 9) {                     system.out.println("sorry, move takes off board");                 } else if (tenbyten[playercolumn + 1][playerrow] == 'x') {                     system.out.println("you cannot go through wall");                 } else if (tenbyten[playercolumn + 1][playerrow] == tenbyten[d1c][d1r]) {                     doughnutcounter++;                     playerrow = --playerrow;                     d1 = '.';                 } else if (tenbyten[playercolumn + 1][playerrow] == tenbyten[d2c][d2r]) {                     doughnutcounter++;                     playerrow = --playerrow;                     d2 = '.';                 } else if (tenbyten[playercolumn + 1][playerrow] == tenbyten[d3c][d3r]) {                     doughnutcounter++;                     playerrow = --playerrow;                     d3 = '.';                 } else if (tenbyten[playercolumn + 1][playerrow] == tenbyten[d4c][d4r]) {                     doughnutcounter++;                     playerrow = --playerrow;                     d4 = '.';                 } else if (tenbyten[playercolumn + 1][playerrow] == tenbyten[d5c][d5r]) {                     doughnutcounter++;                     playerrow = --playerrow;                     d5 = '.';                 }else {                     movecounter++;                     playercolumn = ++playercolumn;                 }                 break;             default:                 system.out.println("please ensure enter correct character: 'u', 'd', 'l', or 'r'");         }     } } 

you switching value of initial char, (named d1/2/3/4/5), instead of changing value inside array, @ 1 of positions declared:

tenbyten[d1c][d1r] = "."; 

or..

tenbyten[d2c][d2r] = "."; 

etc...

good luck!


Comments

Popular posts from this blog

sql server - Cannot query correctly (MSSQL - PHP - JSON) -

php - trouble displaying mysqli database results in correct order -

C++ Linked List -