Jida's profileGet Down To My BusinessPhotosBlogListsMore ![]() | Help |
|
10/1/2007 oh my god...oh my god...college is really not what i thought it should be...
it's just so fucking hard..
i am taking this CSSE120 using Python to program..TicTacToe Game
# TicTacToe
# Jida Xu from graphics import *
from win_in import * from time import * boardsize = 3
boardsize = range(boardsize) pps = 150 windowsize = pps * boardsize inset = 15 def Board(size,win):
for n in range(size-1): Line(Point(pps*(n+1),0),Point(pps*(n+1),10000)).draw(win) for n in range(size-1): Line(Point(0,pps*(n+1)),Point(10000,pps*(n+1))).draw(win) def drawX(row, col, win): p=Point(row*pps+pps/2.0,col*pps+pps/2.0) p1=Point(p.x-pps/4.0, p.y-pps/4.0) p2=Point(p.x+pps/4.0, p.y-pps/4.0) p3=Point(p.x+pps/4.0, p.y+pps/4.0) p4=Point(p.x-pps/4.0, p.y+pps/4.0) line1=Line(p1, p3) line2=Line(p2, p4) line1.draw(win) line2.draw(win) def drawO(row, col, win): circle=Circle(Point(row*pps+pps/2.0, col*pps+pps/2.0), pps/4.0) circle.draw(win) def fillBoard(size,win):
turns=0 for a in range(size): for b in range(size): if turns%2==0: drawX(a,b,win) else: drawO(a,b,win) turns=turns+1 def set_list(a, b): lb=[] for i in range(b): la=[] for j in range(a): la.append(-1) lb.append(la) return lb def drawwinline(p1,p2,type,size,win):
p1=Point(p1.x*pps+pps/2.0,p1.y*pps+pps/2.0) p2=Point(p2.x*pps+pps/2.0,p2.y*pps+pps/2.0) l1=Line(p1,p2) l1.setWidth(3) l1.setFill("red") l1.draw(win) winner_text=Text(Point(size*pps/2,size*pps/2),"") winner_text.setSize(30) winner_text.setFill("blue") if(type==1): winner_text.setText("O wins") if(type==0): winner_text.setText("X wins") winner_text.draw(win) def checkwin(matrix,size,win):
p1=Point(0,0) p2=Point(0,0) returnval=False for i in range(size): test=matrix[0][i] p1=Point(0,i) count=0 for j in range(size): if(test==matrix[j][i] and test!=-1): p2=Point(j,i) count=count+1 if count==size: returnval=True drawwinline(p1,p2,test,size,win) for i in range(size): test=matrix[i][0] p1=Point(i,0) count=0 for j in range(size): if(test==matrix[i][j] and test!=-1): p2=Point(i,j) count=count+1 if count==size: returnval=True drawwinline(p1,p2,test,size,win) for i in range(0,size,size-1): test=matrix[0][i] count=0 p1=Point(0,i) if i==0: for j in range(size): if(test==matrix[j][j] and test!=-1): p2=Point(j,j) count=count+1 if i==size-1: for j in range(size): if(test==matrix[j][i-j] and test!=-1): p2=Point(j,i-j) count=count+1 if(count==size): returnval=True drawwinline(p1,p2,test,size,win) break return returnval def main():
SizeOfBoard = win_input("Please enter the size of the board: ") win = GraphWin("TicTacToe", SizeOfBoard*pps, SizeOfBoard*pps) Board(SizeOfBoard,win) # fillBoard(SizeOfBoard, win) turns=0 matrix=set_list(SizeOfBoard,SizeOfBoard) print matrix while checkwin(matrix,SizeOfBoard,win)==False: p=win.getMouse() p=Point(p.x//pps,p.y//pps) if(matrix[p.x][p.y]==-1): if turns%2==0: drawX(p.x,p.y,win) matrix[p.x][p.y]=0 else: drawO(p.x,p.y,win) matrix[p.x][p.y]=1 turns=turns+1 if(turns==SizeOfBoard*SizeOfBoard and checkwin(matrix,SizeOfBoard,win)==False): disp_tie=Text(Point(SizeOfBoard*pps/2,SizeOfBoard*pps/2),"Tie") disp_tie.setSize(30) disp_tie.setFill("blue") disp_tie.draw(win) break win.getMouse() main() win.close() 這個就是我們所共識的簡單的井字過三關遊戲的運行程序...
我用了5個小時終于完成了這個現在已經沒什麽人玩了的遊戲..
接下來的...是掃雷...之後..聽説..還有CS.. |
|
|