新手问题 请问这是哪里出错了?

chankaward · 2012年10月25日 · 最后由 chankaward 回复于 2012年10月25日 · 3238 次阅读
puts "=>Hello, please enter player1 name."
name1 = gets.chomp
puts "=>Hello, please enter player2 name."
name2 = gets.chomp
puts "=>hello #{name1} and #{name2}, let's play the black jack game."


def random_cards
    first_card = rand(10) + 1
    second_card = rand(10) + 1
    total_card = first_card + second_card
    {first_card: first_card, second_card: second_card, total_card: total_card}
end

player1_cards = random_cards
player1_first_card, player1_second_card, player1_total_card = player1_cards[:first_card], player1_cards[:second_card], player1_cards[:total_card]

puts "=>Player One's first card is: #{player1_first_card}, second card is #{player1_second_card}, total is #{player1_total_card}."

player2_cards = random_cards
player2_first_card, player2_second_card, player2_total_card = player2_cards[:first_card], player2_cards[:second_card], player2_cards[:total_card]

puts "=>Player Two's first card is: #{player2_first_card}, second card is #{player2_second_card}, total is #{player2_total_card}."

if player1_total_card < player2_total_card
    puts "=> Player Two won!!"
elsif player1_total_card > player2_total_card
    puts "=> Player One won!!"
else
    puts "=> This is a tie game!"
end

Terminal

black_jack.rb: 1: syntax error, unexpected tIDENTIFIER, expecting $end
puts "=>Hello, ...er1 name."
匿名 #1 2012年10月25日
puts "=>Hello, please enter player1 name."
name1 = gets.chomp
puts "=>Hello, please enter player2 name."
name2 = gets.chomp
puts "=>hello #{name1} and #{name2}, let's play the black jack game."

@first_card,@second_card,@total_card = nil
def random_cards_total
    @first_card = rand(10) + 1
    @second_card = rand(10) + 1
    @total_card = @first_card + @second_card
    {@first_card.to_s => @first_card, @second_card.to_s => @second_card, @total_card.to_s => @total_card}
end

player1_card = random_cards_total
player1_first_card, player1_second_card, player1_total_card = player1_card[@first_card.to_s], player1_card[@second_card.to_s], player1_card[@total_card.to_s]

puts "=>Player One's first card is: #{player1_first_card}, second card is #{player1_second_card}, total is #{player1_total_card}."

player2_card = random_cards_total
player2_first_card, player2_second_card, player2_total_card = player2_card[@first_card.to_s], player2_card[@second_card.to_s], player2_card[@total_card.to_s]

puts "=>Player Two's first card is: #{player2_first_card}, second card is #{player2_second_card}, total is #{player2_total_card}."

if(player2_total_card > player1_total_card)
    puts "=> Player Two won!!"
elsif player1_total_card > player2_total_card
    puts "=> Player One won!!"
else
    puts "=> This is a tie game!"
end

我 ruby 是 1.8.7 的,所以哈希就不能用:了,也懒得优化你的代码了,直接拷贝直接改。。。还好你不是我带的。。。不然非骂一顿

#1 楼 @help5305fff black_jack.rb: 1: syntax error, unexpected tIDENTIFIER, expecting $end puts "=>Hello, ...er1 name." 请问这是哪里出错了?

匿名 #3 2012年10月25日

你那提示是说的代码少了结束的标签

#3 楼 @help5305fff 我找不到哪里少了 end 阿。。

匿名 #5 2012年10月25日

你把我写得覆盖进去,也会提示那错误?

#5 楼 @help5305fff 没有,不过我想知道我原来的哪里少了 end。

匿名 #7 2012年10月25日

不一定是 end { 少了} ( 少了) 都会提示这个哈

我把你的复制下来运行,没有发现你说的错误,倒是有两个变量定义错误。

匿名 #9 2012年10月25日

我也没出现他说的错误。。。

#8 楼 @yangyanhao 我改了那两处还是不行。。。还是老样子

匿名 #12 2012年10月25日

你覆盖我帮你改的代码,看看有错没呢?大哥,你做人真累。。。 要让人帮忙,又不愿管别人的说法。。。

匿名 #13 2012年10月25日

如果覆盖我的代码还是有错,那就有可能是编码的错误。。。你不去试,就是在浪费生命。。。苦恼的都是一些旁支细节,不抓重点。。。

我只改了两处,就顺利运行了:

player1_cards -> player1_card player2_cards -> player2_card

=>Hello, please enter player1 name.

=>Hello, please enter player2 name.

=>hello and , let's play the black jack game. =>Player One's first card is: 5, second card is 4, total is 9. =>Player Two's first card is: 2, second card is 10, total is 12. => Player Two won!!

匿名 #16 2012年10月25日

检查编码

#16 楼 @help5305fff UTF-8 。。。。。。

匿名 #18 2012年10月25日

解决了吗???

#16 楼 @help5305fff 还没。。是不是要改成 ASCII?

#18 楼 @help5305fff 我复制了代码,另外新建了一个文件可以运行了。请问这个问题应该怎样解决啊?原来的代码我是用个 iphone 上的软件写的。 #13 楼 @help5305fff 受教了。;-) 谢谢

匿名 #21 2012年10月25日

。。。。那就是编码问题了

#21 楼 @help5305fff 应该改成什么呢?

匿名 #23 2012年10月25日

啥正确就换啥,哈哈

不懂。。。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号