Перейти к публикации
  • Сейчас на странице   Всего пользователей: 1   (0 пользователей, 1 гость)

Rooster

Программирование[8]

Рекомендованные сообщения

(изменено)

 

слава богу, нашелся добрый человек. уже не могу дождаться, когда смогу поиграть в твой покер

Он не для игры. Так, чисто подрочить.

 

ты не за того питона взялся


Изменено пользователем FeelYourDestiny
madvlaydin, Feanaro, Pep_See и 10 другим понравилось это

Поделиться сообщением


Ссылка на сообщение
(изменено)

 

 

слава богу, нашелся добрый человек. уже не могу дождаться, когда смогу поиграть в твой покер

Он не для игры. Так, чисто подрочить.

 

ты не за того питона взялся

 

Чё-то в голос.

Что-то вообще сообразить ничего не могу.

 

 

 

class Game:
	playerOnesHand = []
	playerTwosHand = []
	playerOneScore = 0
	playerTwoScore = 0
	result = 0

	def __init__(self, cards):
		cards = cards.split()
		self.playerOnesHand = Hand(cards[0:5])
		self.playerTwosHand = Hand(cards[5:10])
		self.play();

	def play(self):
		self.playerOneScore = self.playerOnesHand.getScore();
		self.playerTwosCore = self.playerTwosHand.getScore();


		if (self.playerOneScore > self.playerTwoScore):
			result = 1
		else: 
			result = 2

class Hand: 
	cards = []
	values = []
	def setValues(self):
		for card in self.cards:
			self.values.append(card.value)
		self.values.sort()

		print len(self.values)

	def isFlush(self):
		currentSuit = self.cards[0].suit
		for card in self.cards:
			if card.suit != currentSuit:
				return False
			currentSuit = card.suit
		return True

	def isRoyalFlush(self):
		for card in self.cards:
			self.values.append(card.value)

		low = min(self.values)

		if low == 10 and (low + 1 in self.values) and (low + 2 in self.values) and (low + 3 in self.values) and (low + 4 in self.values):
			return True
		else:
			return False

	def isFourOfAKind(self):
		cardOneCount = self.values.count(self.values[0])
		cardTwoCount = self.values.count(self.values[len(self.values) - 1])

		if cardOneCount == 4 | cardTwoCount == 4:
			return True
		else: 
			return False

	def isThreeOfAKind(self):
		cardOneCount = self.values.count(self.values[0])
		cardTwoCount = self.values.count(self.values[len(self.values) - 1])

		if cardOneCount == 3 | cardTwoCount == 3:
			return True
		else: 
			return False

	def isStraight(self):
		low = min(self.values)

		if low == 10 and (low + 1 in self.values) and (low + 2 in self.values) and (low + 3 in self.values) and (low + 4 in self.values):
			return True;

	def isFullHouse(self):
		self.values = []
		for card in self.cards:
			self.values.append(card.value)

		self.values.sort()
		cardOneCount = self.values.count(self.values[0])
		cardTwoCount = self.values.count(self.values[len(self.values) - 1])

		if (cardOneCount == 2 and cardTwoCount == 3 ) | (cardOneCount == 3 and cardTwoCount == 2):
			return True
		else: 
			return False

	def isTwoPair(self):
		cardOneCount = self.values.count(self.values[0])
		cardTwoCount = self.values.count(self.values[4])
		cardThreeCount = self.values.count(self.values[2])

		if(cardOneCount == 2 and cardTwoCount == 2) | (cardOneCount == 2 and cardThreeCount == 2) | (cardTwoCount == 2 and cardThreeCount == 2):
			return True;
		return False;

	def isPair(self):
		cardOneCount = self.values.count(self.values[0])
		cardTwoCount = self.values.count(self.values[4])
		cardThreeCount = self.values.count(self.values[2])

		if(cardOneCount == 2 ^ cardTwoCount == 2 ^ cardTwoCount == 3):
			return True;
		return False;

	def __init__(self, cards):
		for c in cards:
			self.cards.append(Card(c))

		self.setValues()

	def getScore(self):
		score = 0
		if self.isRoyalFlush(): score = 140000
		elif self.isFlush() and self.isStraight(): score = 130000
		elif self.isFourOfAKind(): score = 120000
		elif self.isFullHouse(): score = 110000
		elif self.isFlush(): score = 100000
		elif self.isStraight(): score = 90000
		elif self.isThreeOfAKind(): score = 80000
		elif self.isTwoPair(): score = 70000
		elif self.isTwoPair(): score = 60000
		else: score = 0  

		return score

