当前位置: 代码迷 >> Ruby/Rails >> 二十一点游戏,命令行的,面像过程的写法。Ruby
  详细解决方案

二十一点游戏,命令行的,面像过程的写法。Ruby

热度:334   发布时间:2016-04-29 02:21:39.0
21点游戏,命令行的,面像过程的写法。Ruby
21点游戏,命令行的,面像过程的写法。
ruby 的写法以后再试试。
# this is game 21 point# 操作命令符 空没有操作,n下一步,抽牌;w亮牌结束;l认输$ope = ''$prompt = '>'$x1 = 0$x2 = 0$x3 = 0$pc = 0$u1 = 0$u2 = 0$u3 = 0$over = ''def out_main(a = 0, b=0, c=0, pc = 0, us1=0, us2=0, us3=0)  puts "21 point Game          "  puts "        -- wide288 author"  puts  puts "  PC is keys           "  if pc == 0    puts "  *  *  *              "  else    puts "  %d  %d  %d              "% [a, b, c]  end  puts  puts "  user is keys         "  puts " %d %d %d              " % [us1, us2, us3]  puts Time.new  puts " n 抽牌; w 亮牌; l 认输; x 退出;"end#主线程运行def main()  while $ope != 'x'    system 'clear'    out_main($x1, $x2, $x3, $pc, $u1, $u2, $u3)    if 'w' != $ope      print $prompt      $ope = STDIN.gets.chomp()    end    if 'x' == $ope      break    end    if 'l' == $ope      puts "I throw up."      break    end    if 'n' == $ope      number = rand(1..10)      if 0 != number        puts number        if $x1 == 0          $x1 = number        elsif $x2 == 0          $x2 = number        elsif $x3 == 0          $x3 = number        end      end      number = rand(1..9)      if 0 != number        puts number        if $u1 == 0          $u1 = number        elsif $u2 == 0          $u2 = number        elsif $u3 == 0          $u3 = number        end      end    end    if 'w' == $ope      #system "clear"      $pc = 1      pcsum = 21 - ($x1+$x2+$x3)      usersum = 21 - ($u1+$u2+$u3)      puts "%d %d %d pc sum is - 21 =  %d" % [$x1, $x2, $x3, pcsum]      puts "%d %d %d user sum is - 21 = %d" % [$u1, $u2, $u3, usersum]      if usersum >= pcsum        puts "pc win"      else        puts "User Win!!!"      end      #out_main($x1, $x2, $x3, $pc, $u1, $u2, $u3)      break    end  endend# main thread runmain()