Пример #1
0
def genDeal ():
	random.shuffle (deck)
	dl = dds.deal ()

	dl.currentTrickSuit[0] = 0
	dl.currentTrickSuit[1] = 0
	dl.currentTrickSuit[2] = 0

	dl.currentTrickRank[0] = 0
	dl.currentTrickRank[1] = 0
	dl.currentTrickRank[2] = 0	

	for h in range (dds.DDS_HANDS):
		for s in range (dds.DDS_SUITS):
			dl.remainCards[h][s] = 0

	hand = 0
	counter = 0
	for (suit, rank) in deck:
		dl.remainCards [hand][suit] |= rank
		counter += 1
		if counter == 13:
			hand += 1
			counter = 0

	return dl
Пример #2
0
def getDealFromPreset (handno):
	dl = dds.deal ()

	dl.currentTrickSuit[0] = 0
	dl.currentTrickSuit[1] = 0
	dl.currentTrickSuit[2] = 0

	dl.currentTrickRank[0] = 0
	dl.currentTrickRank[1] = 0
	dl.currentTrickRank[2] = 0

	for h in range(dds.DDS_HANDS):
	    for s in range(dds.DDS_SUITS):
	        dl.remainCards[h][s] = hands.holdings[handno][s][h]

	return dl
Пример #3
0
def dod(ds):
    ''' compute double-dummy tricks (N declarer, NT; call dd.solve with
        leader code, 0=N to 3=W, and trump code, 0=S to 3=C, for other).

        Args:
            ds: a string describing the whole deal, such as
  'n AQ3.T653.KQ4.AJ5 e KJT4.AKQ8.JT86.8 s 862.974.A73.KQ72 w 975.J2.952.T9643'
        Returns:
            tricks, time
                where tricks, an int, is the number of NS tricks,
                      time, a float, is the elapsed time (in seconds and
                          fraction) expended for the analysis
    '''
    start = timer()
    deal = [h.split('.') for h in ds.split()[1::2]]
    dd = dds.deal(deal)
    s = dd.solve()
    return 13 - s[-1][0], timer() - start
Пример #4
0
import dds
import ctypes
import hands
import functions

dl = dds.deal()
DDplay = dds.playTraceBin()
solved = dds.solvedPlay()

line = ctypes.create_string_buffer(80)

threadIndex = 0

for handno in range(3):
    dl.trump = hands.trump[handno]
    dl.first = hands.first[handno]

    dl.currentTrickSuit[0] = 0
    dl.currentTrickSuit[1] = 0
    dl.currentTrickSuit[2] = 0

    dl.currentTrickRank[0] = 0
    dl.currentTrickRank[1] = 0
    dl.currentTrickRank[2] = 0

    for h in range(dds.DDS_HANDS):
        for s in range(dds.DDS_SUITS):
            dl.remainCards[h][s] = hands.holdings[handno][s][h]

    DDplay.number = hands.playNo[handno]