2011-03-28 34 views
0
// sets up random number of markers in a 
// one-dimensional array 
// numMarkers markers in a board of size boardSize 
public class SimpleDotCom 
{ 
    // constants 
    private final static int DEFAULT_MARKERS = 3; 
    private final static int DEFAULT_BOARD_SIZE = 10; 

    // data members 
    private int[] markers; // stores the marker positions 
    private int boardSize; // stores the size of the board 
    private int endOfMarkers; 

    // default constructor 
    // 3 markers in a board of 10 
    public SimpleDotCom() 
    { 
    this(DEFAULT_MARKERS, DEFAULT_BOARD_SIZE); 
    } 

    // constructor to set up 
    // numMarkers and boardSize 
    public SimpleDotCom(int numMarkers, int boardSize) 
    { 
    markers = new int[numMarkers]; 
    this.boardSize = boardSize; 
    endOfMarkers = markers.length - 1; 

    int i, j, randNum; 
    int[] original = new int[boardSize]; 

    for (i = 0; i < original.length; i++) 
     original[i] = i; 

    // scramble original 
    for (i = original.length - 1; 
      i >= original.length - markers.length; 
      i--) 
    { 
     randNum = (int) (Math.random() * (i+1)); 
     // swap original[i] and original[randNum] 
     j = original[i]; 
     original[i] = original[randNum]; 
     original[randNum] = j; 
    } 

    for (i = 0; i < markers.length; i++) 
     markers[i] = original[i+original.length-markers.length]; 
    } // end SimpleDotCom 

    // check if the guess is a hit or a miss 
    // precondition: guess is valid 
    public String checkYourself(int guess) 
    { 
    for (int i = 0; i <= endOfMarkers; i++) 
     if (markers[i] == guess) 
     { 
     markers[i] = markers[endOfMarkers]; 
     endOfMarkers--; 
     return "Hit"; 
     } 
    return "Miss"; 
    } // end checkYourself 

    // returns the number of markers in the game 
    public int numberOfMarkers() 
    { 
    return markers.length; 
    } // end numberOfMarkers 

    // returns the size of the board 
    public int sizeOfBoard() 
    { 
    return boardSize; 
    } // end sizeOfBoard 
} // end SimpleDotCom 

这是我需要修改的程序。我将数组修改为ArrayList对象,我不知道该怎么做。任何信息/爱慕都有帮助。如果你需要知道任何问题,我会让你知道的。再次感谢您的帮助。如何修改一个Java程序从数组到ArrayList对象?

+1

这个功课? – Neal 2011-03-28 14:32:09

+0

是的,我不会对此撒谎。我只是不知道该怎么做。这是我来到这里的唯一原因。我不明白。 – Leasha 2011-03-28 14:34:23

+0

是的,这是作业。我没有要求任何人为我做。我所要求的只是建议如何去做。我迷路了,不明白,所以我在努力。我在寻求建议并不坏。没有人可以知道是否有人愿意向需要它的人提供建议。感谢任何人提供adivce。我非常感谢它,它帮助我理解我需要做什么。 – Leasha 2011-03-28 14:39:53

回答

2

开始通过改变markers类型:

private ArrayList<Integer> markers; 

你的IDE现在应该告诉你,因为ArrayList一大堆错误和数组不能互换。修复这些错误,你就完成了。

+1

好的建议,但做什么样的功课。:-( – JackWilson 2011-03-28 14:36:14

+0

好吧,所以我改变了标记,但是我不确定我在做什么,我正在阅读我的错误并试图改变它们,但我不知道它们是什么 – Leasha 2011-03-28 14:52:09

+0

我想这是作业部分:找出你在做什么,阅读文档,谷歌!认真,GOOGLE。信息已经存在 – Bombe 2011-03-28 14:55:27

0

您可以先将所有标记从数组更改为ArrayList,然后修复错误。

但是,一个更好的方法来做到这一点是想想你正在做的操作的种类。您通常会为数组做一些事情:创建它,添加元素,获取元素。你如何为数组做这些事情?你如何做一个ArrayList?如果你不知道,请在ArrayList文档中查找它。找到它为数组完成的地方,然后改变它为ArrayList完成的方式。

更重要的是,阵列和ArrayList之间的基金会结构差异是什么。你已经在课堂上教过(提示 - 尺寸是多少?)。这对你如何向他们添加对象有什么不同?也许你应该改变你添加对象的方式?

1

我看不到暴露数组的公开api。所以不需要将它从数组改为ArrayList。

如果你仍然需要改变它。看看ArrayList API: http://download.oracle.com/javase/6/docs/api/java/util/ArrayList.html

你可以用Array和[index]做什么,你可以用.get(index)和.set(index)方法对ArrayList进行操作。

myArray.length是myArrayList.size()。

0

一旦你有你的ArrayList对象 “标志” 按照上面的回答,这里是ArrayList的基础知识(不言自明真的):

  • 加(对象)
  • GET(INT)
  • 尺寸()
  • 删除(INT)
  • 的indexOf(对象) - 认定的 索引对象
  • 明确的第一次出现( )
相关问题