在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3280|回复: 1

[原创] 大蟒蛇写得算24点游戏

[复制链接]
发表于 2014-5-20 18:06:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
做数字逻辑设计工程师一枚,经常用perl写些脚本处理信号数据文本,感觉perl比较丑陋,听说python美观简洁,花了几个小时看了下基本语法,编了个小时候用纸牌算24点得游戏,感觉比perl写得好看。





  1. #! /usr/bin/python
  2. """
  3.    This script's function is calculate 24 point.
  4.    rules:
  5.       1. Use four random numbers to calc 24
  6.       2. The legal operators:+,-,*,/  
  7.       3. U can change numbers with 'c'
  8.       4. Quit game use 'q'
  9.       5. When game over,a report will be generate  
  10. """
  11. import os              #if use from os import * then the open func will be covered
  12. from random import *
  13. from sys import *
  14. #global counters for report
  15. genDataCnt = 0
  16. rightCnt   = 0
  17. wrongCnt   = 0
  18. changeCnt  = 0

  19. if __name__ == '__main__':
  20.     print __doc__
  21. else:
  22.     pass
  23. #random number def
  24. def randomNumber():
  25.     x=0
  26.     a=[]
  27.     while True:
  28.         if x < 4:
  29.             b = choice([1,2,3,4,5,6,7,8,9,10])
  30.             a.append(b)
  31.             x += 1
  32.         else:
  33.             break
  34.     return a
  35. #enter opterator
  36. while True:
  37.     commond = raw_input('Are you ready?(yes or no):')
  38.     if commond == 'no':
  39.         exit(0)
  40.     elif commond == 'yes':
  41.         break
  42.     else:
  43.         print 'Please enter "yes" or "no"!'
  44.         continue
  45. #random number
  46. while True:
  47.    arryNum = randomNumber()
  48.    print arryNum
  49.    genDataCnt += 1
  50.    commond = raw_input('This is Ok?("yes" or "c" or "q"):')
  51.    if commond == 'c':
  52.        changeCnt += 1
  53.        continue
  54.    elif commond == 'q':
  55.        all = [genDataCnt,changeCnt,rightCnt,wrongCnt]
  56.        try:
  57.            fp = open("gameReport",'w')
  58.        except IOError,e:
  59.            print "File open error:",e           
  60.        else:
  61.            #fp.write("GenCnt=%-20d\nRight=%-20d"%(all[0],all[2]))   
  62.            fp.write("GenCnt     =%2d\n"%all[0]) # == print handld "" in perl   
  63.            fp.write("ChangeCnt  =%2d\n"%all[1])   
  64.            fp.write("RightCnt   =%2d\n"%all[2])   
  65.            fp.write("WrongCnt   =%2d\n"%all[3])   
  66.            fp.close()      
  67.        exit()
  68.    elif commond == 'yes':
  69.        gram = raw_input('Just do it:')
  70.        result = eval(gram)
  71.        #print "DEBUG %d"%result
  72.        if result == 24:
  73.           print "Result is right!^V^"
  74.           print "Try next numbers!^_^"
  75.           rightCnt += 1
  76.        else:
  77.           print "wrong"
  78.           wrongCnt += 1
  79.           while True:
  80.              retry = raw_input('Retry?("yes" or "no"):')
  81.              if retry == 'yes':
  82.                 gram = raw_input('come on:')
  83.                 result = eval(gram)
  84.                 if result == 24:
  85.                    print "Congratulations u did it!^@^"
  86.                    print "Try next numbers!^_^"
  87.                    break
  88.                 else:
  89.                    continue
  90.              elif retry == 'no':
  91.                 break
  92.              else:
  93.                 print 'Please enter legal charactor:'  
  94.    else:
  95.        print "please enter legal charactor!"
  96.        continue
  97.       



复制代码
发表于 2014-5-21 19:27:34 | 显示全部楼层
支持! python是趋势
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-18 20:24 , Processed in 0.017299 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表