私の方法は、その配列内から整数ではなく配列全体を出力しています

イアンローゼン

私は、ボード上で利用可能な勝利コンボに基づいて、コンピューターを戦略的な場所に配置したい三目並べゲームを作成しています。何らかの理由で、このcomputer_indexメソッドはturn_count == 4WIN_COMBINATIONS1つの値だけでなく、配列全体を出力するまで機能します。当然のことながら、これによりvalid_move?メソッドにエラーが発生します。関連するエラーとコードは次のとおりです。

Traceback (most recent call last):
    3: from tictactoe.rb:12:in `<main>'
    2: from /Users/irosen419/Flatiron/code/tictactoe/tic_tac_toe.rb:201:in `play'
    1: from /Users/irosen419/Flatiron/code/tictactoe/tic_tac_toe.rb:117:in `comp_turn'
/Users/irosen419/Flatiron/code/tictactoe/tic_tac_toe.rb:40:in `valid_move?': undefined method `between?' for #<Array:0x00007fbe650d8268> (NoMethodError)
WIN_COMBINATIONS = [[0, 1, 2], [3, 4, 5], [6, 7, 8], [0, 4, 8], [2, 4, 6], [0, 3, 6], [1, 4, 7], [2, 5, 8]]

def valid_move?(index)
  index.between?(0,8) && !position_taken?(index)
end

def computer_index
  if turn_count == 0
    CORNERS.sample
  elsif turn_count == 2
    CORNERS.sample
  elsif turn_count == 4 || turn_count == 6
    WIN_COMBINATIONS.each do |combo|
      if @board[combo[0]] == "X" && @board[combo[1]] == "X"
          @board[combo[2]]
      elsif @board[combo[1]] == "X" && @board[combo[2]] == "X"
        @board[combo[0]]
      elsif @board[combo[0]] == "X" && @board[combo[2]] == "X"
        @board[combo[1]]
      elsif @board[combo[0]] == "O" && @board[combo[1]] == "O"
          @board[combo[2]]
      elsif @board[combo[1]] == "O" && @board[combo[2]] == "O"
        @board[combo[0]]
      elsif @board[combo[0]] == "O" && @board[combo[2]] == "O"
        @board[combo[1]]
      else
        CORNERS.sample
      end
    end
  else
    @board.each do |space|
      if space == " "
        space
      end
    end
  end
end

def comp_turn
  index = computer_index
  if valid_move?(index)
    move(index, current_player)
    display_board
  else
    comp_turn
  end
end

def turn_count
  count = 0
  @board.each do |space|
    if space == "X" || space == "O"
      count +=1
    end
  end
  count
end
BTL

私はあなたがreturnステートメントを逃していると思います

def computer_index
  if turn_count == 0
    CORNERS.sample
  elsif turn_count == 2
    CORNERS.sample
  elsif turn_count == 4 || turn_count == 6
    WIN_COMBINATIONS.each do |combo|
      if @board[combo[0]] == "X" && @board[combo[1]] == "X"
        return @board[combo[2]]
      elsif @board[combo[1]] == "X" && @board[combo[2]] == "X"
        return @board[combo[0]]
      elsif @board[combo[0]] == "X" && @board[combo[2]] == "X"
        return @board[combo[1]]
      elsif @board[combo[0]] == "O" && @board[combo[1]] == "O"
        return @board[combo[2]]
      elsif @board[combo[1]] == "O" && @board[combo[2]] == "O"
        return @board[combo[0]]
      elsif @board[combo[0]] == "O" && @board[combo[2]] == "O"
        return @board[combo[1]]
      else
        return CORNERS.sample
      end
    end
  else
    @board.each do |space|
      if space == " "
        space
      end
    end
  end
end

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

php配列私は配列を持っています、そして私は配列にいくつかの値を置く必要があります

分類Dev

Array.pushは、渡した配列全体ではなく、空の配列をプッシュしています

分類Dev

私のコードはいくつかの「配列」を出力します

分類Dev

配列内で新しく手動で割り当てられた値が、その兄弟から値を継承できないのはなぜですか?

分類Dev

私の配列は範囲外ですが、その配列はそれから呼び出す値よりも高く設定されています

分類Dev

それは別の配列内の配列ですか、それとも配列内の特定の値を探していますか?

分類Dev

どのように私は新しい配列を作成し、新しい配列に他の配列からすべてのポジティブな要素をコピーし、それを返すことができますか?

分類Dev

Java 2D配列は、要素ではなくメモリ内のがらくたであると私が想定しているものを出力しています

分類Dev

innerHTML(または同様のもの)を使用して、配列内のdivから純粋な整数を取得するにはどうすればよいですか?

分類Dev

innerHTML(または同様のもの)を使用して、配列内のdivから純粋な整数を取得するにはどうすればよいですか?

分類Dev

文字列の配列をcで出力しても、同じ出力が得られないのはなぜですか?

分類Dev

javascriptは、配列内のすべての値ではなく、配列内の値を合計します

分類Dev

単一の文字列ではなく配列全体を返す方法

分類Dev