class Card:
	# value = 0
	# suit = 0
	def __init__(self, card):
		self.value = self.determineValue(card[0])
		self.suit = card[1]

	def determineValue(x,y):
		return {
			'2':2,
			'3':3,
			'4':4,
			'5':6,
			'6':6,
			'7':7,
			'8':8,
			'9':9,
			'T':10,
			'J':11,
			'Q':12,
			'K':13,
			'A':14
		}.get(y)

def playGames():
	player1Score = 0;
	player2Score = 0;
	file = open("poker-small.txt")
	
	for line in file:
		game = Game(line)
		if game.result == 1:
			player1Score += 1
		else:
			player2Score += 1

	print "Player one has won " + str(player1Score) + " games! "
	print "Player two has won " + str(player2Score) + " games! "
	if (player1Score > player2Score):
		print "Player 1 wins!"
	else:
		print "Player 2 wins!"
 
def main():
	playGames();

if __name__ == "__main__":
	main()

 

 

Вот нашёл код. Вроде подходит. Буду переделывать.

import itertools
import random

player_count = int(input("How many players? "))

suits = ['s', 'c', 'd', 'h']
faces = ['A', '2', '3', '4', '5', '6', '7', '8', '9', 'T', 'J', 'Q', 'K']

# Defining deck and drawing cards (5 + 2 per player):

deck = set(itertools.product(faces, suits))
drawn_cards = random.sample(deck,(5 + 2 * player_count))

# Storing a list with player object instances

players = []

class Players:

    def __init__(self, stack):

        self.stack = stack
        self.last_action = "none"  ## last action taken (check, call etc). 
        self.street_bets = 0       ## total bets on current street

    def holecards(self):

## pop cards from list and pritifying their display. Cards will later be 
## run through a function for checking value of hands:

        card1 = drawn_cards.pop(len(drawn_cards)-1) 
        card2 = drawn_cards.pop(len(drawn_cards)-1) 
        self.card1 = (card1[0]+"["+card1[1]+"]")    
        self.card2 = (card2[0]+"["+card2[1]+"]")     
        self.cards = self.card1+ " - " +self.card2
        print (self.cards)      

class Table:

    def __init__(self):     

        self.total_pot = 0

    def flop(self):

        card1 = drawn_cards.pop(len(drawn_cards)-1)
        card2 = drawn_cards.pop(len(drawn_cards)-1) 
        card2 = drawn_cards.pop(len(drawn_cards)-1)
        self.card1 = (card1[0]+"["+card1[1]+"]")
        self.card2 = (card2[0]+"["+card2[1]+"]")     
        self.card3 = (card2[0]+"["+card2[1]+"]")
        self.flop = self.card1+ " - " + self.card2 + " - " + self.card3
        print (self.flop)

    def turn(self):

        card = drawn_cards.pop(len(drawn_cards)-1)
        self.card = (card[0]+"["+card[1]+"]")
        self.turn = self.card
        print (self.turn)

    def river(self):

        card = drawn_cards.pop(len(drawn_cards)-1)
        self.card = (card[0]+"["+card[1]+"]")
        self.river = self.card
        print (self.river)



# Add player stacks and distribute holecards:

for i in range(player_count):
    players.append(i)
    players[i] = Players(100)
    players[i].holecards()

# Add dealer to table:

dealer = Table()

dealer.flop()
dealer.turn()
dealer.river()

Изменено пользователем yellyex

moonfangtopich написал 29.08.2019 в 14:57:
У вас недостаточно широкий кругозор, пацаны

Я странствия этого еблана видел в покерных топанах, а потом в таверне - это один из самых безумных людей на форуме. Я искренне надеялся, что его зов о помощи останется незамеченным, но нет, нашелся доброволец и вот уже три страницы мы пожинаем плоды

