在2D对象数组中打印坐标标记。 Java的

时间:2016-05-24 14:10:58

标签: java arrays multidimensional-array coordinates

我试图在2D阵列上打印出坐标指示符...
我已经用另一个类来实例化数组中的对象。

我需要在两个(本地?)变量中存储坐标,然后在打印数组中显示这些坐标的位置。 (已经用各种对象实例化了)

这是我到目前为止的代码片段,但我无法获得C' C'在阵列上的正确位置打印。我厌倦的几个选项,要么根本不打印,要么打印出C' C'在左上角。

这是我厌倦的一个选项:此选项无法打印“C' C'一点都不

   private int cX=0;
   private int cY=0;

     //Randomly set coordinates on array.

       for(int i=0; i<array.length; i++){
            for(int j=0; j<array[i].length; j++){
                int x = randGen.nextInt(9);
                int y = randGen.nextInt(9);
                if (array [x][y].display()=='.'){
                    x=cX;
                    y=cY;
                }
             }
         }


    // print array

    private void displayArray()
    {

      for (int i = 0; i < array.length; i++){ 
        for (int j = 0; j < array[i].length; j++){
           if ((array [i][j].display()==cX)&&
                (array [i][j].display()==cY))
                System.out.print("C");
                System.out.print(board [i][j].display()+"\t")   
         }
            System.out.println("\n");
      }
    }

4 个答案:

答案 0 :(得分:0)

如果我理解正确,您是否希望将坐标保存到某种数据结构中,然后再显示它们?

为此目的创建课程是否合适?例如。 一个名为Coordinator的类,它拥有X&amp; Y值。

稍后创建一个你用X&amp; amp; Y值并将其放入ArrayList。

代码示例:

//Creating the a object holding 2 values
Coordinator cords = new Coordinator(randGen.nextInt(9), randGen.nextInt(9));

//Putting in the object to the data structure
List<Coordinator> list = new ArrayList<>();
list.add(cords);

解释和代码示例应该可以帮助您自己解决这个问题。

答案 1 :(得分:0)

  

此选项根本不打印“C”。

您当前的代码示例确实永远不会打印'C'。

for (int j = 0; j < array[i].length; j++){
if ((array [i][j].display()==cX)&&
       (array [i][j].display()==cY))

只有当cX等于cY并且两者都等于分配给数组的ascii代码值时, if 条件才为真(对于'。',这是值46)。但你可能只想找到cX,cY位置并打印'C'。你应该尝试使用当前的i和j值来保持你的位置(cX,cY)。

if ((i==cX)&&(j==cY))
  

在左上角打印'C'

您永远不会更改该位置的数组内容。您设置的x和y将被覆盖,以后无法访问

int x = randGen.nextInt(9);
int y = randGen.nextInt(9);
if (array [x][y].display()=='.'){
      x=cX;
      y=cY;
}

你想找到一个随机的位置让你的'C'出现,就像在棋盘游戏中一样吗? 然后,您需要将找到的x和y坐标分配给cX和cY。正确的值将分配给左侧变量。

cX = x;
cY = y;

我希望我理解你,这有帮助。

答案 2 :(得分:0)

为了完整性:我想我已经解决了。 (好吧它似乎仍然有效)。 谢谢你的帮助!

<script type="text/javascript">
var condition = '@[passed condition value here]';

if (condition) {
     // show panel
     document.getElementById("yourdivid").style.visibility = "visible";
}
else {
     // hide panel
     document.getElementById("yourdivid").style.visibility = "hidden";
}
</script>
<div id="yourdivid"></div>

答案 3 :(得分:0)

  private double[][] mLatLng = {
                {19.01062463, 73.01141475},
                {19.02369039, 73.00778391},};
    public void onMapReady(GoogleMap googleMap) { googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
    Bitmap icon = BitmapFactory.decodeResource(getResources(), R.drawable.ic_icon);
    for (int i = 0; i < mLatLng.length; i++) {
    for (int j = 0; j < mLatLng[i].length; j++) {
    googleMap.addMarker(new MarkerOptions()
    .position(new LatLng(mLatLng[i][j], mLatLng[i][j]))
    .title("Location" + i).icon(bitmapDescriptorFromVector(context,R.drawable.ic_icon)));