Calculator - Equals is broken

This commit is contained in:
2023-06-12 20:30:53 +10:00
parent b2dad99f6c
commit 762841fb20
2 changed files with 136 additions and 154 deletions

View File

@@ -1,5 +1,64 @@
import discord
addition = lambda x, y: x + y
subtraction = lambda x, y: x - y
multiplication = lambda x, y: x * y
division = lambda x, y: x / y
exponent = lambda x, y: x ** y
funckyDict = {
addition: "+",
subtraction: "-",
multiplication: "*",
division: "/",
exponent: "^"
}
async def number(self, interaction: discord.Interaction, number):
if self.output is not None:
self.inputOne = 0
self.output = None
self.inputOne = self.inputOne * 10 + number
self.numDigs = self.numDigs + 1
await interaction.response.edit_message(
content=self.display(),
view=self)
async def operator(self, interaction: discord.Interaction, operation):
self.output = None
self.inputTwo = self.inputOne
self.inputOne = 0
self.expression = operation
await interaction.response.edit_message(
content=self.display(),
view=self)
class NumberButton(discord.ui.Button):
def __init__(self, number: int, row) -> None:
super().__init__()
self.number = number
self.row = row
self.style = discord.ButtonStyle.blurple
self.label = str(number)
async def callback(self, interaction: discord.Interaction):
await number(self.view, interaction, self.number)
class OperatorButton(discord.ui.Button):
def __init__(self, function, row) -> None:
super().__init__()
self.function = function
self.row = row
self.style = discord.ButtonStyle.red
self.label = funckyDict[function]
async def callback(self, interaction: discord.Interaction):
await operator(self.view, interaction, self.function)
class Calculator(discord.ui.View):
def __init__(self, *, timeout=180):
super().__init__(timeout=timeout)
@@ -11,20 +70,35 @@ class Calculator(discord.ui.View):
self.expression = None
self.output = None
self.digit = 1
self.addition = lambda x, y: x + y
self.subtraction = lambda x, y: x - y
self.multiplication = lambda x, y: x * y
self.division = lambda x, y: x / y
self.exponent = lambda x, y: x ** y
self.funckyDict = {
self.addition: "+",
self.subtraction: "-",
self.multiplication: "*",
self.division: "/",
self.exponent: "^"
}
self.clearRequirement = 0
numRows = 4
numColumns = 4
buttonFunctions = [
[1, 2, 3, addition],
[4, 5, 6, multiplication],
[7, 8, 9, subtraction],
[exponent, 0, None, division]
]
for i in range(0, numRows):
for j in range(0, numColumns):
item = buttonFunctions[i][j]
if item is None:
continue
if isinstance(item, int):
button = NumberButton(item, i)
else:
button = OperatorButton(item, i)
self.add_item(button)
def numDigits(self, integer):
numDigits = 0
while(integer):
@@ -47,87 +121,12 @@ class Calculator(discord.ui.View):
displayOutput = " ".join(['`', ' ' * padding, f"{self.inputOne}", "`"])
elif (self.output is None):
padding = self.MAXIMUMBARSIZE - inputOneLength - inputTwoLength - 3
displayOutput = " ".join(['`', ' ' * padding, f"{self.inputTwo}", f"{self.funckyDict[self.expression]}", f"{self.inputOne}", "`"])
displayOutput = " ".join(['`', ' ' * padding, f"{self.inputTwo}", f"{funckyDict[self.expression]}", f"{self.inputOne}", "`"])
else:
padding = self.MAXIMUMBARSIZE - inputOneLength - inputTwoLength - outputLength - 4
displayOutput = " ".join(['`', ' ' * padding, f"{self.inputTwo}", f"{self.funckyDict[self.expression]}", f"{self.inputOne}", "=", f"{self.output}", "`"])
displayOutput = " ".join(['`', ' ' * padding, f"{self.inputTwo}", f"{funckyDict[self.expression]}", f"{self.inputOne}", "=", f"{self.output}", "`"])
return displayOutput
async def number(self, interaction: discord.Interaction, number):
if self.output is not None:
self.inputOne = 0
self.output = None
self.inputOne = self.inputOne * 10 + number
self.numDigs = self.numDigs + 1
await interaction.response.edit_message(
content=self.display(),
view=self)
async def operator(self, interaction: discord.Interaction, operation):
self.output = None
self.inputTwo = self.inputOne
self.inputOne = 0
self.expression = operation
await interaction.response.edit_message(
content=self.display(),
view=self)
@discord.ui.button(label="^", style=discord.ButtonStyle.red, row=4)
async def power(self, interaction: discord.Interaction, button: discord.ui.Button):
await self.operator(interaction, self.exponent)
@discord.ui.button(label="0", style=discord.ButtonStyle.blurple,row=4)
async def zero(self, interaction: discord.Interaction, button: discord.ui.Button):
await self.number(interaction, 0)
@discord.ui.button(label="1", style=discord.ButtonStyle.blurple, row=1)
async def one(self, interaction: discord.Interaction, button: discord.ui.Button):
await self.number(interaction, 1)
@discord.ui.button(label="2", style=discord.ButtonStyle.blurple, row=1)
async def two(self, interaction: discord.Interaction, button: discord.ui.Button):
await self.number(interaction, 2)
@discord.ui.button(label="3", style=discord.ButtonStyle.blurple, row=1)
async def three(self, interaction: discord.Interaction, button: discord.ui.Button):
await self.number(interaction, 3)
@discord.ui.button(label="4", style=discord.ButtonStyle.blurple, row=2)
async def four(self, interaction: discord.Interaction, button: discord.ui.Button):
await self.number(interaction, 4)
@discord.ui.button(label="5", style=discord.ButtonStyle.blurple, row=2)
async def five(self, interaction: discord.Interaction, button: discord.ui.Button):
await self.number(interaction, 5)
@discord.ui.button(label="6", style=discord.ButtonStyle.blurple, row=2)
async def six(self, interaction: discord.Interaction, button: discord.ui.Button):
await self.number(interaction, 6)
@discord.ui.button(label="7", style=discord.ButtonStyle.blurple, row=3)
async def seven(self, interaction: discord.Interaction, button: discord.ui.Button):
await self.number(interaction, 7)
@discord.ui.button(label="8", style=discord.ButtonStyle.blurple, row=3)
async def eight(self, interaction: discord.Interaction, button: discord.ui.Button):
await self.number(interaction, 8)
@discord.ui.button(label="9", style=discord.ButtonStyle.blurple, row=3)
async def nine(self, interaction: discord.Interaction, button: discord.ui.Button):
await self.number(interaction, 9)
@discord.ui.button(label="+", style=discord.ButtonStyle.red, row=1)
async def plus(self, interaction: discord.Interaction, button: discord.ui.Button):
await self.operator(interaction, self.addition)
@discord.ui.button(label="*", style=discord.ButtonStyle.red, row=2)
async def mult(self, interaction: discord.Interaction, button: discord.ui.Button):
await self.operator(interaction, self.multiplication)
@discord.ui.button(label="-", style=discord.ButtonStyle.red, row=3)
async def minus(self, interaction: discord.Interaction, button: discord.ui.Button):
await self.operator(interaction, self.subtraction)
@discord.ui.button(label="=", style=discord.ButtonStyle.green, row=4)
async def equals(self, interaction: discord.Interaction, button: discord.ui.Button):
@@ -137,6 +136,7 @@ class Calculator(discord.ui.View):
view=self)
if self.clearRequirement:
self.clearRequirement = 0
self.clear()
else:
self.clearRequirement += 1
@@ -149,7 +149,3 @@ class Calculator(discord.ui.View):
self.inputOne = self.output
self.inputTwo = None
@discord.ui.button(label="/", style=discord.ButtonStyle.red, row=4)
async def divide(self, interaction: discord.Interaction, button: discord.ui.Button):
await self.operator(interaction, self.division)

View File

@@ -22,6 +22,7 @@ def pick_game():
randomIndex = random.randrange(0, len(games))
coinFlip = random.randrange(0, 2)
print(coinFlip)
if coinFlip:
return f"Valorant ({games[randomIndex]})"
@@ -29,18 +30,3 @@ def pick_game():
return games[randomIndex]
I = 1000000000
i = I
zeros = 0
ones = 0
while i > 0:
number = random.randrange(0, 2)
if number:
ones += 1
else:
zeros += 1
i -= 1
percentZeros = zeros/I
print(percentZeros)