Оператор Python if не регистрируется в циклеPython

Программы на Python
Ответить
Anonymous
 Оператор Python if не регистрируется в цикле

Сообщение Anonymous »

У меня возникли проблемы с этим кодом Python. Я запускаю симуляцию рулетки и не могу обновить свой банкролл. Это происходит в строке банкролл += ((current_bet * 2)+current_bet). Я новичок в Python, позаимствовал большую часть этого и попытался внести некоторые изменения в соответствии со своими потребностями.

Код: Выделить всё

import pandas as pd
import random
import matplotlib.pyplot as plt

# Global variables
b_rolls = []
busts = 0
spins = 0
max_loss = 0
bank = 5000
wagered = 0

# Function to plot data
def plot_array(data):
plt.figure(figsize=(10, 6))
plt.plot(data, marker='o')
plt.title('Data Visualization')
plt.xlabel('Index')
plt.ylabel('Value')
plt.grid(True)
plt.show()

# Simulation function
def roulette_simulation(num_spins):
global busts, b_rolls, spins, max_loss, wagered, max_losses_in_row
numbers_bet_on = [2, 5, 8, 11, 14, 17, 20, 23, 26, 29, 32, 35]
initial_bankroll = bank
initial_bet = 5
bankroll = initial_bankroll

# For tracking purposes
wins_in_row = 0
losses_in_row = 0
max_losses_in_row = 0
fibonacci_sequence = [5, 5, 10, 15, 25, 40, 65, 105, 170, 275, 455]
fib_index = 0
current_bet = 0
bank_cum = []

# List to store spin results
spin_results = []

for spin in range(num_spins):
spins += 1
spin_result = random.randint(0, 36)
win = spin_result in numbers_bet_on  # Check if spin result is in bet list

# Debugging output: Print spin result and win condition
print(f"Spin {spin + 1}: Spin Result = {spin_result}, Numbers Bet On = {numbers_bet_on}, Win = {win}")

# Track loss streak
if not win:
losses_in_row += 1
if losses_in_row > max_losses_in_row:
max_losses_in_row = losses_in_row
else:
losses_in_row = 0
wins_in_row += 1
fib_index = 0  # Reset Fibonacci sequence on win

# Bet only after losing 4 in a row
if losses_in_row >= 4:
current_bet = fibonacci_sequence[fib_index]
wagered += current_bet

if current_bet > bankroll:
busts += 1
break

# Debugging output to see win/loss condition
if win:
print(f"Win on spin {spin + 1}!")
print(f"Bankroll before win: {bankroll}, Bet: {current_bet}")
bankroll += ((current_bet * 2)+current_bet)  # Correct logic for increasing bankroll after a win
print(f"Bankroll after win: {bankroll}")
losses_in_row = 0
current_bet = 0
else:
print(f"Loss on spin {spin + 1}: Spin Result = {spin_result}")
bankroll -= current_bet
fib_index += 1
if fib_index >= len(fibonacci_sequence):
fib_index = len(fibonacci_sequence) - 1

if bankroll 

Подробнее здесь: [url]https://stackoverflow.com/questions/79253225/python-if-statement-not-regiestering-in-loop[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»