Поделиться сообщением


Ссылка на сообщение

бля, ну чел, ты прочитай свой вопрос и посмотри, что ты выводишь в принте, боюсь нихуя не изменилось.

 

щас бы слушать подкасты, а не читать текст в 100 раз быстрее, и говорить об эффективности

научимся читать книги во время пробежек\тренажерки - так и будем делать

наверное на конфы тоже бессмысленно ходить

конфы нужны чтобы заводить знакомства. Во время пробежки нужно бегать, а не слушать. У тебя огромное количество энергии уходит на восприятие информации и ты не сосредоточен на беге, короче хуета.

Saying that Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders.
 

Поделиться сообщением


Ссылка на сообщение

в автобусе ехать надо а не слушать

понятно?

DomikTS- понравилось это

Поделиться сообщением


Ссылка на сообщение

однажды друг начал слушать подкаст пока дышал и умер. 

Поделиться сообщением


Ссылка на сообщение

Этим другом был Zellar


Shaman.png.0cdd33d48561cd068bb3c5ee78289381.png Anna.jpeg.03c9b49363298ceec256500a5d522f7d.jpeg Nigga.jpg.f807f2556bdbf68452292a9301494591.jpg

 

Поделиться сообщением


Ссылка на сообщение
(изменено)

Наконец-то нашёл, но не понимаю, как он работает. Киплю, как чайник!!!

 

 

import random

class Card( object ):
def __init__(self, name, value, suit, symbol):
self.value = value
self.suit = suit
self.name = name
self.symbol = symbol
self.showing = False

def __repr__(self):
if self.showing:
return self.symbol
else:
return "Card"

class Deck(object):
def shuffle(self, times=1 ):
random.shuffle(self.cards)
print("Deck Shuffled")

def deal(self):
return self.cards.pop(0)

class StandardDeck(Deck):
def __init__(self):
self.cards = []
suits = {"Hearts":"♡", "Spades":"♠", "Diamonds":"♢", "Clubs":"♣"}
values = {"Two":2,
"Three":3,
"Four":4,
"Five":5,
"Six":6,
"Seven":7,
"Eight":8,
"Nine":9,
"Ten":10,
"Jack":11,
"Queen":12,
"King":13,
"Ace":14 }

for name in values:
for suit in suits:
symbolIcon = suits[suit]
if values[name] < 11:
symbol = str(values[name])+symbolIcon
else:
symbol = name[0]+symbolIcon
self.cards.append( Card(name, values[name], suit, symbol) )

def __repr__(self):
return "Standard deck of cards:{0} remaining".format(len(self.cards))

class Player(object):
def __init__(self):
self.cards = []

def cardCount(self):
return len(self.cards)

def addCard(self, card):
self.cards.append(card)


class PokerScorer(object):
def __init__(self, cards):
# Number of cards
if not len(cards) == 5:
return "Error: Wrong number of cards"

self.cards = cards

def flush(self):
suits = [card.suit for card in self.cards]
if len( set(suits) ) == 1:
return True
return False

def straight(self):
values = [card.value for card in self.cards]
values.sort()

if not len( set(values)) == 5:
return False

if values[4] == 14 and values[0] == 2 and values[1] == 3 and values[2] == 4 and values[3] == 5:
return 5

else:
if not values[0] + 1 == values[1]: return False
if not values[1] + 1 == values[2]: return False
if not values[2] + 1 == values[3]: return False
if not values[3] + 1 == values[4]: return False

return values[4]

def highCard(self):
values = [card.value for card in self.cards]
highCard = None
for card in self.cards:
if highCard is None:
highCard = card
elif highCard.value < card.value:
highCard=card

return highCard

def highestCount(self):
count = 0
values = [card.value for card in self.cards]
for value in values:
if values.count(value) > count:
count = values.count(value)

return count

def pairs(self):
pairs = []
values = [card.value for card in self.cards]
for value in values:
if values.count(value) == 2 and value not in pairs:
pairs.append(value)

return pairs

def fourKind(self):
values = [card.value for card in self.cards]
for value in values:
if values.count(value) == 4:
return True

def fullHouse(self):
two = False
three = False

