jerryxjr1220 发表于 2017-8-29 10:03:58

鱼C论坛Python精英挑战赛(第三季热身赛)

本帖最后由 jerryxjr1220 于 2017-9-3 21:27 编辑

第三届鱼C论坛精英挑战赛即将开赛咯!为了增加趣味性,本届比赛增加了“新玩法”-- “押宝玩法”,“竞猜玩法”和“擂主玩法”。

规则:
1. “押宝玩法”:进入“押宝”竞猜帖,购买主题(5鱼币)参与“押宝”,最终“押宝”获胜者将平分奖池的奖金并额外获取10鱼币奖励。猜错者将不返还“押宝”的鱼币。若本届比赛无人“押宝”成功,奖金将累计到下次比赛。

2. “竞猜玩法”:直接在比赛帖的下方进行投票,凡事“竞赛”获胜者,将奖励5鱼币。竞猜无门槛,人人都可以参与。竞猜以后,请在本帖留个言,方便领取奖励。

3. “擂主玩法”:上一期挑战成功的鱼油成为挑战赛的擂主,擂主有优先权提议下一期的赛题,一届挑战赛共分5期,同一届中当擂主最长的鱼油有额外奖励。

本次热身赛题目:保龄球计分器

玩过保龄球的鱼油应该都知道保龄球的计分规则。


我用Excel写了一个保龄球计分表,大家可以自行下载,以便进行程序调试。


现在请设计一个保龄球计分器,输入一个字符串,例如“8/ 90 72 7/ 9/ 81 X 9/ X X9/"(中间以空格分隔),输出该局的得分,例如前面这个例子,输出172。如果输入的字符串不能被识别,则输出“N/A”。

代码中,尽量不要使用eval函数!

程序输出正确,执行效率高,且代码优雅的答题者获胜!

测试代码:
bowling_0 = 'X X X X X X X X X XXX' #300
bowling_1 = '9/ 9/ 9/ 9/ 9/ 9/ 9/ 9/ 9/ 9/9' #190
bowling_2 = '90 9/ X X X 9/ X 8/ X 9/X' #208
bowling_3 = '9/ 8/ X 81 9/ X X 9/ 8/ X81' #192
bowling_4 = '9/ 8/ X 9/ X X X 9/ 8/ X9/' #215
bowling_5 = '9/ 0/ X 09 X X 8/ 09 8/ 0/0' #145

特别说明:热身赛奖金50鱼币,并且获胜者将作为“擂主”身份参与正式比赛。

热身赛截止日期:9月2日24时,竞猜和押宝截止日期为9月1日。

@冬雪雪冬 @SixPy @~风介~ @小甲鱼

小锟 发表于 2017-9-1 10:30:10

本帖最后由 小锟 于 2017-9-1 12:16 编辑


import re
def count(str1):
    scores = 0
    every = str1.split(' ')
    try:
      for i in range(10):
            scores += guize(every , scores)
      return scores
    except TypeError:
      return 'N/A'
def guize(every,scores):
    every = ''.join(every)
    #every2 = every[:2] + re.sub(r'(\d)/', r'\1X', every)
    every3 =re.sub(r'\d/', '0X', every[:3])
    try:
      s = [ (int(i) if i != 'X' else 10) for i in list(every3) ]
      #print(sum(s[:3]) if 'X' in every or '/' in every[:2] elsesum(s[:2]))
      return sum(s) if 'X' in every or '/' in every[:2] elsesum(s[:2])
    except ValueError :
      return 'N/A'
bowling_0 = 'X X X X X X X X X XXX' #300
bowling_1 = '9/ 9/ 9/ 9/ 9/ 9/ 9/ 9/ 9/ 9/9' #190
bowling_2 = '90 9/ X X X 9/ X 8/ X 9/X' #208
bowling_3 = '9/ 8/ X 81 9/ X X 9/ 8/ X81' #192
bowling_4 = '9/ 8/ X 9/ X X X 9/ 8/ X9/' #215
bowling_5 = '9/ 0/ X 09 X X 8/ 09 8/ 0/0' #145
for i in :
    print(count(i))
最后发现只用考虑前三个就行了
页: [1]
查看完整版本: 鱼C论坛Python精英挑战赛(第三季热身赛)