summaryrefslogtreecommitdiff
path: root/comp
diff options
context:
space:
mode:
authorthing1 <thing1@seacrossedlovers.xyz>2025-03-18 13:08:53 +0000
committerthing1 <thing1@seacrossedlovers.xyz>2025-03-18 13:08:53 +0000
commit01aa8af42ec80111aca755828d9bccf98a150b09 (patch)
tree6ebbc5b29d478f95ecfbab48aaba34aeb85c7a9c /comp
parentc96552d3a3e104b2555b43211a696d4ac9f0e7c2 (diff)
wow!
Diffstat (limited to 'comp')
-rw-r--r--comp/skeleton/__pycache__/code.cpython-313.pycbin0 -> 9836 bytes
-rw-r--r--comp/skeleton/skel.py (renamed from comp/skeleton/code.py)21
-rw-r--r--comp/work/48/starter3
3 files changed, 18 insertions, 6 deletions
diff --git a/comp/skeleton/__pycache__/code.cpython-313.pyc b/comp/skeleton/__pycache__/code.cpython-313.pyc
new file mode 100644
index 0000000..9adf17d
--- /dev/null
+++ b/comp/skeleton/__pycache__/code.cpython-313.pyc
Binary files differ
diff --git a/comp/skeleton/code.py b/comp/skeleton/skel.py
index 495913f..75c4ef9 100644
--- a/comp/skeleton/code.py
+++ b/comp/skeleton/skel.py
@@ -34,7 +34,7 @@ def PlayGame(Targets, NumbersAllowed, TrainingGame, MaxTarget, MaxNumber):
GameOver = False
while not GameOver:
DisplayState(Targets, NumbersAllowed, Score)
- UserInput = input("Enter an expression: ")
+ UserInput = input("Enter an expression: ").replace(' ', '')
print()
if CheckIfUserInputValid(UserInput):
UserInputInRPN = ConvertToRPN(UserInput)
@@ -43,7 +43,11 @@ def PlayGame(Targets, NumbersAllowed, TrainingGame, MaxTarget, MaxNumber):
if IsTarget:
NumbersAllowed = RemoveNumbersUsed(UserInput, MaxNumber, NumbersAllowed)
NumbersAllowed = FillNumbers(NumbersAllowed, TrainingGame, MaxNumber)
+ else:
+ print("user input invalid!")
Score -= 1
+ if Score < 0:
+ GameOver = True
if Targets[0] != -1:
GameOver = True
else:
@@ -55,9 +59,9 @@ def CheckIfUserInputEvaluationIsATarget(Targets, UserInputInRPN, Score):
UserInputEvaluation = EvaluateRPN(UserInputInRPN)
UserInputEvaluationIsATarget = False
if UserInputEvaluation != -1:
+ Score += 2
for Count in range(0, len(Targets)):
if Targets[Count] == UserInputEvaluation:
- Score += 2
Targets[Count] = -1
UserInputEvaluationIsATarget = True
return UserInputEvaluationIsATarget, Score
@@ -90,6 +94,9 @@ def CheckNumbersUsedAreAllInNumbersAllowed(NumbersAllowed, UserInputInRPN, MaxNu
Temp.remove(int(Item))
else:
return False
+ else:
+ if Item.isdigit() == True:
+ return False
return True
def CheckValidNumber(Item, MaxNumber):
@@ -129,7 +136,7 @@ def DisplayTargets(Targets):
def ConvertToRPN(UserInput):
Position = 0
- Precedence = {"+": 2, "-": 2, "*": 4, "/": 4}
+ Precedence = {"+": 2, "-": 2, "*": 4, "/": 4, "^": 6}
Operators = []
Operand, Position = GetNumberFromUserInput(UserInput, Position)
UserInputInRPN = []
@@ -156,7 +163,7 @@ def ConvertToRPN(UserInput):
def EvaluateRPN(UserInputInRPN):
S = []
while len(UserInputInRPN) > 0:
- while UserInputInRPN[0] not in ["+", "-", "*", "/"]:
+ while UserInputInRPN[0] not in ["+", "-", "*", "/", "^"]:
S.append(UserInputInRPN[0])
UserInputInRPN.pop(0)
Num2 = float(S[-1])
@@ -172,6 +179,8 @@ def EvaluateRPN(UserInputInRPN):
Result = Num1 * Num2
elif UserInputInRPN[0] == "/":
Result = Num1 / Num2
+ elif UserInputInRPN[0] == "^":
+ Result = Num1 ** Num2
UserInputInRPN.pop(0)
S.append(str(Result))
if float(S[0]) - math.floor(float(S[0])) == 0.0:
@@ -182,7 +191,7 @@ def EvaluateRPN(UserInputInRPN):
def GetNumberFromUserInput(UserInput, Position):
Number = ""
MoreDigits = True
- while MoreDigits:
+ while MoreDigits:
if not(re.search("[0-9]", str(UserInput[Position])) is None):
Number += UserInput[Position]
else:
@@ -196,7 +205,7 @@ def GetNumberFromUserInput(UserInput, Position):
return int(Number), Position
def CheckIfUserInputValid(UserInput):
- if re.search("^([0-9]+[\\+\\-\\*\\/])+[0-9]+$", UserInput) is not None:
+ if re.search("^([0-9]+[\\+\\-\\*\\/\\^])+[0-9]+$", UserInput) is not None:
return True
else:
return False
diff --git a/comp/work/48/starter b/comp/work/48/starter
new file mode 100644
index 0000000..5e9d4d8
--- /dev/null
+++ b/comp/work/48/starter
@@ -0,0 +1,3 @@
+192.168.0.1
+192.168.0.42
+192.168.2.3