Чтобы помочь понять смысл Objective-C, я создаю очень базовое соединение 4 игры без какао.Класс в Objective-C Вопрос: Возможно ли наследовать переменную класса?
В моей программе у меня есть три модуля:
- «Игра»: Содержит массив, который содержит информацию о плате. Объект, созданный внутри основного, и отвечает за повороты. Объекты Player и Computer живут в этом модуле.
- «Игрок»: удерживает функцию, которая вставляет фрагмент игрока в предпочтительный столбец (этот модуль существует для инкапсуляции, и только это).
- «Компьютер»: содержит функции, которые определяют на основе текущей настройки платы, где компьютер должен перемещаться, а затем помещает фрагмент в это место.
В идеале я хотел бы для классов игрока и компьютера, чтобы иметь возможность редактировать один и тот же экземпляр pieceLoc
, который живет в игре через какое-то наследство, однако я не уверен, как это сделать.
Вот отрывок из того, что я в настоящее время я думаю о:
// startGame exists within the "Game" module
char *pieceLoc[42]; // This is a *temporary* global var. I'm still learning about
// the best way to implement this with class and instance
// methods. This is the array that holds the board info.
-(void) startGame {
Player *player =[[Player alloc] init]; // player's symbol = 'X'
Computer *computer =[[Computer alloc] init]; // computer's symbol = 'O'
int i = 0;
while ([game hasPieceWon: 'X'] == NO && [game hasPieceWon: 'O'] == NO) {
//function for player move
if ([game hasPieceWon: 'X'] == NO) {
//function for computer move
}
}
if ([game hasPieceWon: 'X'] == YES)
// Tell the player they've won
else
// Tell the player the computer has won.
}
Функции, используемые для игроков и компьютерных ходов являются функции, которые нужно будет каким-то образом получить доступ к массиву pieceLoc
(который будет в будущем существуют как переменная экземпляра, как только я узнаю больше о методах класса и экземпляра). pieceLoc
в настоящее время существует как char *, если мне нужно передать его через параметры функции.
Я чувствую, что это довольно простая проблема с тем, как я думаю об ООП, но я не смог найти ответ на то, что искал, несмотря на большую часть дня. Из того, что я собрал, мой вопрос относится к классу, но я не мог найти хороший ресурс для Objective-C.
Итак, снова: Я ищу способ, чтобы передать один экземпляр pieceLoc
, который живет в игре «родительский класс» для двух «детских классов», где pieceLoc
можно непосредственно манипулировать без с использованием дополнительных параметров.
Если передача массива в качестве параметра в конечном итоге является более идиоматической задачей, могу ли я получить пример того, как в ссылке Objective-C выполняется передача по ссылке?
Спасибо за помощь!
Есть ли причина, по которой вам не нравится иметь информацию о доске, хранящуюся в этом глобальном массиве? –
Являются ли 'Player' и' Computer' дочерними классами? – outis