Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix #3 #116

Merged
merged 1 commit into from
Jun 25, 2022
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Fix #3
- blackjack plugin lint
paulosgf committed Jun 25, 2022
commit 06d65d4d5c8e72a82efbdb188ba7aa6806ce8857
1 change: 0 additions & 1 deletion src/honeybot/plugins/downloaded/blackjack/info.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

NAME = 'blackjack.py'
ORIGINAL_AUTHORS = [
'Angelo Giacco'
53 changes: 24 additions & 29 deletions src/honeybot/plugins/downloaded/blackjack/main.py
Original file line number Diff line number Diff line change
@@ -23,17 +23,14 @@
move on to next player
"""

import random, sys, os

sys.path.append("plugins/poker_assets")
import deck
import card
import hand
import player
import poker_assets.deck
import poker_assets.card
import poker_assets.hand
import poker_assets.player


class Plugin:

bj_created = False
round_started = False
turn = 0
@@ -80,10 +77,10 @@ def initPlayer(methods, info):
name = info["prefix"].split("!")[0]
if len(Plugin.player_lst) <= 5: # limit game to 6 players
if not (
name in [player.get_name() for player in Plugin.player_lst]
name in [player.get_name() for player in Plugin.player_lst]
):
Plugin.player_lst.append(
player.Player(
poker_assets.player.Player(
len(Plugin.player_lst), Plugin.starting_chips, name
)
)
@@ -108,17 +105,14 @@ def checkHand(methods, info, player):
name = player.get_name()
total = player.show_player_hand().hand_total()
cards = " ".join(
[card.show_card() for card in player.show_player_hand().show_hand_obj()]
[poker_assets.card.show_card() for card in
player.show_player_hand().show_hand_obj()]
)
if total > 21:
methods["send"](
info["address"],
name
+ "'s hand "
+ cards
+ " has a value of "
+ str(total)
+ " so you have been kicked out",
name + "'s hand " + cards + " has a value of " + str(total) +
" so you have been kicked out",
)
for p in Plugin.player_lst:
if p.get_name() == name:
@@ -155,11 +149,11 @@ def initGame(methods, info):
Plugin.bj_created = True
Plugin.round_started = False
Plugin.initPlayer(methods, info)
Plugin.DECK = deck.Deck()
Plugin.DECK = poker_assets.deck.Deck()
methods["send"](
info["address"],
name
+ " has started a game of blackjack! Use .blackjack join to join in!",
name + " has started a game of blackjack! "
"Use .blackjack join to join in!",
)
else:
methods["send"](info["address"], "A game already exists!")
@@ -170,18 +164,19 @@ def start(methods, info):
Plugin.round_started = True
Plugin.bj_created = True
for player in Plugin.player_lst:
player.add_hand(hand.Hand(Plugin.DECK.make_hand()))
player.add_hand(poker_assets.hand.Hand(Plugin.DECK.make_hand()))
total = player.show_player_hand().hand_total()
cards = " ".join(
[card.show_card() for card in player.show_player_hand().show_hand_obj()]
[poker_assets.card.show_card() for card
in player.show_player_hand().show_hand_obj()]
)
Plugin.checkHand(methods, info, player)

def hit(methods, info):
""" give player a new card """

name = info["prefix"].split("!")[0]
if Plugin.winner == None:
if Plugin.winner is None:
if Plugin.player_lst[Plugin.turn].get_name() == name:
Plugin.player_lst[Plugin.turn].add_card_to_hand(
Plugin.DECK.draw_random_card()
@@ -198,13 +193,13 @@ def hit(methods, info):
def stand(methods, info):
""" player chooses not to get a new car """
name = info["prefix"].split("!")[0]
if Plugin.winner == None:
if Plugin.winner is None:
if Plugin.turn < len(Plugin.player_lst):
if Plugin.player_lst[Plugin.turn].get_name() == name:
methods["send"](
info["address"],
info["prefix"].split("!")[0]
+ " has chosen not to pick another card!",
info["prefix"].split("!")[0] +
" has chosen not to pick another card!",
)
Plugin.next_turn(methods, info)
else:
@@ -223,13 +218,13 @@ def stand(methods, info):
RUNNING PLUGIN
"""

def run(self, incoming, methods, info, bot_info):
def run(self, methods, info):
try:
msgs = info["args"][1:][0].split()
if (
info["command"] == "PRIVMSG"
and (msgs[0] == ".bj" or msgs[0] == ".21" or msgs[0] == ".blackjack")
and len(msgs) == 2
info["command"] == "PRIVMSG" and
(msgs[0] == ".bj" or msgs[0] == ".21" or msgs[0] == ".blackjack") and
len(msgs) == 2
):
if msgs[1] == "create":
Plugin.initGame(methods, info)
15 changes: 10 additions & 5 deletions src/honeybot/plugins/downloaded/blackjack/poker_assets/best5.py
Original file line number Diff line number Diff line change
@@ -74,8 +74,10 @@ def straight(ranks):


def kind(n, ranks):
""" return the first rank that this hand has exactly n-of-a-kind of. Return None if there is no
n-of-a-kind in the hand """
"""
return the first rank that this hand has exactly n-of-a-kind of.
Return None if there is no n-of-a-kind in the hand
"""

for r in ranks:

@@ -102,9 +104,12 @@ def test_best_hand(playerhand):
# D = Diamond
# C = Club
# H = Heart
# assert (sorted(best_hand('6C 7C 8C 9C TC 5C JS'.split())) == ['6C', '7C', '8C', '9C', 'TC'])
# assert (sorted(best_hand('TD TC TH 7C 7D 8C 8S'.split())) == ['8C', '8S', 'TC', 'TD', 'TH'])
# assert (sorted(best_hand('JD TC TH 7C 7D 7S 7H'.split())) == ['7C', '7D', '7H', '7S', 'JD'])
# assert (sorted(best_hand('6C 7C 8C 9C TC 5C JS'.split())) ==
# ['6C', '7C', '8C', '9C', 'TC'])
# assert (sorted(best_hand('TD TC TH 7C 7D 8C 8S'.split())) ==
# ['8C', '8S', 'TC', 'TD', 'TH'])
# assert (sorted(best_hand('JD TC TH 7C 7D 7S 7H'.split())) ==
# ['7C', '7D', '7H', '7S', 'JD'])
# return 'test_best_hand passes'
# return sorted(best_hand('2D 2C 2H 7C 7D KC KS'.split()))
return sorted(best_hand(playerhand.split()))
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
""" board class """

# pylint: disable=E1601


class Board(object):
""" board class """

Original file line number Diff line number Diff line change
@@ -13,7 +13,10 @@ def __init__(self, card):
1,
2,
3,
] # 0 is for a low: 2 3 4, 1 for a medium 4 5 6 7, 2 for a high 8 9 10, 3 for a suit J Q K A
] # 0 is for a low: 2 3 4,
# 1 for a medium 4 5 6 7,
# 2 for a high 8 9 10,
# 3 for a suit J Q K A

