Передача аргументов от метода к методу, по-видимому, не меняет агрегат в машинописи - PullRequest
0 голосов
/ 26 апреля 2018

Я работаю над карточной игрой в typeScript. Игра выглядит примерно так:

game = () => {
let get_start_card = () => {
  let card:string
  // get random card ...
  return card
}
let start_round = (player:Player,card:string) => {
  console.log(`card at start is: ${card}`)
  // some logic ...
  // change the card - generate new_card
  this.start_card = new_card
}
let game_status: boolean = true
let start_card = get_start_card()

while(game_status === true){
  start_round(player1,start_card)
  start_round(player2,start_card)
}
}
game()

Идея состоит в том, что когда начинается следующий ход, следующий игрок начинает с карты, которую другой игрок оставил в конце своего хода.

Проблема в том, что метод start_round всегда начинается с оригинальной карты и, похоже, не меняется, когда я пишу this.start_card или this.this.start_card или что-то еще.

У кого-нибудь есть идеи, как это сделать?

То, как я пытаюсь изменить значение start_card перед следующим туром, используя ключевое слово "this", неверно?

Какой правильный способ сделать это, с точки зрения ООП?

Редактировать: удаление «this» приводит к ошибке, не распознавая «start_card».

Спасибо

1 Ответ

0 голосов
/ 26 апреля 2018

Должно быть без this.

start_card = new_card

ООП мог бы использовать класс, тогда вы бы использовали this много. Вместо этого вы сделали замыкание, и start_card является обычной переменной, а не свойством чего-либо.

...