import string,re DEBUG = 1 def header(): """return html header""" data = """ WebGo

WebGo

""" return data def debug(req,form, optstr = ""): """ print various debug infos, e.g. form content. gets request, util.FieldStorage form, optional extra string. returns nothing, writes with request.write. """ if DEBUG: if optstr == "": req.write("Debug: "+str(form.keys())+"
\n") else: req.write("Debug: "+optstr+"
\n") def footer(): """return html footer""" data = """ """ return data # create a unique session id def generate_session_id(): import md5, time, base64, random, string m = md5.new() m.update(str(time.time())) m.update(str(random.random())) s = string.replace(base64.encodestring(m.digest())[:-3], '/', '$') return s def generate_game_name(): from whrandom import choice chars = string.letters name = '' for i in range(16): name = name + choice(chars) return name.lower() def check_for_int(data): """ gets a string. if string is an integer: return integer. else return given string. """ #check if value is int num = [n for n in data if n.isdigit()] tmp = "".join(num) if tmp == data: ret = int(data) else: ret = data return ret def string_to_tuple(str): """ gets a string. If the string contains '(',')' and ',', then return a tuple processed from the string. If the partial string is empty, then -1 will be returned for that value. """ if (str[0] =='(') and (str[-1] ==')') and (string.find(str,',')): splitlist = string.split(str[1:-1],",") returnlist = [] for item in splitlist: try: returnlist.append(int(item)) except: #empty string returnlist.append(-1) return tuple(returnlist) def dict_coords_to_gnugo_coords(coords,size): """ gets a (x,y) coordinate tuple and boardsize. returns a string in gnugo syntax. examples: gets (1,1), returns "A7". gets (6,2), returns "B2". """ letterlist = [" "] letterlist.extend(list(string.letters[26:])) letterlist.remove("I") letter = letterlist[coords[1]] digit = size+1-coords[0] return letter+str(digit) def test(): print dict_coords_to_gnugo_coords((6,5),7) if __name__ == "__main__": test()