self.__figure = card[0]
self.__color = card[1].upper()
27 changes: 13 additions & 14 deletions src/honeybot/plugins/downloaded/blackjack/poker_assets/game_init.py
Original file line number Diff line number Diff line change
@@ -2,7 +2,6 @@

# pylint: disable=E1601, W0612

import card
import deck
import board
import hand
@@ -41,9 +40,9 @@ def init_game(players, round):
players = init_players(6, 100)
game = init_game(players, 9)

deck = game[0]
board = game[1]
pot = game[2]
# deck = game[0]
# board = game[1]
# pot = game[2]
players = game[3]
for card in board.get_board():

@@ -53,19 +52,19 @@ def init_game(players, round):

players[0].show_player_hand().best_five(board)

for player in players:
for play in players:

print(player.general_name())
print(play.general_name())

print(
player.general_name(),
player.show_player_hand().show_hand()[0].show_card(),
player.show_player_hand().show_hand()[1].show_card(),
player.chips(),
player.position_nr(),
player.position_name(),
player.show_player_hand().hand_strength(board),
str(player.show_player_hand().best_five(board)),
play.general_name(),
play.show_player_hand().show_hand()[0].show_card(),
play.show_player_hand().show_hand()[1].show_card(),
play.chips(),
play.position_nr(),
play.position_name(),
play.show_player_hand().hand_strength(board),
str(play.show_player_hand().best_five(board)),
)

