Превосходящий метод сна в боевой программе танков - PullRequest
0 голосов
/ 12 февраля 2012

Итак, у моего класса во вторник танковое сражение, и каждый из нас разрабатывал логику для танка. Наш учитель разработал API и все, что нам нужно, и мы просто должны использовать то, что он нам дал, однако он призвал нас «обмануть».

Существует метод сна, который заставляет танк делать паузу после выполнения многих действий, и мне было интересно, как я мог бы переопределить это, чтобы он пропускал или сводил на нет сон.

void sleep(int ns) {
    try {
        Thread.currentThread().yield();
        Thread.currentThread().sleep(ns*100);
        Thread.currentThread().yield();
    } catch(InterruptedException ie) {
        ;
    }
}

Кроме того, я подумывал найти способ, которым мой танк не мог погибнуть при ударе, но у меня также был небольшой успех в этом, есть два метода, которые влияют на этот аспект игры, это checkDead () и kill ( ): (предполагается, что dead - логическое значение со значением false)

void checkDead() {
    if(dead) throw new Error("Tank "+id+" is Dead");
}

final void kill() {
    synchronized(g) {
        if(dead)
            return;
        log("kill()");
        dead = true;
        logState();
        if(g.board[pos.x][pos.y]==this)
            g.board[pos.x][pos.y] = null;
    }
}

Видите, я пытался переопределить их как с @override, так и без него, но я не уверен, почему он не будет скрывать методы суперкласса. Кто-нибудь может дать мне советы по любому из этих вопросов?

1 Ответ

1 голос
/ 12 февраля 2012

Обратите внимание на определение final в методе?Предполагая, что вы используете Java, вы обнаружите, что это метод, который нельзя переопределить или расширить.Подробности см. В документации по Java или в Википедии: http://en.wikipedia.org/wiki/Final_(Java). Покажите API, созданный вашим профессором, и он может объяснить, как изменяются повреждения, смерть и состояния.Я предполагаю, что у него есть сервис-ориентированная архитектура в плане записи (и составления отчетов) изменений состояния ...

Я не собираюсь давать вам советы о том, как Кобаяси Мару упражнение - это ваша философия, которая определяет вашу тактику.

Но если я могу сделать одно предложение, подумайте о прочтении Сун-Цзы «Искусство войны» , особенно когда пытаетесь разыграть противников или систему.

...