Skip to content

Commit 6eaf9c1

Browse files
committed
Added Quadrantic functions mode
Added Quadratic Functions mode. Some improvements.
1 parent f12acd2 commit 6eaf9c1

8 files changed

+100
-30
lines changed

Bhaskara.py

+11-13
Original file line numberDiff line numberDiff line change
@@ -34,27 +34,25 @@ def BskrMode1(GameMenu,BskrMenu,a,b,c): # Modo simples
3434
return BskrMenu(GameMenu)
3535
else:
3636
return BskrMode1(BskrMenu,GameMenu,a,b,c)
37+
if float(r) == rs:
38+
print("Certo")
3739
else:
38-
if float(r) == rs:
39-
print("Certo")
40-
else:
41-
print("O certo seria "+str(rs))
40+
print("O certo seria "+str(rs))
4241

4342
def BskrMode2(GameMenu,BskrMenu,a,b,c): # Modo padrão
4443
rs1,rs2 = utils.SolveBhaskara(a,b,c,shared.FloatPrec) # Calcula x1 e x2
4544
print(str(a)+"*x^2 + "+str(b)+"*x + ("+str(c)+")")
4645
r1 = input("x1 = ")
46+
if r1 == 'exit': return BskrMenu(GameMenu)
4747
r2 = input("x2 = ")
48-
if utils.CheckForFloat(r1) == False or utils.CheckForFloat(r2) == False:
49-
if r1 == 'exit' or r2 == 'exit':
50-
return BskrMenu(GameMenu)
51-
else:
52-
return BskarMode2(GameMenu,BskrMenu,a,b,c)
48+
if r2 == 'exit': return BskrMenu(GameMenu)
49+
r = [r1,r2]
50+
if utils.CheckForFloatList(r) == False:
51+
return BskrMode2(GameMenu,BskrMenu,a,b,c)
52+
if (float(r1) == rs1 and float(r2) == rs2) or (float(r1) == rs2 and float(r2) == rs1):
53+
print("Certo")
5354
else:
54-
if (float(r1) == rs1 and float(r2) == rs2) or (float(r1) == rs2 and float(r2) == rs1):
55-
print("Certo")
56-
else:
57-
print("O certo seria "+str(rs1)+" e "+str(rs2))
55+
print("O certo seria : "+str(rs1)+" e "+str(rs2))
5856

5957
def BskrModeLogo(): # Mode-based logo
6058
utils.clear()

FQuad.py

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# -*- encoding: utf-8 -*-
2+
# library for Mandrake | by vp1147
3+
4+
import shared
5+
import prop
6+
from math import sqrt
7+
import utils
8+
9+
def QuadFMenu(GameMenu):
10+
utils.clear()
11+
print("<'exit' para sair>")
12+
print("<Precisão de "+str(shared.FloatPrec)+" decimal(is)>")
13+
while 1:
14+
QuadF(GameMenu)
15+
16+
def QuadF(GameMenu):
17+
a = utils.randint(shared.IntMin,shared.IntMax)
18+
b = utils.randint(shared.IntMin,shared.IntMax)
19+
c = (utils.randint(shared.IntMin,shared.IntMax))*-1 # Para evitar delta (-)
20+
x1rs, x2rs, xvrs, yvrs = utils.SolveFQuad(a,b,c,shared.FloatPrec) # Calcula
21+
# x1, x2, Xv e Yv.
22+
print(str(a)+"*x^2 + "+str(b)+"*x + ("+str(c)+")")
23+
x1r = input("x1 = ")
24+
if x1r == 'exit': return GameMenu()
25+
x2r = input("x2 = ")
26+
if x1r == 'exit': return GameMenu()
27+
xvr = input("Xv = ")
28+
if x1r == 'exit': return GameMenu()
29+
yvr = input("Yv = ")
30+
if x1r == 'exit': return GameMenu()
31+
iyr = input("Interseção com y = ")
32+
if x1r == 'exit': return GameMenu()
33+
r = [x1r,x2r,xvr,yvr,iyr]
34+
if utils.CheckForFloatList(r) == False:
35+
return QuadF(GameMenu)
36+
if (float(x1r) == x1rs and float(x2r) == x2rs) or (float(x1r) == x2rs and float(x2) == x1rs) and float(xvr) == xvrs and float(yvr) == yvrs and iyr == c:
37+
print("Certo") # Difícil acontecer :)
38+
else:
39+
print("O certo seria "+str(x1rs)+", "+str(x2rs)+", "+str(xvrs)+", "+str(yvrs)+", "+str(c))

__pycache__/Bhaskara.cpython-37.pyc

