def NewGame(self): libqp.ddz_start(self.ddz) libqp.ddz_call(self.ddz, self.ddz.curr_player_no, 3) # sort for i in range(0, 3): player = libqp.ddz_get_player(self.ddz, i) hand = libqp.ddz_get_player_hand(player) libqp.cards_sort(hand) # recalc all rect self.CalcRect() self.Refresh()
def CalcRect(self): width, height = self.GetClientSize() pokerW, pokerH = self.bmpPoker['0'].GetSize() y = height for i in range(0, 3): self.rcHand[2-i].SetY(y - pokerH) player = libqp.ddz_get_player(self.ddz, 2 - i) hand = libqp.ddz_get_player_hand(player) num = libqp.hand_num(hand) self.rcHand[2-i].SetWidth(pokerW + (num - 1) * self.pokerOffsetW) self.rcHand[2-i].SetHeight(pokerH) y = y - pokerH - self.blankH
def CalcRect(self): width, height = self.GetClientSize() pokerW, pokerH = self.bmpPoker['0'].GetSize() y = height for i in range(0, 3): self.rcHand[2 - i].SetY(y - pokerH) player = libqp.ddz_get_player(self.ddz, 2 - i) hand = libqp.ddz_get_player_hand(player) num = libqp.hand_num(hand) self.rcHand[2 - i].SetWidth(pokerW + (num - 1) * self.pokerOffsetW) self.rcHand[2 - i].SetHeight(pokerH) y = y - pokerH - self.blankH
def OnLeftDown(self, e): pokerW, pokerH = self.bmpPoker['0'].GetSize() pt = e.GetPosition() cp_no = self.ddz.curr_player_no rc = wx.Rect(self.rcHand[cp_no].GetX(), self.rcHand[cp_no].GetY(), self.rcHand[cp_no].GetWidth(), self.rcHand[cp_no].GetHeight()) rc.SetY(rc.GetY() - self.upH) rc.SetHeight(rc.GetHeight() + self.upH) flag = 0 if rc.Inside(pt): player = libqp.ddz_get_player(self.ddz, cp_no) hand = libqp.ddz_get_player_hand(player) num = libqp.hand_num(hand) if pt.x > (rc.GetRight() - pokerW): if self.flag_up[num-1] > 0: y1 = rc.GetTop() y2 = y1 + pokerH if pt.y >= y1 and pt.y <= y2: self.flag_up[num-1] = 0 flag = 1 else: y1 = rc.GetTop() + self.upH y2 = y1 + pokerH if pt.y >= y1 and pt.y <= y2: self.flag_up[num-1] = 1 flag = 1 else: idx = (pt.x - rc.GetLeft()) / self.pokerOffsetW if self.flag_up[idx] > 0: y1 = rc.GetTop() y2 = y1 + pokerH if pt.y >= y1 and pt.y <= y2: self.flag_up[idx] = 0 flag = 1 else: y1 = rc.GetTop() + self.upH y2 = y1 + pokerH if pt.y >= y1 and pt.y <= y2: self.flag_up[idx] = 1 flag = 1 if flag > 0: self.Refresh()
def OnLeftDown(self, e): pokerW, pokerH = self.bmpPoker['0'].GetSize() pt = e.GetPosition() cp_no = self.ddz.curr_player_no rc = wx.Rect(self.rcHand[cp_no].GetX(), self.rcHand[cp_no].GetY(), self.rcHand[cp_no].GetWidth(), self.rcHand[cp_no].GetHeight()) rc.SetY(rc.GetY() - self.upH) rc.SetHeight(rc.GetHeight() + self.upH) flag = 0 if rc.Inside(pt): player = libqp.ddz_get_player(self.ddz, cp_no) hand = libqp.ddz_get_player_hand(player) num = libqp.hand_num(hand) if pt.x > (rc.GetRight() - pokerW): if self.flag_up[num - 1] > 0: y1 = rc.GetTop() y2 = y1 + pokerH if pt.y >= y1 and pt.y <= y2: self.flag_up[num - 1] = 0 flag = 1 else: y1 = rc.GetTop() + self.upH y2 = y1 + pokerH if pt.y >= y1 and pt.y <= y2: self.flag_up[num - 1] = 1 flag = 1 else: idx = (pt.x - rc.GetLeft()) / self.pokerOffsetW if self.flag_up[idx] > 0: y1 = rc.GetTop() y2 = y1 + pokerH if pt.y >= y1 and pt.y <= y2: self.flag_up[idx] = 0 flag = 1 else: y1 = rc.GetTop() + self.upH y2 = y1 + pokerH if pt.y >= y1 and pt.y <= y2: self.flag_up[idx] = 1 flag = 1 if flag > 0: self.Refresh()
def OnRightDown(self, e): pt = e.GetPosition() cp_no = self.ddz.curr_player_no if self.rcHand[cp_no].Inside(pt): outlist = [] for i in range(0, 50): if self.flag_up[i] > 0: outlist.append(i) if len(outlist) > 0: player = libqp.ddz_get_player(self.ddz, cp_no) hand_p = libqp.ddz_get_player_hand(player) hand_out = libqp.hand_new(len(outlist)) for j in outlist: card = libqp.hand_get(hand_p, j) libqp.hand_push(hand_out, card) htype = libqp.hand_type() libqp.ddz_handtype(hand_out, htype) ret = libqp.ddz_canplay(self.ddz, hand_out, htype) if ret > 0: libqp.ddz_play(self.ddz, cp_no, hand_out) num = libqp.hand_num(hand_p) pokerW, pokerH = self.bmpPoker['0'].GetSize() self.rcHand[cp_no].SetWidth(pokerW + (num - 1) * self.pokerOffsetW) for i in range(0, 50): self.flag_up[i] = 0 self.Refresh() else: print "can't play:", htype.type, htype.logic_value1 else: # pass libqp.ddz_pass(self.ddz, cp_no) self.Refresh() else: # reset flag_up flag = 0 for i in range(0, 50): if self.flag_up[i] > 0: flag = 1 self.flag_up[i] = 0 if flag > 0: self.Refresh()
def OnRightDown(self, e): pt = e.GetPosition() cp_no = self.ddz.curr_player_no if self.rcHand[cp_no].Inside(pt): outlist = [] for i in range(0, 50): if self.flag_up[i] > 0: outlist.append(i) if len(outlist) > 0: player = libqp.ddz_get_player(self.ddz, cp_no) hand_p = libqp.ddz_get_player_hand(player) hand_out = libqp.hand_new(len(outlist)) for j in outlist: card = libqp.hand_get(hand_p, j) libqp.hand_push(hand_out, card) htype = libqp.hand_type() libqp.ddz_handtype(hand_out, htype) ret = libqp.ddz_canplay(self.ddz, hand_out, htype) if ret > 0: libqp.ddz_play(self.ddz, cp_no, hand_out) num = libqp.hand_num(hand_p) pokerW, pokerH = self.bmpPoker['0'].GetSize() self.rcHand[cp_no].SetWidth(pokerW + (num - 1) * self.pokerOffsetW) for i in range(0, 50): self.flag_up[i] = 0 self.Refresh() else: print "can't play:",htype.type,htype.logic_value1 else: # pass libqp.ddz_pass(self.ddz, cp_no) self.Refresh() else: # reset flag_up flag = 0 for i in range(0, 50): if self.flag_up[i] > 0: flag = 1 self.flag_up[i] = 0 if flag > 0: self.Refresh()
def OnPaint(self, e): width, height = self.GetClientSize() if USE_BUFFERED_DC: dc = wx.BufferedPaintDC(self, self._Buffer) else: dc = wx.PaintDC(self) brBack = wx.Brush('#053154', wx.SOLID); dc.SetBackground(brBack) dc.Clear() pokerW, pokerH = self.bmpPoker['0'].GetSize() x = 0 y = 0 # draw player's hand cards dc.SetTextForeground(wx.WHITE) for i in range(0, 3): x = 0 cp_no = self.ddz.curr_player_no playerid = "player%d" % (2 - i) dc.DrawText(playerid, x, self.rcHand[2-i].GetY()) if cp_no == (2 - i): # draw arrow arlist = [(0,0), (8,8), (0,16)] dc.DrawPolygon(arlist, self.rcHand[2-i].GetX() - 10, self.rcHand[2-i].GetY() + pokerH / 2 - 8) player = libqp.ddz_get_player(self.ddz, 2 - i) hand = libqp.ddz_get_player_hand(player) num = libqp.hand_num(hand) x = self.rcHand[2-i].GetX() y = self.rcHand[2-i].GetY() for j in range(0, num): card = libqp.hand_get(hand, j) keyname = libqp.card_text(card) if self.flag_up[j] > 0 and cp_no == (2 - i): dc.DrawBitmap(self.bmpPoker[keyname], x, y - self.upH, 0) else: dc.DrawBitmap(self.bmpPoker[keyname], x, y, 0) x = x + self.pokerOffsetW # draw 3 di x = width - 3 * pokerW - 2 * 2 for i in range(0, 3): card = libqp.ddz_get_di(self.ddz, i) keyname = libqp.card_text(card) dc.DrawBitmap(self.bmpPoker[keyname], x, self.rcHand[0].GetY(), 0) x = x + pokerW + 1 # draw last hand num = self.ddz.last_hand.num x = (width - ((num - 1) * self.pokerOffsetW + pokerW)) / 2 for i in range(0, num): card = libqp.hand_get(self.ddz.last_hand, i) keyname = libqp.card_text(card) dc.DrawBitmap(self.bmpPoker[keyname], x, 0, 0) x = x + self.pokerOffsetW # info dz_no = self.ddz.landlord_no dz_call = libqp.ddz_landlord_call(self.ddz) info = "landlord:player%d\n" % (dz_no) info += "call:%d\n" % (dz_call) info += "state:%d\n" % (self.ddz.game_state) info += "last hand:%d" % (self.ddz.last_htype.type) info += ",%d\n" % (self.ddz.last_htype.logic_value1) dc.DrawText(info, 0, 0)
def OnPaint(self, e): width, height = self.GetClientSize() if USE_BUFFERED_DC: dc = wx.BufferedPaintDC(self, self._Buffer) else: dc = wx.PaintDC(self) brBack = wx.Brush('#053154', wx.SOLID) dc.SetBackground(brBack) dc.Clear() pokerW, pokerH = self.bmpPoker['0'].GetSize() x = 0 y = 0 # draw player's hand cards dc.SetTextForeground(wx.WHITE) for i in range(0, 3): x = 0 cp_no = self.ddz.curr_player_no playerid = "player%d" % (2 - i) dc.DrawText(playerid, x, self.rcHand[2 - i].GetY()) if cp_no == (2 - i): # draw arrow arlist = [(0, 0), (8, 8), (0, 16)] dc.DrawPolygon(arlist, self.rcHand[2 - i].GetX() - 10, self.rcHand[2 - i].GetY() + pokerH / 2 - 8) player = libqp.ddz_get_player(self.ddz, 2 - i) hand = libqp.ddz_get_player_hand(player) num = libqp.hand_num(hand) x = self.rcHand[2 - i].GetX() y = self.rcHand[2 - i].GetY() for j in range(0, num): card = libqp.hand_get(hand, j) keyname = libqp.card_text(card) if self.flag_up[j] > 0 and cp_no == (2 - i): dc.DrawBitmap(self.bmpPoker[keyname], x, y - self.upH, 0) else: dc.DrawBitmap(self.bmpPoker[keyname], x, y, 0) x = x + self.pokerOffsetW # draw 3 di x = width - 3 * pokerW - 2 * 2 for i in range(0, 3): card = libqp.ddz_get_di(self.ddz, i) keyname = libqp.card_text(card) dc.DrawBitmap(self.bmpPoker[keyname], x, self.rcHand[0].GetY(), 0) x = x + pokerW + 1 # draw last hand num = self.ddz.last_hand.num x = (width - ((num - 1) * self.pokerOffsetW + pokerW)) / 2 for i in range(0, num): card = libqp.hand_get(self.ddz.last_hand, i) keyname = libqp.card_text(card) dc.DrawBitmap(self.bmpPoker[keyname], x, 0, 0) x = x + self.pokerOffsetW # info dz_no = self.ddz.landlord_no dz_call = libqp.ddz_landlord_call(self.ddz) info = "landlord:player%d\n" % (dz_no) info += "call:%d\n" % (dz_call) info += "state:%d\n" % (self.ddz.game_state) info += "last hand:%d" % (self.ddz.last_htype.type) info += ",%d\n" % (self.ddz.last_htype.logic_value1) dc.DrawText(info, 0, 0)