import goban,helper,psql,login,gnugo import string DEBUG = 1 def is_my_turn(req,form,gobandict): """ gets request and util.FiedStorage form. check wether or not the current this is the players turn. return true or false. """ me = form["username"] player1 = gobandict["player1"] player2 = gobandict["player2"] play = gobandict["play"] if ((player1 == me) and (play == "white")) or ((player2 == me) and (play == "black")): return True else: return false def create_gobandict(req,form,gamename): """ gets a gamename loads sgf, transforms it to dict, writes stuff like player names to dict returns dict """ #read goban table from database tmplist = psql.read_table(gamename) #make a dictionary out of the list tmpdict = psql.fetchall_list_to_goban_dict(tmplist) sgf = psql.get_sgf(gamename) gobandict = gnugo.parse_static_gnugo_sgf(sgf) for key in ["player1","player2","turn_number","name","sgf"]: gobandict[key] = tmpdict[key] return gobandict def main(req,form): """ display selected goban and manage user input. """ try: gamename = form["game"] except: gamename = "" if gamename != "": data = "" req.write(helper.header()) #helper.debug(req,form,str(form.keys())) gobandict = create_gobandict(req,form,gamename) #check if user has already clicked onto a field: click_on_field = False for item in form.keys(): if string.find(item,").x") > 0: click_on_field = True if click_on_field: #if yes: is this the user's turn? then process form. if is_my_turn(req,form,gobandict): helper.debug(req,form,"its my turn , i am going to process the form: --") retstring = goban.process_form(req,form,gobandict) if retstring != "": helper.debug(req,form,"playgame.main says: "+str(retstring)) else: #reload gobandict, it has been changed. gobandict = create_gobandict(req,form,gamename) else: helper.debug(req,form,"its not my turn.") data += """
Turn number: %s. %s plays.\n """ % (str(gobandict["turn_number"]), (string.capitalize(gobandict["play"]))) #check whether its our turn #if yes: print 'your move' and display goban and process move #if not: print '...s move' and display goban. if is_my_turn(req,form,gobandict): data += "
Its your turn.
\n" else: data += "
This is not your turn. You have to wait for the move of the other player.
\n" #print goban data += goban.display_goban(gobandict,req,form) data += login.navigation_bar(req,form) data += helper.footer(req,form) req.write(data) else: req.write('Error: You have to select a game to play it!')