初学者Ruby语法错误与哈希

初学者Ruby语法错误与哈希,ruby,hash,hashtable,Ruby,Hash,Hashtable,我的代码似乎不起作用,因为我错误地处理了哈希 我的代码中有两个部分引用了散列,还有两个不同的语法错误,我还没有通过谷歌搜索解决 第一节语法错误和代码: 语法错误,意外的tSTRING\u BEG,应为关键字\u do或“{”或“(”) 第二节语法错误和代码: 语法错误,意外=>,应为关键字\u end 出什么问题了?第一部分的问题是 puts ------- 您可能想用引号将破折号括起来,使其成为字符串 =>(hashrocket)运算符仅在声明新哈希(例如{“a”=>1})时使用,但您的第二

我的代码似乎不起作用,因为我错误地处理了哈希

我的代码中有两个部分引用了散列,还有两个不同的语法错误,我还没有通过谷歌搜索解决

第一节语法错误和代码:

语法错误,意外的tSTRING\u BEG,应为关键字\u do或“{”或“(”)

第二节语法错误和代码:

语法错误,意外=>,应为关键字\u end


出什么问题了?

第一部分的问题是

puts -------
您可能想用引号将破折号括起来,使其成为字符串


=>
(hashrocket)运算符仅在声明新哈希(例如
{“a”=>1}
)时使用,但您的第二位代码正在该上下文之外使用它(我不确定您试图做什么,因此无法真正提出任何建议).还有其他一些事情也没有意义-你在底部比较字符串文字,我怀疑| |和&&的先例不会做你想做的事,不管那是什么

啊,对了!感谢第一个…谢谢你的回答。这是一个抽签游戏。第二位代码,它应该检查游戏中的胜利第一个if和elsif,最后一个elsif中的for draw…我将用==
def checkGame?
    if 
    "A1"=>"X" && "A2"=>"X" && "A3"=>"X" ||
    "B1"=>"X" && "B2"=>"X" && "B3"=>"X" ||
    "C1"=>"X" && "C2"=>"X" && "C3"=>"X" ||

    "A1"=>"X" && "B1"=>"X" && "C1"=>"X" ||
    "A2"=>"X" && "B2"=>"X" && "C2"=>"X" ||
    "A3"=>"X" && "B3"=>"X" && "C3"=>"X" ||

    "A1"=>"X" && "B2"=>"X" && "C3"=>"X" ||
    "A3"=>"X" && "B2"=>"X" && "C1"=>"X"
        puts player1 + " wins!"
        checkGame == true
    elsif
    "A1"=>"O" && "A2"=>"O" && "A3"=>"O" ||
    "B1"=>"O" && "B2"=>"O" && "B3"=>"O" ||
    "C1"=>"O" && "C2"=>"O" && "C3"=>"O" ||

    "A1"=>"O" && "B1"=>"O" && "C1"=>"O" ||
    "A2"=>"O" && "B2"=>"O" && "C2"=>"O" ||
    "A3"=>"O" && "B3"=>"O" && "C3"=>"O" ||

    "A1"=>"O" && "B2"=>"O" && "C3"=>"O" ||
    "A3"=>"O" && "B2"=>"O" && "C1"=>"O"
        puts player2 + " wins!"
        return true
        checkGame == true
    elsif
    "A1"!=" " && "A2"!=" " && "A3"!= " " &&     
    "B1"!=" " && "B2"!=" " && "B3"!= " " &&
    "C1"!=" " && "C2"!=" " && "C3"!= " "
        puts "It's a draw. :/ "
        checkGame == true
    end

    return false        
end
puts -------