Ejemplo n.º 1
0
def next_player(lead):

    if (lead % 4 == 0):
        oled_config.partial_clsr(0, 2)
        oled_config.fline_print(2, 1, "→")
    elif (lead % 4 == 1):
        oled_config.partial_clsr(2, 1)
        oled_config.fline_print(5, 2, "→")
    elif (lead % 4 == 2):
        oled_config.partial_clsr(5, 2)
        oled_config.fline_print(3, 3, "→")
    else:
        oled_config.partial_clsr(3, 3)
        oled_config.fline_print(0, 2, "→")
Ejemplo n.º 2
0
def online():
    oled_config.clsr()
    oled_config.fline_print(0, 0, "Select Mode")
    oled_config.fline_print(0, 2, "1. Online")
    oled_config.fline_print(0, 3, "2. Offline")
    while True:
        RK = Keypad.Read_Key()
        if RK == 1:
            return True
        elif RK == 2:
            return False
Ejemplo n.º 3
0
def refresh(str1, str2, str3, str4):
    oled_config.clsr()
    oled_config.fline_print(0, 0, str1)
    oled_config.fline_print(0, 1, str2)
    oled_config.fline_print(0, 2, str3)
    oled_config.fline_print(0, 3, str4)
Ejemplo n.º 4
0
import time
total_score=0  #NS
BMBC='999'
game_mode=True #true=classic false=general
round=0
"""
bidding
0=pass
1234567=1234567
F=♠ E=♥ D=♦ C=♣
A=double b=NT
"""
while True:
    mode = mode_select.online()
    if mode:                    #online
        oled_config.fline_print(0,0,"Connecting")
        online=GetMyState.MyConnect(BMBC)
        if(("#") and online['state']=='0'): #time out or interrupt ->general
            General.general()
        else:
            time.sleep(1)     ##Game()
    else:
<<<<<<< HEAD
        time.sleep(1)
        #General.general()
=======
       # General.general()
        time.sleep(1)     ##Game()
>>>>>>> pull and commit test
    ##################################################################################  bidding
    bid_data=bidding.bidding(round%4)  ##先喊數字
Ejemplo n.º 5
0
def showing(round, contract, vunerable, declarer):
    return_data = []
    oled_config.clsr()
    oled_config.fline_print(0, 0, "R")
    oled_config.fline_print(1, 0, str(round + 1))
    oled_config.fline_print(4, 0, contract)
    oled_config.fline_print(10, 0, vunerable)
    oled_config.fline_print(3, 1, "N")
    oled_config.fline_print(1, 2, "W")
    oled_config.fline_print(6, 2, "E")
    oled_config.fline_print(4, 3, "S")
    oled_config.fline_print(10, 2, "NS 0")
    oled_config.fline_print(10, 3, "EW 0")
    contract = contract[1]
    N = ""
    E = ""
    S = ""
    W = ""
    NS_trick = 0
    EW_trick = 0
    rounds = 0  #count to 13
    lead = round % 4  #0=N 1=e 2=s 3=w

    retry = 0
    while rounds < 13:
        count = 0
        iplist = []
        refresh()
        next_player(lead)
        while (count < 4):  ##get cards and print →
            #scan barcode and transform to (suit,point)
            global press_c
            global press_s
            press_c = 0
            press_s = ""
            while US.Distance() > 8:
                time.sleep(0.2)
            with keyboard.Listener(on_press=on_press,
                                   on_release=on_release) as listener:
                BB.Scan()
                #time.sleep(1)
            listener.join()
            if press_s == "":
                retry = retry + 1
                if retry == 3:
                    retry = 0
                    S9.Right()
                    time.sleep(0.3)
                    S9.Balance()
                continue
            S9.Left()
            time.sleep(0.3)
            S9.Balance()
            retry = 0

            ThisCard = press_s
            print(ThisCard)
            t_suit = ThisCard[3]
            if (t_suit == 3):
                suit = 'D'
            elif (t_suit == 1):
                suit = 'S'
            elif (t_suit == 4):
                suit = 'C'
            else:
                suit = 'H'
            point = ThisCard[2]
            point = Game.CardTransfer(point)
            ip = suit + point
            #
            iplist.append(ip)
            if (lead % 4 == 0):
                oled_config.fline_print(4, 1, str(ip))
                N = N + ip + " "
                next_player(lead + 1)
            elif (lead % 4 == 1):
                oled_config.fline_print(7, 2, str(ip))
                E = E + ip + " "
                next_player(lead + 1)
            elif (lead % 4 == 2):
                oled_config.fline_print(5, 3, str(ip))
                S = S + ip + " "
                next_player(lead + 1)
            else:
                oled_config.fline_print(2, 2, str(ip))
                W = W + ip + " "
                next_player(lead + 1)
            lead += 1
            count += 1
        lead = lead % 4  #get first seat
        temp = judge(iplist, contract)  #get winner
        lead = (lead + temp) % 4  #get next seat
        if (lead % 2 == 0):  ##南北吃到
            NS_trick += 1
            oled_config.partial_clsr(13, 2)
            if NS_trick > 10:
                oled_config.partial_clsr(12, 2)
                oled_config.fline_print(12, 2, str(NS_trick))
            else:
                oled_config.fline_print(13, 2, str(NS_trick))
        else:  ##東西吃到
            EW_trick += 1
            oled_config.partial_clsr(13, 3)
            if NS_trick > 10:
                oled_config.partial_clsr(12, 3)
                oled_config.fline_print(12, 3, str(EW_trick))
            else:
                oled_config.fline_print(13, 3, str(EW_trick))
        rounds += 1
    return_data.append(N)
    return_data.append(E)
    return_data.append(W)
    return_data.append(S)
    return_data.append(NS_trick)
    return_data.append(EW_trick)
    return return_data
Ejemplo n.º 6
0
def print_result(round, total_score, new_score):
    oled_config.fline_print(3, 0, "Round:")
    oled_config.fline_print(10, 0, str(round))
    oled_config.fline_print(1, 1, "NS:" + str(total_score))
    oled_config.fline_print(1, 1, "EW:" + str(-total_score))
    oled_config.fline_reverse(7, 3, "WIN")
    if new_score < 0:
        oled_config.fline_print(8, 1, "-" + str(-new_score))
        oled_config.fline_print(8, 1, "+" + str(-new_score))
        oled_config.fline_reverse(4, 3, "EW")
    else:
        oled_config.fline_print(8, 1, "+" + str(new_score))
        oled_config.fline_print(8, 1, "-" + str(new_score))
        oled_config.fline_reverse(4, 3, "NS")
    while True:
        read1 = ''
        read1 = Keypad.Read_Key()
        time.sleep(0.6)
        if read1 != '':
            break