Использование IComparable в vb.net для сравнения оружия в игре «Камень, ножницы, бумага» (аналогично Comparable в JAVA)

Я новичок в программировании и ООП, поэтому, пожалуйста, простите меня за недостаток знаний.

В рамках моей игры «Камень, ножницы и бумага» я хотел бы создать абстрактный суперкласс (оружие), который имеет подклассы (камень, ножницы, бумага) в VB.NET. Я нашел эквивалент JAVA, который:

 public abstract class Weapon implements Comparable<Weapon> {
    }



    public class Paper extends Weapon {

        @Override
        public int compareTo(Weapon o) {
            if (o instanceof Paper)
                return 0;
            else if (o instanceof Rock)
                return 1;
            return -1;
        }
    }

    public class Rock extends Weapon {

    @Override
    public int compareTo(Weapon o) {
        if (o instanceof Rock)
            return 0;
        else if (o instanceof Scissors)
            return 1;
        return -1;
    }
}

    public class Scissors extends Weapon {

    @Override
    public int compareTo(Weapon o) {
        if (o instanceof Scissors)
            return 0;
        else if (o instanceof Paper)
            return 1;
        return -1;
    }
}

В настоящее время у меня есть следующее:

Public MustInherit Class Weapons

Public Class Rock
    Inherits Weapons

    Public Function compareTo(ByVal Weapons As Object) As Integer


    End Function

End Class

Public Class Paper
    Inherits Weapons

    Public Function compareTo(ByVal Weapons As Object) As Integer

    End Function

End Class

Public Class Scissors
    Inherits Weapons

    Public Function compareTo(ByVal Weapons As Object) As Integer

    End Function

End Class

Конец класса

Может ли кто-нибудь исправить код, чтобы можно было сравнивать объекты «Камень», «Ножницы» и «Бумага». Любая помощь будет принята с благодарностью.

Спасибо


person AJsStack    schedule 20.12.2012    source источник
comment
Какой код вы используете для создания объектов?   -  person Thunder Rabbit    schedule 20.12.2012
comment
Спасибо за быстрый ответ. Класс Player использует объекты Weapon. Например, когда игрок выбирает камень, объект Rock будет создан.   -  person AJsStack    schedule 20.12.2012


Ответы (1)


Как это:

Public Class Rock
    Inherits Weapons

    Public Function compareTo(ByVal Weapons As Object) As Integer
        If TypeOf Weapons Is Rock Then
            Return 0
        ElseIf TypeOf Weapons Is Scissors Then
            Return 1
        Else
            Return -1
        End If
    End Function
End Class

' etc.
person Steven Doggart    schedule 20.12.2012
comment
хахаха, теперь, когда я вижу принятый ответ, я понимаю просьбу OP: переведите Java на VB! - person Thunder Rabbit; 20.12.2012