Forum: Ruby Unspecified Syntax Error

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
E50d89fffb1f64ceb5d752760fc3f91a?d=identicon&s=25 StarLion (Guest)
on 2005-12-09 22:35
def MakeBoard
 rcount = 0
 puts "Push enter, then begin input. (For Input Format Compliance, extra
enter key is necessary)"
 gets
 board = [0,0,0,0,0,0,0,0,0]
 9.times do
   instr = gets
   board[rcount] =
[instr[0],instr[1],instr[2],instr[3],instr[4],instr[5],instr[6],instr[7],instr[8]]
   rcount += 1
 end
 return board
end

def CheckBoard(board)
 complete = 1 #Is the puzzle complete?
 problems = 0 #Are there any problems?

 #first, rows.
 h = 0
 9.times do
  g = 0
  group = [0,0,0,0,0,0,0,0,0]
  9.times do
    if board[h][g] == "."
      group[g] = 0
      complete = 0
    else
      group[g] = board[h][g]
    end
  end
  problems = VerifyGroup(group)

  #puts "Row " + h.to_s + " Problems? " + problems.to_s
end
 #end Row Check

 #next, columns.
 h = 0
 9.times do
  g = 0
  group = [0,0,0,0,0,0,0,0,0]
  9.times do
    if board[g][h] == "."
      group[g] = 0
      complete = 0
    else
      group[g] = board[g][h]
    end
  end
  problems = VerifyGroup(group)
  #puts "Col " + h.to_s + " Problems? " + problems.to_s
 end
 ##end Col Check

 ##Finally, the tricky one... the Boxes..
 startx = 0
 starty = 0
 curx = 0
 cury = 0
 count = 0
 group = [0,0,0,0,0,0,0,0,0]
 3.times do #Row Blocks
  3.times do #Cols Blocks
   3.times do #Rows of Block
    3.times do #Cols of Block
     if board[curx][cury] == "."
      group[count] = 0
     else
      group[count] = board[curx][cury]
     end
     curx += 1
    end
    curx = startx
    cury += 1
   end #We now have a 3x3 block. Verify Data.
   problems = VerifyGroup(group)
   #puts "Box " + startx.to_s + "," + starty.to_s + " Problems? " +
problems.to_s
   count = 0
   startx += 3
   cury = starty
   curx = startx
  end
  starty += 3
  startx = 0
  cury = starty
  curx = startx
 end

#Resolve the output.
if problems == 0
  if complete == 1
    $output = $output + "You've done it!\n"
  else
    $output = $output + "Looking good so far...\n"
  end
else
  $output = $output + "You've got a problem.\n"
end
end #FINALLY!

def VerifyGroup(group)
  #logic for Check
  flag = 0
  check = [0,0,0,0,0,0,0,0,0,0]
  group.each do |num|
   if check[num] == 0 && num != 0
      check[num] = 1
   else if num == 0
      check[0] = 0
   else
      flag = 1
   end
   num += 1
  end
  return flag
end


$output = ""
n = gets
n.to_i.times do
board = MakeBoard()
CheckBoard(board)
puts $output
end


Throws unspecified "Syntax Error" on 126 (last line of the code -
'end')... no idea what's going wrong?
A70b7da5a3a712e800100e61ef8d8917?d=identicon&s=25 akonsu (Guest)
on 2005-12-09 22:46
(Received via mailing list)
this is what i see:

c:/r2.rb:11: syntax error
[instr[0],instr[1],instr[2],instr[3],instr[4],instr[5],instr[6],instr[7],in¡str[8]]

   ^
c:/r2.rb:11: Invalid char `\255' in expression
c:/r2.rb:11: syntax error
[instr[0],instr[1],instr[2],instr[3],instr[4],instr[5],instr[6],instr[7],in¡str[8]]

   ^
c:/r2.rb:136: syntax error
E50d89fffb1f64ceb5d752760fc3f91a?d=identicon&s=25 StarLion <hmrhouse@hotmail.com> (Guest)
on 2005-12-09 22:49
akonsu wrote:
> this is what i see:
>
> c:/r2.rb:11: syntax error
> [instr[0],instr[1],instr[2],instr[3],instr[4],instr[5],instr[6],instr[7],in�str[8]]
>
>    ^
> c:/r2.rb:11: Invalid char `\255' in expression
> c:/r2.rb:11: syntax error
> [instr[0],instr[1],instr[2],instr[3],instr[4],instr[5],instr[6],instr[7],in�str[8]]
>
>    ^
> c:/r2.rb:136: syntax error

That doesnt appear when i try to execute... there is no \255 character
where it says there is one. Maybe it's because you're copying off of the
MB?
4299e35bacef054df40583da2d51edea?d=identicon&s=25 James Gray (bbazzarrakk)
on 2005-12-09 22:50
(Received via mailing list)
On Dec 9, 2005, at 3:35 PM, StarLion wrote:

> Throws unspecified "Syntax Error" on 126 (last line of the code -
> 'end')... no idea what's going wrong?

In my experience, this is almost always the sign of a missing "end".
If I add one to the bottom of your code, if does indeed go away.  I
can't see where exactly it's missing though.  Try cleaning up your
indentation, then it should be obvious.

James Edward Gray II
0817571d150afead454f4220007042fe?d=identicon&s=25 desmarm (Guest)
on 2005-12-09 22:58
(Received via mailing list)
StarLion wrote:

>   rcount += 1
> 9.times do
>  problems = VerifyGroup(group)
>  9.times do
> ##end Col Check
>   3.times do #Rows of Block
>   end #We now have a 3x3 block. Verify Data.
>  cury = starty
>else
>      check[num] = 1
>
>'end')... no idea what's going wrong?
>
>
Hi -

For starters, you're gonna want to replace "else if" with "elsif".  The
"else if" starts a second if, so using "else if" will leave you one
"end" short.  That'll get you a syntax error for sure.

Regards,
Matthew J Desmarais
2cef22e5d84ec3cdc107a5f9f97537e5?d=identicon&s=25 toddkennethbenson (Guest)
on 2005-12-09 23:10
(Received via mailing list)
StarLion wrote:
>    else if num == 0

This should be:

elsif num == 0

I haven't looked at the rest of the syntax, though, but I hope that
helps.

Todd
E50d89fffb1f64ceb5d752760fc3f91a?d=identicon&s=25 StarLion <hmrhouse@hotmail.com> <hmrhouse@hotmail. (Guest)
on 2005-12-09 23:11
>>
> Hi -
>
> For starters, you're gonna want to replace "else if" with "elsif".  The
> "else if" starts a second if, so using "else if" will leave you one
> "end" short.  That'll get you a syntax error for sure.
>
> Regards,
> Matthew J Desmarais

That.. would do it, thanks. Now i just have to figure out my logic
errors >_<
This topic is locked and can not be replied to.