values = [card.value for card in self.cards]
if values.count(values) == 2:
two = True
elif values.count(values) == 3:
three = True

if two and three:
return True

return False

def interpreterVideoPoker():
player = Player()

# Intial Amount
points = 100

# Cost per hand
handCost = 5

end = False
while not end:
print( "You have {0} points".format(points) )
print()

points-=5

## Hand Loop
deck = StandardDeck()
deck.shuffle()

# Deal Out
for i in range(5):
player.addCard(deck.deal())

# Make them visible
for card in player.cards:
card.showing = True
print(player.cards)

validInput = False
while not validInput:
print("Which cards do you want to discard? ( ie. 1, 2, 3 )")
print("*Just hit return to hold all, type exit to quit")
inputStr = input()

if inputStr == "exit":
end=True
break

try:
inputList = [int(inp.strip()) for inp in inputStr.split(",") if inp]

for inp in inputList:
if inp > 6:
continue
if inp < 1:
continue

for inp in inputList:
player.cards[inp-1] = deck.deal()
player.cards[inp-1].showing = True

validInput = True
except:
print("Input Error: use commas to separated the cards you want to hold")

print(player.cards)
#Score
score = PokerScorer(player.cards)
straight = score.straight()
flush = score.flush()
highestCount = score.highestCount()
pairs = score.pairs()

# Royal flush
if straight and flush and straight == 14:
print("Royal Flush!!!")
print("+2000")
points += 2000

# Straight flush
elif straight and flush:
print("Straight Flush!")
print("+250")
points += 250

# 4 of a kind
elif score.fourKind():
print("Four of a kind!")
print("+125")
points += 125

# Full House
elif score.fullHouse():
print("Full House!")
print("+40")
points += 40

# Flush
elif flush:
print("Flush!")
print("+25")
points += 25

# Straight
elif straight:
print("Straight!")
print("+20")
points += 20

# 3 of a kind
elif highestCount == 3:
print("Three of a Kind!")
print("+15")
points += 15

# 2 pair
elif len(pairs) == 2:
print("Two Pairs!")
print("+10")
points += 10

# Jacks or better
elif pairs and pairs[0] > 10:
print ("Jacks or Better!")
print("+5")
points += 5

player.cards=[]

print()
print()
print()

 

 



Изменено пользователем yellyex

moonfangtopich написал 29.08.2019 в 14:57:
У вас недостаточно широкий кругозор, пацаны

Я странствия этого еблана видел в покерных топанах, а потом в таверне - это один из самых безумных людей на форуме. Я искренне надеялся, что его зов о помощи останется незамеченным, но нет, нашелся доброволец и вот уже три страницы мы пожинаем плоды

Поделиться сообщением


Ссылка на сообщение

 

бля, ну чел, ты прочитай свой вопрос и посмотри, что ты выводишь в принте, боюсь нихуя не изменилось.

щас бы слушать подкасты, а не читать текст в 100 раз быстрее, и говорить об эффективности

научимся читать книги во время пробежек\тренажерки - так и будем делать

наверное на конфы тоже бессмысленно ходить

конфы нужны чтобы заводить знакомства. Во время пробежки нужно бегать, а не слушать. У тебя огромное количество энергии уходит на восприятие информации и ты не сосредоточен на беге, короче хуета.

 

спасиба братан, читал твое сообщение, аж одышка появилась так устал.

бтв, если конфы нужны только для заведения новых знакомств, то зачем там доклады?

Поделиться сообщением


Ссылка на сообщение

чтобы зрители могли задать свои ответы


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение

 

Наконец-то нашёл, но не понимаю, как он работает. Киплю, как чайник!!!

 

 

import random

class Card( object ):
def __init__(self, name, value, suit, symbol):
self.value = value
self.suit = suit
self.name = name
self.symbol = symbol
self.showing = False

def __repr__(self):
if self.showing:
return self.symbol
else:
return "Card"

class Deck(object):
def shuffle(self, times=1 ):
random.shuffle(self.cards)
print("Deck Shuffled")

def deal(self):
return self.cards.pop(0)

