2014年3月16日日曜日

開発環境

Head First Java 第2版 ―頭とからだで覚えるJavaの基本(Kathy Sierra (著)、Bert Bates (著)、島田 秋雄 (監修)、神戸 博之 (監修)、高坂 一城 (監修)、夏目 大 (翻訳)、オライリージャパン)の6章(Java APIの基礎)、自分で考えてみよう(p.145)を解いてみる。

自分で考えてみよう(p.145)

コード(BBEdit, Emacs)

DotComBust.java

import java.util.ArrayList;

public class DotComBust {
    private GameHelper helper = new GameHelper();
    private ArrayList<DotCom> dotComList = new ArrayList<DotCom>();
    private int numOfGuesses = 0;

    private void setUpGame() {
        DotCom dc1 = new DotCom();
        DotCom dc2 = new DotCom();
        DotCom dc3 = new DotCom();

        dc1.setName("name1");
        dc2.setName("name2");
        dc3.setName("name3");

        dotComList.add(dc1);

        dotComList.add(dc2);
        dotComList.add(dc3);

        for (DotCom dc : dotComList) {
            ArrayList<String> loc = helper.placeDotCom(3);
            dc.setLocationCells(loc);
        }
    }

    private void startPlaying() {
        while (!dotComList.isEmpty()) {
            String guess = helper.getUserInput("enter a number ");
            chekUserGuess(guess);
        }
        finishGame();
    }

    private void chekUserGuess(String userGuess) {
        numOfGuesses++;
        String result = "miss";
        for (DotCom dc : dotComList) {
            result = dc.checkYourself(userGuess);
            if (result == "hit") {
                break;
            }
            if (result == "kill") {
                dotComList.remove(dc);
            }
        }
        System.out.println(result);
    }

    void finishGame() {
        System.out.println("You took " + numOfGuesses + " guesses");
        if (numOfGuesses < 10) {
            System.out.println("high");
        } else {
            System.out.println("low");
        }
    }

    public static void main(String [] args) {
        DotComBust dcb = new DotComBust();
        dcb.setUpGame();
        dcb.startPlaying();
    }
}

入出力結果(Terminal)

$ javac DotComBust.java GameHelper.java DotCom.java
$

とりあえずコンパイルはできたけど、まだ他のクラスがほとんど空っぽだから実行は後回しに。

0 コメント:

コメントを投稿