Я пытаюсь создать экземпляр пользовательского объекта под названием Rock.С этим кодом, «содержит» является переменной типа Item, и оба Rock и Bug являются подклассами Item.Код генерирует ошибки, когда я пытаюсь создать экземпляр Rock, но не Bug.Разве это не то, как вы создаете экземпляр класса?Он говорит: «не может присвоить значение типа Rock.Type для типа« item ».
Кроме того, мне было интересно, как бы я написал код для запроса объекта« содержит », какой класс объекта он содержит.функция для этого?
for r in 0...map.MAXROWS{
for c in 0...map.MAXCOLUMNS{
if (r < 3) || (r > (MAXROWS - 3)){
self.contains = Rock
}else if (c < 3) || (c > (MAXCOLUMNS - 3)){
self.contains = Rock
}else if (r == 3) && (c == 100){
self.contains = Bug(index: 1, map: map)
}else if (arc4random() * 100 == 1){
self.contains = Bug(index: current, map: map)
current = current + 1
}else if (arc4random() * 8) == 1{
self.contains = Rock
}
}
}
import Cocoa
class Bug: Item {
var male = true
var direction = 1
var appearance = 1
var positionRow = 0
var positionColumn = 0
// Direction:
// 1 = Up
// 2 = Right
// 3 = Down
// 4 = Left
init(index: Int, map: Map){
super.init()
map.initializeBugs(index: index, current: self)
if (index == 1){
self.direction = 3
self.positionRow = 3
self.positionColumn = 100
}else{
self.direction = (Int(arc4random() * 4)) + 1
}
Birth(index: index)
}
func Birth(index: Int){
if (arc4random() * 8) == 1{
self.male = false
}else{
self.male = true
if (arc4random() * 2) == 1{
self.appearance = 1
}else{
self.appearance = 2
}
}
}
func DisplayBug() -> Int{
if self.male == false{
return self.direction
}else{
if self.appearance == 1{
switch self.direction{
case 1:
return 5
case 2:
return 6
case 3:
return 7
case 4:
return 8
default:
return 0
}
}else if self.appearance == 2{
switch self.direction{
case 1:
return 9
case 2:
return 10
case 3:
return 11
case 4:
return 12
default:
return 0
}
}
}
}
func WhereAreYouRow() -> Int{
return self.positionRow
}
func WhereAreYouColumn() -> Int{
return self.positionColumn
}
func AreYouBug() -> Bool{
return true
}
func InstantiateBug{
}
}
import Cocoa
class Rock: Item {
override init(){
super.init()
}
func AreYouRock() -> Bool{
return true
}