配列の1つの要素であるか、配列でない場合は変数全体である変数をPHPでどのように出力しますか

分類Dev

配列内の要素を抽出する方法。配列はいくつかの配列内にあり、foreachループを使用して表示します。

分類Dev

配列内のオブジェクトの値を、その場所ではなく、迅速に出力する方法

分類Dev

Java:別のクラスから配列を出力するにはどうすればよいですか?私の配列には、そのクラスの別の変数が含まれています

分類Dev

数値または配列のいずれかを引数として受け入れる関数内で、タイプに関係なくそれらの引数を効率的に操作する方法は?

分類Dev

aが整数の配列で、nが配列の長さである場合、O(sum(a))の全体的なO(n)時間計算量はどれくらいですか?

分類Dev

ある配列の値を別の配列に格納して全体として出力していても、配列は最後の値を出力します

分類Dev

.splice()は、配列から1つではなく2つのオブジェクトを削除しています

分類Dev

Powershell配列は複数の色でいくつかの値を出力します

分類Dev

Scalaで配列値を出力する方法は?私は異なる値を取得しています

分類Dev

配列内のいくつかの変数が等しいかどうかを確認してから、それらを別の配列に割り当てます

分類Dev

配列内のいくつかの変数が等しいかどうかを確認してから、それらを別の配列に割り当てます

分類Dev

なぜ私の配列は私の値の半分しか出力しないのですか?

分類Dev

文字列にそれらの文字が含まれていないのに、文字列が配列内の何かと一致するのはなぜですか?

分類Dev

JavaScript配列に値が存在するかどうかを確認し、存在しなくなるまで0.15を追加し続けてから、その値を配列の最後に追加するにはどうすればよいですか?

分類Dev

配列から2つの整数を取り出して、それらを2つの変数にする方法は?

Related 関連記事

  1. 1

    php配列私は配列を持っています、そして私は配列にいくつかの値を置く必要があります

  2. 2

    Array.pushは、渡した配列全体ではなく、空の配列をプッシュしています

  3. 3

    私のコードはいくつかの「配列」を出力します

  4. 4

    配列内で新しく手動で割り当てられた値が、その兄弟から値を継承できないのはなぜですか?

  5. 5

    私の配列は範囲外ですが、その配列はそれから呼び出す値よりも高く設定されています

  6. 6

    それは別の配列内の配列ですか、それとも配列内の特定の値を探していますか?

  7. 7

    どのように私は新しい配列を作成し、新しい配列に他の配列からすべてのポジティブな要素をコピーし、それを返すことができますか?

  8. 8

    Java 2D配列は、要素ではなくメモリ内のがらくたであると私が想定しているものを出力しています

  9. 9

    innerHTML(または同様のもの)を使用して、配列内のdivから純粋な整数を取得するにはどうすればよいですか?

  10. 10

    innerHTML(または同様のもの)を使用して、配列内のdivから純粋な整数を取得するにはどうすればよいですか?

  11. 11

    文字列の配列をcで出力しても、同じ出力が得られないのはなぜですか?

  12. 12

    javascriptは、配列内のすべての値ではなく、配列内の値を合計します

  13. 13

    単一の文字列ではなく配列全体を返す方法

  14. 14

    配列の1つの要素であるか、配列でない場合は変数全体である変数をPHPでどのように出力しますか

  15. 15

    配列内の要素を抽出する方法。配列はいくつかの配列内にあり、foreachループを使用して表示します。

  16. 16

    配列内のオブジェクトの値を、その場所ではなく、迅速に出力する方法

  17. 17

    Java:別のクラスから配列を出力するにはどうすればよいですか?私の配列には、そのクラスの別の変数が含まれています

  18. 18

    数値または配列のいずれかを引数として受け入れる関数内で、タイプに関係なくそれらの引数を効率的に操作する方法は?

  19. 19

    aが整数の配列で、nが配列の長さである場合、O(sum(a))の全体的なO(n)時間計算量はどれくらいですか?

  20. 20

    ある配列の値を別の配列に格納して全体として出力していても、配列は最後の値を出力します

  21. 21

    .splice()は、配列から1つではなく2つのオブジェクトを削除しています

  22. 22

    Powershell配列は複数の色でいくつかの値を出力します

  23. 23

    Scalaで配列値を出力する方法は?私は異なる値を取得しています

  24. 24

    配列内のいくつかの変数が等しいかどうかを確認してから、それらを別の配列に割り当てます

  25. 25

    配列内のいくつかの変数が等しいかどうかを確認してから、それらを別の配列に割り当てます

  26. 26

    なぜ私の配列は私の値の半分しか出力しないのですか?

  27. 27

    文字列にそれらの文字が含まれていないのに、文字列が配列内の何かと一致するのはなぜですか?

  28. 28

    JavaScript配列に値が存在するかどうかを確認し、存在しなくなるまで0.15を追加し続けてから、その値を配列の最後に追加するにはどうすればよいですか?

  29. 29

    配列から2つの整数を取り出して、それらを2つの変数にする方法は?

ホットタグ

アーカイブ