本文整理汇总了Python中pyjamas.ui.Grid.Grid.resize方法的典型用法代码示例。如果您正苦于以下问题:Python Grid.resize方法的具体用法?Python Grid.resize怎么用?Python Grid.resize使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pyjamas.ui.Grid.Grid
的用法示例。
在下文中一共展示了Grid.resize方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
# 需要导入模块: from pyjamas.ui.Grid import Grid [as 别名]
# 或者: from pyjamas.ui.Grid.Grid import resize [as 别名]
def __init__(self):
# layed out in a grid with odd rows a different color for
# visual separation
#lucky = Grid(9,10, CellPadding=25, CellSpacing=1, BorderWidth=1)
lucky = Grid()
lucky.resize(9,10)
lucky.setBorderWidth(1)
lucky.setCellPadding(25)
lucky.setCellSpacing(1)
val = 0
for x in range(0,9):
for y in range(0,10):
val += 1
lucky.setText(x,y,val)
grid = Grid(1,3,CellPadding=20,CellSpacing=0)
rf = grid.getRowFormatter()
rf.setStyleName(0, 'oddrow')
# popup timer buttons
ptb = PopupTimerButton(1)
grid.setWidget(0, 0, CaptionPanel('Start the Lucky Number Countdown', ptb, StyleName='left'))
grid.setWidget(0, 1, CaptionPanel('Current Lucky Number',ptb.box))
grid.setWidget(0, 2, lucky)
# add it all to the root panel
RootPanel().add(grid, lucky)
示例2: onModuleLoad
# 需要导入模块: from pyjamas.ui.Grid import Grid [as 别名]
# 或者: from pyjamas.ui.Grid.Grid import resize [as 别名]
class GridEdit:
def onModuleLoad(self):
self.input = TextBox()
self.input.setEnabled(False)
self.input.addKeyboardListener(self)
self.g=Grid()
self.g.resize(5, 5)
self.g.setHTML(0, 0, "<b>Grid Edit</b>")
self.g.setBorderWidth(2)
self.g.setCellPadding(4)
self.g.setCellSpacing(1)
self.g.setWidth("500px")
self.g.setHeight("120px")
self.g.addTableListener(self)
self.initGrid()
RootPanel().add(self.input)
RootPanel().add(self.g)
def onKeyDown(self, sender, keycode, modifiers):
pass
def onKeyUp(self, sender, keycode, modifiers):
pass
def onKeyPress(self, sender, keycode, modifiers):
if keycode == KeyboardListener.KEY_ESCAPE:
self.input.setEnabled(False)
elif keycode == KeyboardListener.KEY_ENTER:
self.input.setEnabled(False)
val = self.input.getText()
self.set_grid_value(self.row, self.col, val)
def onCellClicked(self, sender, row, col):
self.row = row
self.col = col
val = self.values[row][col]
self.input.setText(val)
self.input.setEnabled(True)
self.input.setFocus(True)
def set_grid_value(self, row, col, val):
self.values[row][col] = val
if val == "":
val = " "
self.g.setHTML(row, col, val)
def initGrid(self):
self.values = {}
for y in range(5):
self.values[y] = {}
for x in range(5):
self.values[y][x] = ""
for y in range(5):
for x in range(5):
val = self.values[y][x]
self.set_grid_value(y, x, val)
示例3: GridWidget
# 需要导入模块: from pyjamas.ui.Grid import Grid [as 别名]
# 或者: from pyjamas.ui.Grid.Grid import resize [as 别名]
class GridWidget(AbsolutePanel):
def __init__(self):
AbsolutePanel.__init__(self)
self.page=0
self.min_page=1
self.max_page=10
self.addb=Button("Next >", self)
self.subb=Button("< Prev", self)
self.clearb=Button("Clear", self)
self.g=Grid()
self.g.resize(5, 5)
self.g.setWidget(0, 0, HTML("<b>Grid Test</b>"))
self.g.setBorderWidth(2)
self.g.setCellPadding(4)
self.g.setCellSpacing(1)
self.updatePageDisplay()
self.add(self.subb)
self.add(self.addb)
self.add(self.clearb)
self.add(self.g)
def onClick(self, sender):
if sender == self.clearb:
print "clear"
self.g.clear()
return
elif sender==self.addb:
self.page+=1
elif sender==self.subb:
self.page-=1
self.updatePageDisplay()
def updatePageDisplay(self):
if self.page<self.min_page: self.page=self.min_page
elif self.page>self.max_page: self.page=self.max_page
total_pages=(self.max_page-self.min_page) + 1
self.g.setHTML(0, 4, "<b>page %d of %d</b>" % (self.page, total_pages))
if self.page>=self.max_page:
self.addb.setEnabled(False)
else:
self.addb.setEnabled(True)
if self.page<=self.min_page:
self.subb.setEnabled(False)
else:
self.subb.setEnabled(True)
for y in range(1, 5):
for x in range(5):
self.g.setText(y, x, "%d (%d,%d)" % (self.page, x, y))
示例4: AccountListSink
# 需要导入模块: from pyjamas.ui.Grid import Grid [as 别名]
# 或者: from pyjamas.ui.Grid.Grid import resize [as 别名]
class AccountListSink(VerticalPanel):
def __init__(self, hendler = None):
VerticalPanel.__init__(self,
#HorizontalAlignment=HasAlignment.ALIGN_CENTER,
#VerticalAlignment=HasAlignment.ALIGN_MIDDLE,
Width="100%",
#Height="100%",
Spacing=5)
self.remote = DataService(['getaccounts'])
self.grid = Grid(1, 3,
BorderWidth=1,
CellPadding=4,
CellSpacing=1,
StyleName="grid")
self.grid.setText(0, 0, u"Number")
self.grid.setText(0, 1, u"Type")
self.grid.setText(0, 2, u"Balance")
formatter = self.grid.getRowFormatter()
formatter.setStyleName(0, "grid-header")
self.add(Label(u"Accounts"))
self.add(self.grid)
def updateGrid(self, accounts):
rows = len(accounts)
if rows > 0:
self.grid.resize(rows+1, 3)
for row in range(rows):
link = PseudoLink(accounts[row]['number'],
self.onClick,
ID=accounts[row]['number'])
self.grid.setWidget(row+1, 0, link)
self.grid.setText(row+1, 1, accounts[row]['type'])
self.grid.setText(row+1, 2, accounts[row]['balance'])
def onShow(self):
self.remote.getaccounts(self)
def onClick(self, sender):
Window.alert(sender.getID())
def onRemoteResponse(self, response, request_info):
'''
Called when a response is received from a RPC.
'''
if request_info.method == 'getaccounts':
#TODO
self.updateGrid(response)
else:
Window.alert('Unrecognized JSONRPC method.')
def onRemoteError(self, code, message, request_info):
Window.alert(message)
示例5: RightPanel
# 需要导入模块: from pyjamas.ui.Grid import Grid [as 别名]
# 或者: from pyjamas.ui.Grid.Grid import resize [as 别名]
class RightPanel(DockPanel):
def __init__(self):
DockPanel.__init__(self)
self.grids = {}
self.g = Grid()
self.g.setCellSpacing("0px")
self.g.setCellPadding("8px")
self.title = HTML(" ")
self.title.setStyleName("rightpanel-title")
self.add(self.title, DockPanel.NORTH)
self.setCellWidth(self.title, "100%")
self.setCellHorizontalAlignment(self.title,
HasHorizontalAlignment.ALIGN_LEFT)
self.add(self.g, DockPanel.CENTER)
def setTitle(self, title):
self.title.setHTML(title)
def clear_items(self):
for i in range(len(self.grids)):
g = self.grids[i]
if hasattr(g, "clear_items"):
g.clear_items()
self.grids = {}
self.g.resize(0, 0)
def setup_panels(self, datasets):
self.grids = {}
self.data = {}
self.names = {}
self.loaded = {}
size = len(datasets)
self.g.resize(size, 1)
#for i in range(size):
# item = datasets[i]
# fname = item[0]
# self.grids[i] = RightGrid(fname)
# self.g.setWidget(i, 0, self.grids[i])
def add_html(self, html, name, index):
self.data[index] = html
self.names[index] = name
self.grids[index] = HTML(html)
self.g.setWidget(index, 0, self.grids[index])
def add_items(self, items, name, index):
self.data[index] = items
self.names[index] = name
self.grids[index] = RightGrid("")
self.grids[index].set_items(items)
self.g.setWidget(index, 0, self.grids[index])
示例6: Underway
# 需要导入模块: from pyjamas.ui.Grid import Grid [as 别名]
# 或者: from pyjamas.ui.Grid.Grid import resize [as 别名]
class Underway(HorizontalPanel):
def __init__(self):
HorizontalPanel.__init__(self, Spacing=4)
self.add(Label('Underway:', StyleName='section'))
s = ScrollPanel()
self.add(s)
v = VerticalPanel()
s.add(v)
self.queued = Grid(StyleName='users')
v.add(self.queued)
self.button = Button('Refresh', self, StyleName='refresh')
self.add(self.button)
self.err = Label()
self.add(self.err)
self.update()
def update(self):
remote = server.AdminService()
id = remote.getUnderway(self)
if id < 0:
self.err.setText('oops: could not call getUnderway')
def onRemoteResponse(self, result, request_info):
self.button.setEnabled(True)
self.queued.clear()
if not result:
self.queued.resize(1, 1)
self.queued.setText(0, 0, 'No users are currently being added.')
else:
self.queued.resize(len(result) + 1, 6)
self.queued.setText(0, 0, 'Pos')
self.queued.setText(0, 1, 'Name')
self.queued.setText(0, 2, 'Friends')
self.queued.setText(0, 3, '% done')
self.queued.setText(0, 4, 'Queued at')
self.queued.setText(0, 5, 'Started at')
row = 1
for name, nFriends, done, queuedAt, startTime in result:
self.queued.setText(row, 0, row)
self.queued.setText(row, 1, name)
self.queued.setText(row, 2, nFriends)
self.queued.setText(row, 3, '%.2f' % done)
self.queued.setText(row, 4, queuedAt)
self.queued.setText(row, 5, startTime)
row += 1
def onRemoteError(self, code, message, request_info):
self.button.setEnabled(True)
self.err.setText('Could not getUnderway: ' + message)
def onClick(self, sender):
self.err.setText('')
self.button.setEnabled(False)
self.update()
示例7: OddGridWidget
# 需要导入模块: from pyjamas.ui.Grid import Grid [as 别名]
# 或者: from pyjamas.ui.Grid.Grid import resize [as 别名]
class OddGridWidget(DockPanel):
def __init__(self, **kwargs):
DockPanel.__init__(self, **kwargs)
self.grid = Grid(StyleName="datagrid")
self.sp = ScrollPanel(self.grid, Width="100%", Height="100%")
self.header = Grid(Height="50px")
self.add(self.header, DockPanel.NORTH)
self.add(self.sp, DockPanel.CENTER)
cf = self.setCellHeight(self.header, "50px")
cf = self.setCellHeight(self.sp, "100%")
self.sortcol = 0
def setData(self, data):
self.data = data
self.redraw()
def sortfn(self, row1, row2):
return cmp(row1[self.sortcol], row2[self.sortcol])
def redraw(self):
self.data.sort(self.sortfn)
rows = len(self.data)
cols = 0
if rows > 0:
cols = len(self.data[0])
self.grid.resize(rows, cols)
self.header.resize(1, cols)
cf = self.grid.getCellFormatter()
for (nrow, row) in enumerate(self.data):
for (ncol, item) in enumerate(row):
self.grid.setHTML(nrow, ncol, str(item))
cf.setWidth(nrow, ncol, "200px")
cf = self.header.getCellFormatter()
self.sortbuttons = []
for ncol in range(cols):
sb = Button("sort col %d" % ncol)
sb.addClickListener(self)
self.header.setWidget(0, ncol, sb)
cf.setWidth(0, ncol, "200px")
self.sortbuttons.append(sb)
def onClick(self, sender):
for (ncol, b) in enumerate(self.sortbuttons):
if sender == b:
self.sortcol = ncol
self.redraw()
示例8: Queued
# 需要导入模块: from pyjamas.ui.Grid import Grid [as 别名]
# 或者: from pyjamas.ui.Grid.Grid import resize [as 别名]
class Queued(HorizontalPanel):
def __init__(self):
HorizontalPanel.__init__(self, Spacing=4)
self.add(Label("Queued:", StyleName="section"))
s = ScrollPanel()
self.add(s)
v = VerticalPanel()
s.add(v)
self.queued = Grid(StyleName="users")
v.add(self.queued)
self.button = Button("Refresh", self, StyleName="refresh")
self.add(self.button)
self.err = Label()
self.add(self.err)
self.update()
def update(self):
remote = server.AdminService()
id = remote.getQueued(self)
if id < 0:
self.err.setText("oops: could not call getQueued")
def onRemoteResponse(self, result, request_info):
self.button.setEnabled(True)
self.queued.clear()
if not result:
self.queued.resize(1, 1)
self.queued.setText(0, 0, "No users are queued for addition.")
else:
self.queued.resize(len(result) + 1, 4)
self.queued.setText(0, 0, "Pos")
self.queued.setText(0, 1, "Name")
self.queued.setText(0, 2, "Friends")
self.queued.setText(0, 3, "Queued at")
row = 1
for name, nFriends, time in result:
self.queued.setText(row, 0, row)
self.queued.setText(row, 1, name)
self.queued.setText(row, 2, nFriends)
self.queued.setText(row, 3, time)
row += 1
def onRemoteError(self, code, message, request_info):
self.button.setEnabled(True)
self.err.setText("Could not getQueued: " + message)
def onClick(self, sender):
self.err.setText("")
self.button.setEnabled(False)
self.update()
示例9: onRemoteResponse
# 需要导入模块: from pyjamas.ui.Grid import Grid [as 别名]
# 或者: from pyjamas.ui.Grid.Grid import resize [as 别名]
def onRemoteResponse(self, response, request_info):
method = request_info.method
if method == 'get_documents':
grid = Grid()
grid.resize(len(response)+1, 8)
grid.setHTML(0, 0, "Comment")
grid.setHTML(0, 1, "Episode")
grid.setHTML(0, 2, "When")
for (row, item) in enumerate(response):
grid.setHTML(row+1, 0, item.comment)
grid.setHTML(row+1, 1, item.episode)
grid.setHTML(row+1, 2, str(item.clin_when))
#RootPanel().add(grid)
self.add(grid)
else:
self.status.setText(str(response))
示例10: state_to_grid
# 需要导入模块: from pyjamas.ui.Grid import Grid [as 别名]
# 或者: from pyjamas.ui.Grid.Grid import resize [as 别名]
def state_to_grid(self, prev_x_board=-1, prev_y_board=-1, prev_x_cell=-1, prev_y_cell=-1):
board = self.state.boards
for y_board in range(3):
for x_board in range(3):
# for this mini-grid, do i make buttons or dashes?
will_make_buttons = self.will_buttons(y_board, x_board)
g=Grid()
g.resize(3, 3)
g.setBorderWidth(2)
g.setCellPadding(9)
g.setCellSpacing(1)
for y_cell in range(3):
for x_cell in range(3):
if board[y_board][x_board][y_cell][x_cell]['cell'] == 0:
if will_make_buttons:
if self.min_player == -1:
b = Button('Play 1 here.', self)
else:
b = Button('Play %d here.' % (self.state.next_piece[2]), self)
b.point = {'x_cell':x_cell, 'y_cell':y_cell, 'y_board': y_board, 'x_board': x_board}
else:
b = HTML('-')
elif board[y_board][x_board][y_cell][x_cell]['cell'] == 1:
if (prev_x_cell == x_cell and
prev_y_cell == y_cell and
prev_y_board == y_board and
prev_x_board == x_board):
b = HTML('<p style="color:red">1</p>')
else:
b = HTML('1')
elif board[y_board][x_board][y_cell][x_cell]['cell'] == 2:
if (prev_x_cell == x_cell and
prev_y_cell == y_cell and
prev_y_board == y_board and
prev_x_board == x_board):
b = HTML('<p style="color:red">2</p>')
else:
b = HTML('2')
g.setWidget(y_cell, x_cell, b)
self.add(g)
self.g.setWidget(y_board, x_board, g)
示例11: DynaTableWidget
# 需要导入模块: from pyjamas.ui.Grid import Grid [as 别名]
# 或者: from pyjamas.ui.Grid.Grid import resize [as 别名]
class DynaTableWidget(Composite):
def __init__(self, provider, columns, columnStyles, rowCount):
Composite.__init__(self)
self.acceptor = RowDataAcceptorImpl(self)
self.outer = DockPanel()
self.startRow = 0
self.grid = Grid()
self.navbar = NavBar(self)
self.provider = provider
self.initWidget(self.outer)
self.grid.setStyleName("table")
self.outer.add(self.navbar, DockPanel.NORTH)
self.outer.add(self.grid, DockPanel.CENTER)
self.initTable(columns, columnStyles, rowCount)
self.setStyleName("DynaTable-DynaTableWidget")
def initTable(self, columns, columnStyles, rowCount):
self.grid.resize(rowCount + 1, len(columns))
for i in range(len(columns)):
self.grid.setText(0, i, columns[i])
if columnStyles:
self.grid.cellFormatter.setStyleName(0, i, columnStyles[i] + "header")
def setStatusText(self, text):
self.navbar.status.setText(text)
def clearStatusText(self, text):
self.navbar.status.setHTML(" ")
def refresh(self):
self.navbar.gotoFirst.setEnabled(False)
self.navbar.gotoPrev.setEnabled(False)
self.navbar.gotoNext.setEnabled(False)
self.setStatusText("Please wait...")
self.provider.updateRowData(self.startRow, self.grid.getRowCount() - 1, self.acceptor)
def setRowCount(self, rows):
self.grid.resizeRows(rows)
def getDataRowCount(self):
return self.grid.getRowCount() - 1
示例12: init
# 需要导入模块: from pyjamas.ui.Grid import Grid [as 别名]
# 或者: from pyjamas.ui.Grid.Grid import resize [as 别名]
def init(self):
'''Initializes the grid on which the game is played.
'''
for y_board in range(3):
for x_board in range(3):
g=Grid()
g.resize(3, 3)
g.setBorderWidth(2)
g.setCellPadding(9)
g.setCellSpacing(1)
for x_cell in range(3):
for y_cell in range(3):
b = Button('Play here.', self)
b.point = {'x_cell':x_cell, 'y_cell':y_cell, 'y_board': y_board, 'x_board': x_board}
g.setWidget(y_cell, x_cell, b)
self.add(g)
self.g.setWidget(y_board, x_board, g)
示例13: DbTest
# 需要导入模块: from pyjamas.ui.Grid import Grid [as 别名]
# 或者: from pyjamas.ui.Grid.Grid import resize [as 别名]
class DbTest():
def __init__(self):
self.tb = TextBox()
self.b = Button("add")
self.g = Grid()
self.g.resize(4, 2)
RootPanel().add(HTML("Add Phrase. Press Button."))
RootPanel().add(self.tb)
RootPanel().add(self.b)
RootPanel().add(self.g)
self.b.addClickListener(self)
try:
self.db = Factory.createDatabase()
self.db.open('database-demo')
self.db.execute('create table if not exists Demo' +
' (Phrase varchar(255), Timestamp int)')
except ex:
log("could not create database" + str(ex))
def onClick(self, sender):
phrase = self.tb.getText()
currTime = time()
self.db.execute('insert into Demo values (?, ?)', phrase, currTime);
rs = self.db.execute('select * from Demo order by Timestamp desc');
index = 0
while rs.isValidRow():
if index <4:
self.g.setHTML(index, 0, rs.field(0))
self.g.setHTML(index, 1, rs.field(1))
else:
self.db.execute('delete from Demo where Timestamp=?', rs.field(1));
index += 1
rs.next()
rs.close()
示例14: Form
# 需要导入模块: from pyjamas.ui.Grid import Grid [as 别名]
# 或者: from pyjamas.ui.Grid.Grid import resize [as 别名]
class Form(FormPanel):
def __init__(self, svc, **kwargs):
self.describe_listeners = []
if kwargs.has_key('listener'):
listener = kwargs.pop('listener')
self.addDescribeListener(listener)
if kwargs.has_key('data'):
data = kwargs.pop('data')
else:
data = None
FormPanel.__init__(self, **kwargs)
self.svc = svc
self.grid = Grid()
self.grid.resize(0, 3)
self.add(self.grid)
self.describer = FormDescribeGrid(self)
self.saver = FormSaveGrid(self)
self.getter = FormGetGrid(self)
self.formsetup(data)
def addDescribeListener(self, l):
self.describe_listeners.append(l)
def add_widget(self, description, widget):
""" adds a widget, with error rows interspersed
"""
num_rows = self.grid.getRowCount()
self.grid.resize((num_rows+1), 3)
self.grid.setHTML(num_rows, 0, description)
self.grid.setWidget(num_rows, 1, widget)
def get(self, **kwargs):
writebr(repr(kwargs))
self.svc({}, {'get': kwargs}, self.getter)
def save(self, data=None):
self.clear_errors()
if data is None:
data = self.getValue()
self.data = data
writebr(repr(self.data))
self.svc(data, {'save': None}, self.saver)
def save_respond(self, response):
if not response['success']:
errors = response['errors']
self.set_errors(errors)
for l in self.describe_listeners:
l.onErrors(self, errors)
return
for l in self.describe_listeners:
l.onSaveDone(self, response)
def formsetup(self, data=None):
if data is None:
data = {}
self.data = data
self.svc(data, {'describe': None}, self.describer)
def clear_errors(self):
for idx, fname in enumerate(self.fields):
self.grid.setHTML(idx, 2, None)
def set_errors(self, errors):
offsets = {}
for idx, fname in enumerate(self.fields):
offsets[fname] = idx
for k, err in errors.items():
err = "<br />".join(err)
idx = offsets[k]
self.grid.setHTML(idx, 2, err)
def update_values(self, data = None):
if data is not None:
self.data = data
for idx, fname in enumerate(self.fields):
val = None
if self.data.has_key(fname):
val = self.data[fname]
w = self.grid.getWidget(idx, 1)
w.setValue(val)
def do_get(self, response):
fields = response.get('instance', None)
if fields:
self.update_values(fields)
for l in self.describe_listeners:
l.onRetrieveDone(self, fields)
#.........这里部分代码省略.........
示例15: GridWidget
# 需要导入模块: from pyjamas.ui.Grid import Grid [as 别名]
# 或者: from pyjamas.ui.Grid.Grid import resize [as 别名]
class GridWidget(AbsolutePanel):
def __init__(self):
self.state = State()
self.game_round = 0
self.TD_CONSTS = {'c3': 1., 'c2': 1., 'c1': 1., 'c6': 1., 'c5': 1., 'c4': 1.}
self.CONSTS = {'c3': .5, 'c2': 1., 'c1': 3., 'c6': .5, 'c5': .5, 'c4': .5}
self.BEST_CONSTANTS = {'c3': 0.767944, 'c2': 1.049451, 'c1': 3.074038, 'c6': 0.220823, 'c5': 0.281883, 'c4': 0.605861}
self.ONES_CONSTS = {'c3': 1., 'c2': 1., 'c1': 1., 'c6': 1., 'c5': 1., 'c4': 1.}
AbsolutePanel.__init__(self)
self.welcome_label = HTML('<H2 align="center">Welcome to Meta-Tic-Tac-Toe!</H2>To watch the AI play itself, press either "begin game" button. Note: if there is a pop-up saying that the script is taking a long time to complete, this is not a bug - the AI is just taking a while to find the next move. Select the option to continue the script.', StyleName='margins_both')
self.add(self.welcome_label)
self.depth_limit = 2
self.train_td = Button("Begin game. Learning AI first!", self, StyleName='margins_left')
self.add(self.train_td)
self.train_static = Button("Begin game. Static AI first!", self, StyleName='margins_left')
self.add(self.train_static)
self.score_label = Label("CURRENT SCORE: Learning AI: %d | Static AI: %d"% (0,0), StyleName='margins_left')
self.add(self.score_label)
self.game_over_message = Label("", StyleName='margins_left')
self.add(self.game_over_message)
StyleSheetCssText(margins)
self.increase_depth = Button("Increase ply search depth.", self)
self.decrease_depth = Button("Decrease ply search depth.", self)
self.depth_label = Label("Current depth is " + str(self.depth_limit) +".")
self.depth_grid = Grid(StyleName='margins_left')
self.depth_grid.resize(1, 3)
self.depth_grid.setBorderWidth(2)
self.depth_grid.setCellPadding(9)
self.depth_grid.setCellSpacing(1)
self.add(self.depth_grid)
self.depth_grid.setWidget(0, 0, self.decrease_depth)
self.depth_grid.setWidget(0, 1, self.depth_label)
self.depth_grid.setWidget(0, 2, self.increase_depth)
# initialize the board grid:
self.g=Grid(StyleName='margins_left')
self.g.resize(3, 3)
self.g.setBorderWidth(2)
self.g.setCellPadding(9)
self.g.setCellSpacing(1)
self.init()
self.add(self.g)
# initialize the contstants adjustment grid:
self.adj_grid = Grid(StyleName='margins_left')
self.adj_grid.resize(7, 4)
self.adj_grid.setBorderWidth(2)
self.adj_grid.setCellPadding(9)
self.adj_grid.setCellSpacing(1)
self.init_constants_adj_grid()
self.add(self.adj_grid)
self.reset_constants = Button("Reset all of Learning AI's constants to 1.", self, StyleName='margins_left')
self.add(self.reset_constants)
self.state_to_grid()
def init_constants_adj_grid(self):
'''Initializes the grid that allows the TD_CONSTS to be adjusted.
'''
self.decr_buttons = {}
self.adj_learning_labels = {}
self.adj_static_labels = {}
self.incr_buttons = {}
td_keys = ['c1', 'c2', 'c3', 'c4', 'c5', 'c6']
learning_ai_header = Label("Constant for the learning AI.")
self.adj_grid.setWidget(0, 0, learning_ai_header)
static_ai_header = Label("Constants for the static AI.")
self.adj_grid.setWidget(0, 2, static_ai_header)
for i, key in enumerate(td_keys):
j = i + 1 # off by one because of header...
self.adj_learning_labels[key] = Label("Constant %d: %f" % (key[1], self.TD_CONSTS[key]))
self.adj_grid.setWidget(j, 0, self.adj_learning_labels[key])
self.decr_buttons[key] = Button('<', self)
self.adj_grid.setWidget(j, 1, self.decr_buttons[key])
self.adj_static_labels[key] = Label("Constant %d: %f" % (key[1], self.CONSTS[key]))
self.adj_grid.setWidget(j, 2, self.adj_static_labels[key])
self.incr_buttons[key] = Button('>', self)
self.adj_grid.setWidget(j, 3, self.incr_buttons[key])
def init(self):
'''Initializes the grid on which the game is played.
'''
for y_board in range(3):
for x_board in range(3):
#.........这里部分代码省略.........