print(len(deck.show_deck()))
22 changes: 14 additions & 8 deletions src/honeybot/plugins/downloaded/blackjack/poker_assets/hand.py
Original file line number Diff line number Diff line change
@@ -7,7 +7,7 @@
# import deuces
# import best5
# import board
import card
# import card


class Hand(object):
@@ -41,8 +41,9 @@ def best_five(self, b):
print(b.turn())
print(b.river())
print(" ".join([c.show_card() for c in self.show_hand()]))
hand_and_board = self.show_hand()[0].show_card() + ' ' + self.show_hand()[1].show_card() +\
' ' + b.flop1() + ' ' + b.flop2() + ' ' + b.flop3() + ' ' + b.turn() + ' ' + b.river()
hand_and_board = self.show_hand()[0].show_card() + ' ' +\
self.show_hand()[1].show_card() + ' ' + b.flop1() + ' ' +\
b.flop2() + ' ' + b.flop3() + ' ' + b.turn() + ' ' + b.river()

return(" ".join([c for c in best5.test_best_hand(hand_and_board)]))
except Exception:
@@ -53,11 +54,16 @@ def hand_strength(self, board):

evaluator = deuces.Evaluator()
b5 = self.best_five(board)
h1 = b5[:2].replace('S', 's').replace('H', 'h').replace('D', 'd').replace('C', 'c')
h2 = b5[3:5].replace('S', 's').replace('H', 'h').replace('D', 'd').replace('C', 'c')
b1 = b5[6:8].replace('S', 's').replace('H', 'h').replace('D', 'd').replace('C', 'c')
b2 = b5[9:11].replace('S', 's').replace('H', 'h').replace('D', 'd').replace('C', 'c')
b3 = b5[12:14].replace('S', 's').replace('H', 'h').replace('D', 'd').replace('C', 'c')
h1 = b5[:2].replace('S', 's').replace('H', 'h').replace('D', 'd')\
.replace('C', 'c')
h2 = b5[3:5].replace('S', 's').replace('H', 'h').replace('D', 'd')\
.replace('C', 'c')
b1 = b5[6:8].replace('S', 's').replace('H', 'h').replace('D', 'd')\
.replace('C', 'c')
b2 = b5[9:11].replace('S', 's').replace('H', 'h').replace('D', 'd')\
.replace('C', 'c')
b3 = b5[12:14].replace('S', 's').replace('H', 'h').replace('D', 'd')\
.replace('C', 'c')
hl = [deuces.Card.new(h1), deuces.Card.new(h2)]
bl = [deuces.Card.new(b1), deuces.Card.new(b2), deuces.Card.new(b3)]
strength = evaluator.evaluate(bl, hl)
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
""" player class """
# pylint: disable=E1601

import game_init


class Player(object):
""" player class """

17 changes: 9 additions & 8 deletions src/honeybot/plugins/downloaded/blackjack/poker_assets/test.py
Original file line number Diff line number Diff line change
@@ -5,6 +5,7 @@
import hand
import player
import pot
import game_init

# import game_init

@@ -109,15 +110,15 @@

print(len(game_init.game[0]) + len(game_init.game[1]) + len(game_init.game[3]) * 2)

for player in game_init.game[3]:
for play in game_init.game[3]:
print(
player.general_name(),
player.show_player_hand().show_hand(),
player.chips(),
player.position_nr(),
player.position_name(),
player.show_player_hand().hand_strength(board),
player.show_player_hand().best_five(board),
play.general_name(),
play.show_player_hand().show_hand(),
play.chips(),
play.position_nr(),
play.position_name(),
play.show_player_hand().hand_strength(board),
play.show_player_hand().best_five(board),
)

game_init.game[0].show_deck()