title: How do I fix the error "void value expression"?
body: <p>I wrote a tic-tac-toe program. The part of the program that I am having trouble with is that i am getting the error:</p>
  
  <pre><code>tac.rb:63: void value expression
  tac.rb:65: void value expression
  </code></pre>
  
  <p>This error is coming from my check_win method. </p>
  
  <pre><code>if str == "xxx"
                                  return true  and puts "X Wins!"
                          str == "ooo"
                                  return true and puts "O Wins!"
  </code></pre>
  
  <p>It gave me this error after I added the "X wins" and "O wins" statements. </p>
  
  <p>this is my whole program:</p>
  
  <pre><code>class Game
  
          def initialize
                  @board=Array.new
                  @board[1]="1  __|"
                  @board[2]="__"
                  @board[3]="|__"
                  @board[4]="\n2  __|"
                  @board[5]="__"
                  @board[6]="|__"
                  @board[7]="\n3    |"
                  @board[8]="  "
                  @board[9]="|  "
                  @turn="x"
                  @win_status = false
          end
  
          def turn
                  @turn
          end
  
          def show_board
                  puts "  1   2   3"
                  @board.each do |i|
                          print i
                  end
                  puts ""
          end
  
          def set_turn #switches turns
          if @turn == "x"
                  @turn = "o"
          else @turn == "o"
                  @turn = "x"
          end
          end
  
          def make_move
                  puts "Enter x coordinate"
                  x=gets.to_i
                  puts "Enter y coordinate"
                  y=gets.to_i
  @board[1]="1  _"+@turn+"|"   if y==1 &amp;&amp; x==1
  @board[2]="_"+@turn    if y==2 &amp;&amp; x==1
  @board[3]="|_"+@turn   if y==3 &amp;&amp; x==1
  @board[4]="\n2  _"+@turn+"|" if y==1 &amp;&amp; x==2
  @board[5]="_"+@turn    if y==2 &amp;&amp; x==2
  @board[6]="|_"+@turn   if y==3 &amp;&amp; x==2
  @board[7]="\n3   "+@turn+"|" if y==1 &amp;&amp; x==3
  @board[8]=" "+@turn    if y==2 &amp;&amp; x==3
  @board[9]="|"+@turn+" \n"    if y==3 &amp;&amp; x==3
          end
   def win_combo
                  return [[@board[1][1] + @board[2][1] + @board[3][2]], [@board[4][2] + @board[5][1] + @board[6][2]], [@board[7][1] + @board[8][1] + @board[9][1]],[@board[1][1] + @board[4][2] + @board[7][1]], [@board[2][1] + @board[5][1] + @board[8][1]], [@board[3][2] + @board[6][2] + @board[9][1]], [@board[1][1] + @board[5][1] + @board[9][1]], [@board[3][2] + @board[5][1] + @board[7][1]]]
          end
  
          def check_win
                  #if some row or column or diagonal is "xxx" or "ooo" then set @win_status = true
                  self.win_combo.each do |arr|
                          str = arr.join
                          if str == "xxx"
                                  return true  and puts "X Wins!"
                          str == "ooo"
                                  return true and puts "O Wins!"
  
                          end
                  end
                  return false
          end
  end
  
  
  g = Game.new
  while g.check_win != true
          g.show_board
          g.set_turn
          g.make_move
  end
  </code></pre>