class StandardDeck(Deck):
def __init__(self):
self.cards = []
suits = {"Hearts":"♡", "Spades":"♠", "Diamonds":"♢", "Clubs":"♣"}
values = {"Two":2,
"Three":3,
"Four":4,
"Five":5,
"Six":6,
"Seven":7,
"Eight":8,
"Nine":9,
"Ten":10,
"Jack":11,
"Queen":12,
"King":13,
"Ace":14 }

for name in values:
for suit in suits:
symbolIcon = suits[suit]
if values[name] < 11:
symbol = str(values[name])+symbolIcon
else:
symbol = name[0]+symbolIcon
self.cards.append( Card(name, values[name], suit, symbol) )

def __repr__(self):
return "Standard deck of cards:{0} remaining".format(len(self.cards))

class Player(object):
def __init__(self):
self.cards = []

def cardCount(self):
return len(self.cards)

def addCard(self, card):
self.cards.append(card)


class PokerScorer(object):
def __init__(self, cards):
# Number of cards
if not len(cards) == 5:
return "Error: Wrong number of cards"

self.cards = cards

def flush(self):
suits = [card.suit for card in self.cards]
if len( set(suits) ) == 1:
return True
return False

def straight(self):
values = [card.value for card in self.cards]
values.sort()

if not len( set(values)) == 5:
return False

if values[4] == 14 and values[0] == 2 and values[1] == 3 and values[2] == 4 and values[3] == 5:
return 5

else:
if not values[0] + 1 == values[1]: return False
if not values[1] + 1 == values[2]: return False
if not values[2] + 1 == values[3]: return False
if not values[3] + 1 == values[4]: return False

return values[4]

def highCard(self):
values = [card.value for card in self.cards]
highCard = None
for card in self.cards:
if highCard is None:
highCard = card
elif highCard.value < card.value:
highCard=card

return highCard

def highestCount(self):
count = 0
values = [card.value for card in self.cards]
for value in values:
if values.count(value) > count:
count = values.count(value)

return count

def pairs(self):
pairs = []
values = [card.value for card in self.cards]
for value in values:
if values.count(value) == 2 and value not in pairs:
pairs.append(value)

return pairs

def fourKind(self):
values = [card.value for card in self.cards]
for value in values:
if values.count(value) == 4:
return True

def fullHouse(self):
two = False
three = False

values = [card.value for card in self.cards]
if values.count(values) == 2:
two = True
elif values.count(values) == 3:
three = True

if two and three:
return True

return False

def interpreterVideoPoker():
player = Player()

# Intial Amount
points = 100

# Cost per hand
handCost = 5

end = False
while not end:
print( "You have {0} points".format(points) )
print()

points-=5

## Hand Loop
deck = StandardDeck()
deck.shuffle()

# Deal Out
for i in range(5):
player.addCard(deck.deal())

# Make them visible
for card in player.cards:
card.showing = True
print(player.cards)

validInput = False
while not validInput:
print("Which cards do you want to discard? ( ie. 1, 2, 3 )")
print("*Just hit return to hold all, type exit to quit")
inputStr = input()

if inputStr == "exit":
end=True
break

try:
inputList = [int(inp.strip()) for inp in inputStr.split(",") if inp]

for inp in inputList:
if inp > 6:
continue
if inp < 1:
continue

for inp in inputList:
player.cards[inp-1] = deck.deal()
player.cards[inp-1].showing = True

validInput = True
except:
print("Input Error: use commas to separated the cards you want to hold")

print(player.cards)
#Score
score = PokerScorer(player.cards)
straight = score.straight()
flush = score.flush()
highestCount = score.highestCount()
pairs = score.pairs()

# Royal flush
if straight and flush and straight == 14:
print("Royal Flush!!!")
print("+2000")
points += 2000

# Straight flush
elif straight and flush:
print("Straight Flush!")
print("+250")
points += 250

# 4 of a kind
elif score.fourKind():
print("Four of a kind!")
print("+125")
points += 125

# Full House
elif score.fullHouse():
print("Full House!")
print("+40")
points += 40

# Flush
elif flush:
print("Flush!")
print("+25")
points += 25

# Straight
elif straight:
print("Straight!")
print("+20")
points += 20

# 3 of a kind
elif highestCount == 3:
print("Three of a Kind!")
print("+15")
points += 15

