Игра Point and Array Java - PullRequest
       16

Игра Point and Array Java

0 голосов
/ 22 ноября 2011

Я собираюсь создать игру в cmd (не в графическом интерфейсе) в Java, это более крупный проект, но сейчас мне бы хотелось узнать, как бы я создал сетку 12x12, породив игрока с 0,0 (слева). верхний угол) и переместить его с помощью клавиш?

Я попытался создать массив, но, похоже, движение не сработало. Я новичок, поэтому буду рад любым предложениям.

package hunters;
import java.io.*;
import java.util.*; 
import java.awt.*;


public class Hunters {

        private static int score;
       private static String player = "P";
       private static String move;
     private static   String emptyfield = "X";
     private static   String [][]a2 = new String [12][12];
 private static int pr,cr;

 public static void paint_board(){
for (int r = 0 ; r < a2.length; r++){
    for (int c= 0; c <a2[r].length; c++){
        a2 [r][c] = emptyfield;
        a2[pr][cr] = player;
        System.out.print(" "+a2[r][c]);
    }
  System.out.println("");

}
  }
  public static void main(String[] args){

      Scanner in = new Scanner(System.in);
score = 0;

 paint_board();
 do{
System.out.println("Input your move");

move = in.nextLine();
if (move.equalsIgnoreCase("w")){
 //move up
   a2[pr-1][cr]= player;
    //repaint
   paint_board();
    //check for collision
    //check for health

}else if(move.equalsIgnoreCase("s")){
    //move down
    a2[pr+1][cr]= player;
    //repaint
    paint_board();
      //check for collision
    //check for health

}else if(move.equalsIgnoreCase("d")){
    //move right
    a2[pr][cr+1] = player;
    //repaint
    paint_board();
      //check for collision
    //check for health

}else if(move.equalsIgnoreCase("a")){
    //move left
    a2[pr][cr-1]=player;
    //repaint
    paint_board();
      //check for collision
    //check for health

}
}while(score !=5);
}   
}

Я бы хотел, чтобы это работало. Я пытался создать отдельный класс Position, но мне не удалось в этом процессе ... `

Ответы [ 2 ]

1 голос
/ 22 ноября 2011

Создание 2D-массива, способ рисовать ячейку в 2D-массиве (который может содержать различные объекты, как определено значением ячейки).Таким образом, вы можете проверить квадрат для рисования, и если значение равно ЧЕЛОВЕК (предварительно определенная константа), тогда нарисуйте человека в этом месте на экране.ячейка, которая содержит человека и переместить его в новое место назначения в зависимости от ключа.Затем нарисуйте лабиринт снова.

0 голосов
/ 22 ноября 2011

«Массив» - определенно правильная идея - вероятно, я бы использовал двумерный массив для хранения пространств сетки.Но - что будет в массиве?Объекты, которые представляют пространства, через которые проходит пользователь?Это круто;вам придется выяснить, как определить эти пробелы, и выяснить, как отображать каждое из них на экране.

Вы, вероятно, не можете использовать KeyListener для проверки нажатия клавиш пользователя, поскольку KeyListenerявляется частью AWT / Swing, но вам понадобится способ получить ввод с клавиатуры.Чтение с stdin - это простой способ перейти сюда.Вам нужно будет запустить цикл, который прослушивает ввод данных пользователем с клавиатуры и перемещает «игровой элемент» пользователя от квадрата к квадрату в зависимости от того, какую клавишу он нажал.

...