- 论坛徽章:
- 0
|
诶,终于大致写了个,周末去没出去。没完全按作业要求,也没仔细测试过,貌似大致可以了。python中的string处理真麻烦。弄了我好多时间,偶是新手,代码不好看,见笑了:
不过有个问题没解决,就是重复输入,,
- #! /usr/bin/python
- 2 #! file:game.py
- 3 #! author:BigApple
- 4
- 5
- 6 import string
- 7 import os,sys
- 8
- 9 class Screen:
- 10 #declare the member variable
- 11 win_fg = -1 # -1 stand for tie, and 0 - O win, 1 - X win
- 12 play_fg = 'X' # X or O
- 13 range = ['0|1|2 | | ',
- 14 '- - - - - -',
- 15 '3|4|5 | | ',
- 16 '- - - - - -',
- 17 '6|7|8 | | ']
- 18 #declare the member function
- 19 def init(self):
- 20 os.system("clear")
- 21 print 'TIC TAC TOE:\n'
- 22 for x in self.range:
- 23 print str(x)
- 24
- 25
- 26 def get_input(self):
- 27 input_num = raw_input("Player %s, choose there to place your mark (0-8):"%self.play_fg)
- 28 while (input_num not in ['0','1','2','3','4','5','6','7','8']):
- 29 print 'Invalid selection. Enter an integer from 0 to 8.\n'
- 30 input_num = raw_input("Player %s, choose there to place your mark (0-8):"%self.play_ fg)
- 31 return(input_num)
- 32
- 33
- 34
- 35 def reflush_scr(self,input_num,flag):
- 36 if (input_num == '0'):
- 37 new = self.range[0][0:6]+flag+self.range[0][7:]
- 38 del self.range[0]
- 39 self.range.insert(0,new)
- 40 elif (input_num == '1'):
- 41 new = self.range[0][0:8]+flag+self.range[0][9:]
- 42 del self.range[0]
- 43 self.range.insert(0,new)
- 44 elif (input_num == '2'):
- 45 new = self.range[0][0:10]+flag
- 46 del self.range[0]
- 47 self.range.insert(0,new)
- 48 elif (input_num == '3'):
- 49 new = self.range[2][0:6]+flag+self.range[2][7:]
- 50 del self.range[2]
- 51 self.range.insert(2,new)
- 52 elif (input_num == '4'):
- 53 new = self.range[2][0:8]+flag+self.range[2][9:]
- 54 del self.range[2]
- 55 self.range.insert(2,new)
- 56 elif (input_num == '5'):
- 57 new = self.range[2][0:10]+flag
- 58 del self.range[2]
- 59 self.range.insert(2,new)
- 60 elif (input_num == '6'):
- 61 new = self.range[4][0:6]+flag+self.range[4][7:]
- 62 del self.range[4]
- 63 self.range.insert(4,new)
- 64 elif (input_num == '7'):
- 65 new = self.range[4][0:8]+flag+self.range[4][9:]
- 66 del self.range[4]
- 67 self.range.insert(4,new)
- 68 elif (input_num == '8'):
- 69 new = self.range[4][0:10]+flag
- 70 del self.range[4]
- 71 self.range.insert(4,new)
- 72
- 73 if (self.play_fg == 'X'):
- 74 self.play_fg = 'O'
- 75 else:
- 76 self.play_fg = 'X'
- 77 #os.system("clear")
- 78 for x in self.range:
- 79 print str(x)
- 80
- 81 def is_win(self):
- 82 if ( self.range[0][6] == self.range[0][8] == self.range[0][10] == 'O' or
- 83 self.range[2][6] == self.range[2][8] == self.range[2][10] == 'O' or
- 84 self.range[4][6] == self.range[4][8] == self.range[4][10] == 'O' or
- 85 self.range[0][6] == self.range[2][6] == self.range[4][6] == 'O' or
- 86 self.range[0][8] == self.range[2][8] == self.range[4][8] == 'O' or
- 87 self.range[0][10] == self.range[2][10] == self.range[4][10] == 'O' or
- 88 self.range[0][6] == self.range[2][8] == self.range[4][10] == 'O' or
- 89 self.range[0][10] == self.range[2][8] == self.range[4][6] == 'O'):
- self.win_fg = 0
- 91 elif( self.range[0][6] == self.range[0][8] == self.range[0][10] == 'X' or
- 92 self.range[2][6] == self.range[2][8] == self.range[2][10] == 'X' or
- 93 self.range[4][6] == self.range[4][8] == self.range[4][10] == 'X' or
- 94 self.range[0][6] == self.range[2][6] == self.range[4][6] == 'X' or
- 95 self.range[0][8] == self.range[2][8] == self.range[4][8] == 'X' or
- 96 self.range[0][10] == self.range[2][10] == self.range[4][10] == 'X' or
- 97 self.range[0][6] == self.range[2][8] == self.range[4][10] == 'X' or
- 98 self.range[0][10] == self.range[2][8] == self.range[4][6] == 'X'):
- 99 self.win_fg = 1
- 100
- 101 print ' '
- 102 #1 - x win,2 - o win,0 - no win, -1 continue
- 103 def output_reslut(result_fg):
- 104 print ''
- 105
- 106
- 107
- 108 def main():
- 109 scr = Screen()
- 110 scr.init()
- 111
- 112 while(1):
- 113 scr.reflush_scr(scr.get_input(),scr.play_fg)
- 114 scr.is_win()
- 115 if ( scr.win_fg == 0 ):
- 116 raw_input("Player O wins,press any key to continue...")
- 117 sys.exit()
- 118 elif (scr.win_fg == 1 ):
- 119 raw_input("Player X wins,press any key to continue...")
- 120 sys.exit()
- 121
- 122
- 123
- 124 main()
复制代码
[ 本帖最后由 bigapple2008 于 2006-3-3 21:14 编辑 ] |
|