18 Bytes
Binary file not shown.

__pycache__/FQuad.cpython-37.pyc

1.31 KB
Binary file not shown.

__pycache__/utils.cpython-37.pyc

696 Bytes
Binary file not shown.

info.txt

+27-17
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,28 @@
11
Jogo criado por VP1147 (Vinícius Pavão) em Python3 e Json.
2-
..
3-
.. ..
4-
..
5-
..
6-
..
7-
..
8-
..
9-
## .. ####
10-
##.............## ##
11-
##.............## ##
12-
##.............## ##
13-
##.............###
14-
##...........##
15-
#############
16-
#############
17-
#################
18-
|| OPEN SOURCE ||
2+
3+
.. .88888888:.
4+
.. .. 88888888.88888.
5+
.. .8888888888888888.
6+
.. 888888888888888888
7+
.. 88' _`88'_ `88888
8+
.. 88 88 88 88 88888
9+
.. 88_88_::_88_:88888
10+
## .. #### 88:::,::,:::::8888
11+
##.............## ## 88`:::::::::'`8888
12+
##.............## ## .88 `::::' 8:88.
13+
##.............## ## 8888 `8:888.
14+
##.............### .8888' `888888.
15+
##...........## .8888:.. .::. ...:'8888888:.
16+
############# .8888.' :' `'::`88:88888
17+
############# .8888 ' `.888:8888.
18+
################# 888:8 . 888:88888
19+
|| OPEN SOURCE || .888:88 .: 888:88888:
20+
8888888. :: 88:888888
21+
`.::.888. :: .88888888
22+
.::::::.888. :: :::`8888'.:.
23+
::::::::::.888 ' .::::::::::::
24+
::::::::::::.8 ' .:8::::::::::::.
25+
.::::::::::::::. .:888:::::::::::::
26+
:::::::::::::::88:.__..:88888:::::::::::'
27+
`'.:::::::::::88888888888.88:::::::::'
28+
miK `':::_:' -- '' -'-' `':_::::'`

mandrake.py

+4
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import shared
1010
import JsonFunctions
1111
import Bhaskara
12+
import FQuad
1213

1314
def InitMenu():
1415
utils.LogoType()
@@ -77,6 +78,7 @@ def GameMenu():
7778
print("1 - Aritmética")
7879
print("2 - Equação quadrática")
7980
print("3 - Teorema de Pitágoras")
81+
print("4 - Função Quadrática")
8082
print("x - Voltar")
8183
GameMenuOpt = utils.getch()
8284
if GameMenuOpt == '1':
@@ -86,6 +88,8 @@ def GameMenu():
8688
Pit.PtgsMenu(GameMenu)
8789
elif GameMenuOpt == '2':
8890
Bhaskara.BskrMenu(GameMenu)
91+
elif GameMenuOpt == '4':
92+
FQuad.QuadFMenu(GameMenu)
8993
elif GameMenuOpt == 'x':
9094
return InitMenu()
9195
else:

utils.py

+19
Original file line numberDiff line numberDiff line change
@@ -72,3 +72,22 @@ def SolveBhaskara(a,b,c,FloatPrec): # Recebe a, b e c. Retorna as raízes.
7272
x1 = round(float(((b*-1)+sqrt((b**2)-4*a*c))/(2*a)),FloatPrec)
7373
x2 = round(float(((b*-1)-sqrt((b**2)-4*a*c))/(2*a)),FloatPrec)
7474
return x1,x2 # return tuple
75+
76+
def SolveFQuad(a,b,c,FloatPrec): # Recebe a, b e c. Retorna as raízes, coordenadas
77+
# do vértice e interseção com y.
78+
x1 = round(float(((b*-1)+sqrt((b**2)-4*a*c))/(2*a)),FloatPrec)
79+
x2 = round(float(((b*-1)-sqrt((b**2)-4*a*c))/(2*a)),FloatPrec)
80+
xv = round(float((b*-1)/(2*a)),FloatPrec)
81+
yv = round(float((SolveDelta(a,b,c)*-1)/(4*a)),FloatPrec)
82+
return x1,x2,xv,yv
83+
# interseção com y = c
84+
85+
def CheckForFloatList(List): # Verifica se valor em uma lista é float.
86+
for i in range(len(List)):
87+
if CheckForFloat(List[i]) == False:
88+
return False
89+
90+
def CheckForOneStringList(List,String): # Verifica se há string específica em uma lista.
91+
for i in range(len(List)): # Leitura: True --> Há tal string. False --> Ñ há
92+
if List[i] == String:
93+
return True

0 commit comments

Comments
 (0)