# 2 pair
elif len(pairs) == 2:
print("Two Pairs!")
print("+10")
points += 10

# Jacks or better
elif pairs and pairs[0] > 10:
print ("Jacks or Better!")
print("+5")
points += 5

player.cards=[]

print()
print()
print()


жестко конечно

Saying that Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders.
 

Поделиться сообщением


Ссылка на сообщение

Уже и на хабр свою вселенную изливает.  :lol:

20191126-e3iz-36kb.jpg


 

DB

59221730.png


Я - гений, ёпта

bfe7003be27e8e81ce6a7d2d8192e9ae.jpg


22


msg-93176-0-72842500-1438846470_thumb.jpg

Поделиться сообщением


Ссылка на сообщение

Уже и на хабр свою вселенную изливает.  :lol:

ну сори

на днях минусмораль словил, вот и написал тот пост, такто да такое лучше не писать

 

минусмораль связана с одним челиком(он и на пд сидит скорее всего, поэтому не хотел писать, да и ничего не даст)

но так как проект публичный и наши отношения с ним закончились кратко напишу

 

 

написал чел, попросил сделать порт одной либы на вулкан, спросил сколько стоит будет, я сказал сколько он готов дать столько и будет

ну дальше немного поговорили он еще предложил подать мне заявку на работу в их конторе, потому что у них "10 мест для вулкан разработчиков и у него студент-стажор за 60к работает"

я написал что только рад буду, так как все предложения до этого заканчивались обманом

 

на днях сделал этот порт думал что уйдет неделя/две, но оказалось что хватило копипасты кучи шаблоннных функций из туториалов

(если че до этого ни 1 рабочего порта этой либы на гитхабе не было)

кароче оказалось быстро, написал челу сказал что все просто, моих там строк 20-40 остальное копипаста

ну и говорю "хз плати сколько хочешь за такое"

ну он-"все работает спасибо"

ну и все

если он думает что я хочу с ним работать в будущем-нет конечно, тоже касается и его конторы(которая даже ответа не прислала, когда у них 10 мест для разрабов ага верю)

 

...очередной обман вышел, минус мораль небольшая

 

 

Поделиться сообщением


Ссылка на сообщение

ты просто лох пишешь "можешь мне не платить" а потом расстраиваешься что тебе не заплатили

подумай на счет предоплаты и всегда бери хорошие деньги за свою работу, ты же явно в своей теме скиловей джуна-макаки

Поделиться сообщением


Ссылка на сообщение

все, буду хириным менеджером

теперь все пидорасы которые хотят нажить на его гении сначала пишут мне! а уж потом я наживаю на его гении

Kant и hira88 понравилось это

живое величие

Поделиться сообщением


Ссылка на сообщение

хира просто честный человек в сломаном мире

данил, все будет хорошо, не переживай

hira88 понравилось это

VyMEtE8XtOI.jpg

  лучшая цитата финта+жизненная

XbkBCDXetHY.jpg

Поделиться сообщением


Ссылка на сообщение

ты просто лох пишешь "можешь мне не платить" а потом расстраиваешься что тебе не заплатили

подумай на счет предоплаты и всегда бери хорошие деньги за свою работу, ты же явно в своей теме скиловей джуна-макаки

не хочу спорить

 

перестал брать предоплаты после того как все мои счета(включая банк) заблокировали, я создал новый после первого раза и еще раз попал в такуюже историю

потому что моя работа не соответствовала ожиданиям(много лет назад), в другом случае я отказался доделывать то что и так затянулось на пол года хотя изначальное ТЗ было на неделю, и никакого увеличения стоимости работ не было

 

блокировать неугодных через в этих системах слишком просто, и я никак не могу защищаться от этого, смысл брать предоплаты

 

 

Поделиться сообщением


Ссылка на сообщение
(изменено)

Хира, подскажи, как обычный челик может заблочить "все твои счета(включая банк)" ?


Изменено пользователем fessnik

Поделиться сообщением


Ссылка на сообщение
(изменено)

Хира, подскажи, как обычный челик может заблочить "все твои счета(включая банк)" ?

забей кароче, давно было неважно уже
Изменено пользователем hira88

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...