免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6275 | 回复: 3
打印 上一主题 下一主题

求助,python的作业 [复制链接]

论坛徽章:
0
1 [报告]
发表于 2006-03-03 09:39 |显示全部楼层
我也刚学python,给点建议
class screen:
>>>def init():
>>>def get_input()
>>>def reflush(input_number):
>>>def is_win()

呵呵,今天有空的话我也写写看,不知道这么想行不行

论坛徽章:
0
2 [报告]
发表于 2006-03-03 20:56 |显示全部楼层
诶,终于大致写了个,周末去没出去。没完全按作业要求,也没仔细测试过,貌似大致可以了。python中的string处理真麻烦。弄了我好多时间,偶是新手,代码不好看,见笑了:
不过有个问题没解决,就是重复输入,,

  1. #! /usr/bin/python
  2.       2 #! file:game.py
  3.       3 #! author:BigApple
  4.       4
  5.       5
  6.       6 import string
  7.       7 import os,sys
  8.       8
  9.       9 class Screen:
  10.      10 #declare the member variable
  11.      11         win_fg  = -1 # -1 stand for tie, and 0 - O win, 1 - X win
  12.      12         play_fg = 'X' # X or O
  13.      13         range = ['0|1|2  | | ',
  14.      14                  '- - - - - -',
  15.      15                  '3|4|5  | | ',
  16.      16                  '- - - - - -',
  17.      17                  '6|7|8  | | ']
  18.      18 #declare the member function
  19.      19         def init(self):
  20.      20                 os.system("clear")
  21.      21                 print 'TIC TAC TOE:\n'
  22.      22                 for x in self.range:
  23.      23                         print str(x)
  24.      24
  25.      25
  26.      26         def get_input(self):
  27.      27                 input_num = raw_input("Player %s, choose there to place your mark (0-8):"%self.play_fg)
  28.      28                 while (input_num not in ['0','1','2','3','4','5','6','7','8']):
  29.      29                         print 'Invalid selection. Enter an integer from 0 to 8.\n'
  30.      30                         input_num = raw_input("Player %s, choose there to place your mark (0-8):"%self.play_        fg)
  31.      31                 return(input_num)
  32.      32
  33.      33
  34.      34
  35.      35         def reflush_scr(self,input_num,flag):
  36.      36                 if   (input_num == '0'):
  37.      37                         new = self.range[0][0:6]+flag+self.range[0][7:]
  38.      38                         del self.range[0]
  39.      39                         self.range.insert(0,new)
  40.      40                 elif (input_num == '1'):
  41.      41                         new = self.range[0][0:8]+flag+self.range[0][9:]
  42.      42                         del self.range[0]
  43.      43                         self.range.insert(0,new)
  44.      44                 elif (input_num == '2'):
  45. 45                         new = self.range[0][0:10]+flag
  46.      46                         del self.range[0]
  47.      47                         self.range.insert(0,new)
  48.      48                 elif (input_num == '3'):
  49.      49                         new = self.range[2][0:6]+flag+self.range[2][7:]
  50.      50                         del self.range[2]
  51.      51                         self.range.insert(2,new)
  52.      52                 elif (input_num == '4'):
  53.      53                         new = self.range[2][0:8]+flag+self.range[2][9:]
  54.      54                         del self.range[2]
  55.      55                         self.range.insert(2,new)
  56.      56                 elif (input_num == '5'):
  57.      57                         new = self.range[2][0:10]+flag
  58.      58                         del self.range[2]
  59.      59                         self.range.insert(2,new)
  60.      60                 elif (input_num == '6'):
  61.      61                         new = self.range[4][0:6]+flag+self.range[4][7:]
  62.      62                         del self.range[4]
  63.      63                         self.range.insert(4,new)
  64.      64                 elif (input_num == '7'):
  65.      65                         new = self.range[4][0:8]+flag+self.range[4][9:]
  66.      66                         del self.range[4]
  67.      67                         self.range.insert(4,new)
  68.      68                 elif (input_num == '8'):
  69.      69                         new = self.range[4][0:10]+flag
  70.      70                         del self.range[4]
  71.      71                         self.range.insert(4,new)
  72.      72
  73.      73                 if (self.play_fg == 'X'):
  74.      74                         self.play_fg = 'O'
  75.      75                 else:
  76.      76                         self.play_fg = 'X'
  77.      77                 #os.system("clear")
  78.      78                 for x in self.range:
  79.      79                         print str(x)
  80.      80
  81.      81         def is_win(self):
  82.      82                 if ( self.range[0][6] == self.range[0][8] == self.range[0][10] == 'O' or
  83.      83                      self.range[2][6] == self.range[2][8] == self.range[2][10] == 'O' or
  84.      84                      self.range[4][6] == self.range[4][8] == self.range[4][10] == 'O' or
  85.      85                      self.range[0][6] == self.range[2][6] == self.range[4][6]  == 'O' or
  86.      86                      self.range[0][8] == self.range[2][8] == self.range[4][8]  == 'O' or
  87.      87                      self.range[0][10] == self.range[2][10] == self.range[4][10] == 'O' or
  88.      88                      self.range[0][6] == self.range[2][8] == self.range[4][10] == 'O' or
  89.      89                      self.range[0][10] == self.range[2][8] == self.range[4][6] == 'O'):
  90.                          self.win_fg = 0
  91.      91                 elif( self.range[0][6] == self.range[0][8] == self.range[0][10] == 'X' or
  92.      92                      self.range[2][6] == self.range[2][8] == self.range[2][10] ==  'X' or
  93.      93                      self.range[4][6] == self.range[4][8] == self.range[4][10] ==  'X' or
  94.      94                      self.range[0][6] == self.range[2][6] == self.range[4][6]  ==  'X' or
  95.      95                      self.range[0][8] == self.range[2][8] == self.range[4][8]  ==  'X' or
  96.      96                      self.range[0][10] == self.range[2][10] == self.range[4][10] == 'X' or
  97.      97                      self.range[0][6] == self.range[2][8] == self.range[4][10] ==  'X' or
  98.      98                      self.range[0][10] == self.range[2][8] == self.range[4][6] ==  'X'):
  99.      99                         self.win_fg = 1
  100.     100
  101.     101                 print ' '
  102.     102                 #1 - x win,2 - o win,0 - no win, -1 continue
  103.     103         def output_reslut(result_fg):
  104.     104                 print ''
  105.     105
  106.     106
  107.     107
  108.     108 def main():
  109.     109         scr = Screen()
  110.     110         scr.init()
  111.     111
  112.     112         while(1):
  113.     113                 scr.reflush_scr(scr.get_input(),scr.play_fg)
  114.     114                 scr.is_win()
  115.     115                 if ( scr.win_fg == 0 ):
  116.     116                         raw_input("Player O wins,press any key to continue...")
  117.     117                         sys.exit()
  118.     118                 elif (scr.win_fg == 1 ):
  119.     119                         raw_input("Player X wins,press any key to continue...")
  120.     120                         sys.exit()
  121.     121
  122.     122
  123.     123
  124.     124 main()

复制代码

[ 本帖最后由 bigapple2008 于 2006-3-3 21:14 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2006-03-04 00:24 |显示全部楼层
和斑竹比,偶的惭愧啊,不过还好偶是新手,还说得过去,呵呵
想顺便请教几个问题

  1. sepRows = ['- - -\t- - -', '- - -\t- - -', '']
  2.     print
  3.     for i in range(3):
  4.         numbers = []
复制代码

这里的print后面什么都没有,就换行了,什么意思啊?

  1. if __name__ == '__main__':
  2.     main()
复制代码

这么写是不是惯例呢?为了保证些什么?

一般python的工程是怎么来组织代码的结果的呢,比如C的话,可以分include啊,lib啊好几个文件夹,放不同的东西。python里呢?本来想去sf.net上找些工程来看的,但发现登陆不了,而且上次看过的代码都带GUI的。刚开始看不合适,

斑竹给点建议啊,

论坛徽章:
0
4 [报告]
发表于 2006-03-06 10:56 |显示全部楼层
呵呵,是为了输出个空行啊,,真看傻了,没想到这个。
learning python我看了英文版,大致一遍看完了。不过毕竟英文的,印象不怎么深,回头再去看看
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP