calculator8.py

Created by wperez274

Created on March 15, 2023

6.8 KB

Cool calculator. multiply, divide,add, subtract easily with arrow keys.

You welcome.


#simple calculator
from math import *
from kandinsky import *
from ion import *
from random import *
from random import randint as R
from time import *


EXIT=False

mycolor=(79, 93, 247)



M=True
D=False
A=False
S=False



bg=default_c=(9,100,154)

sym=["x","/","+","-"]

func=sym[0]


a=1
b=0

c=a*b

a_x=None
b_x=None


cursor_LEFT=True
cursor_RIGHT=False

cursor_x=16
cursor_y=15

cursor_w=25
cursor_h=22

cursor_c="red"

#line across
def line(y,c):
  x=0
  w=322
  h=2
  fill_rect(x,y,w,h,c)






def printData():
  global a,b,c
  

  
  draw_string(str(int(a))+" "+str(func)+" "+str(int(b)),20,20)
  draw_string("= "+str(int(c)),160,20,(0,255,0),(0,0,0))


def nLen(num):
  l=len(str(num))
  #print(len(str(num)))
  return l

def drawCursor():
  global cursor_x,cursor_y,cursor_w,cursor_h,cursor_c
  fill_rect(cursor_x,cursor_y,cursor_w,2,cursor_c)

  
def cursor_xy():
  global slot,cursor_x,cursor_y,drawCursor

  if keydown(KEY_LEFT):
    cursor_x=16
    
    clearScreen()
    printData()

    cursor_LEFT=True
    cursor_RIGHT=False

    
  if keydown(KEY_RIGHT):
    if len(str(a))==1:
      cursor_x = len(str(a)*7)+55
    
    
    if len(str(a))>1:
      cursor_x = len(str(a)*7)+55
  
    clearScreen()
    printData()
    
    cursor_LEFT=False
    cursor_RIGHT=True


def clearScreen():
  fill_rect(2,2,318,48,"white")


def resetNum():
  global a,b,c
  
  sleep(0.2)
  a=1
  b=1
  clearScreen()
  printData()


def paint():
  global bg,default_c
  
  
  fill_rect(0,50,322,222,bg)
  fill_rect(0,50,322,2,(0,0,0))

#outline/border  
  fill_rect(0,0,2,222,(0,0,0))
  fill_rect(319,0,2,222,(0,0,0))
  fill_rect(0,0,322,3,(0,0,0))
  fill_rect(0,220,322,2,(0,0,0))
  

def update():
  global a,b,M,D,A,S,func,sym,cursor_x,cursor_y,nt


  if keydown(KEY_MULTIPLICATION):
    M=True
    D=False
    A=False
    S=False
    func=sym[0]
    clearScreen()
    printData()

    
  if keydown(KEY_DIVISION):
    M=False
    D=True
    A=False
    S=False
    func=sym[1]
    clearScreen()
    printData()


  if keydown(KEY_PLUS):
    M=False
    D=False
    A=True
    S=False
    func=sym[2]
    clearScreen()
    printData()


  if keydown(KEY_MINUS):
    M=False
    D=False
    A=False
    S=True
    func=sym[3]
    clearScreen()
    printData()


  if keydown(KEY_PLUS):
    M=False
    D=False
    A=True
    S=False
  
  if keydown(KEY_MINUS):
    M=False
    D=False
    A=False
    S=True



#00000000000000000000000000

  if keydown(KEY_ZERO) and cursor_x==16 or keydown(KEY_BACKSPACE) and cursor_x==16:
    a=0

    if func==sym[1]:
      a=1

    clearScreen()
    
    printData()


  if keydown(KEY_ZERO) and cursor_x>16 or keydown(KEY_BACKSPACE) and cursor_x>16:
    b=0

    if func==sym[1]:
      a=1

    clearScreen()

    printData()


#11111111111111111111111111

  if keydown(KEY_ONE) and cursor_x==16:
    a=1
    clearScreen()
    printData()

  if keydown(KEY_ONE) and cursor_x>16:
    b=1
    clearScreen()
    printData()

#2222222222222222222222222

  if keydown(KEY_TWO) and cursor_x==16:
    a=2
    clearScreen()
    printData()

  if keydown(KEY_TWO) and cursor_x>16:
    b=2
    clearScreen()
    printData()

#3333333333333333333333333

  if keydown(KEY_THREE) and cursor_x==16:
    a=3
    clearScreen()
    printData()

  if keydown(KEY_THREE) and cursor_x>16:
    b=3
    clearScreen()
    printData()

#444444444444444444444444
  if keydown(KEY_FOUR) and cursor_x==16:
    a=4
    clearScreen()
    printData()

  if keydown(KEY_FOUR) and cursor_x>16:
    b=4
    clearScreen()
    printData()

#5555555555555555555555555

  if keydown(KEY_FIVE) and cursor_x==16:
    a=5
    clearScreen()
    printData()

  if keydown(KEY_FIVE) and cursor_x>16:
    b=5
    clearScreen()
    printData()

#66666666666666666666666666

  if keydown(KEY_SIX) and cursor_x==16:
    a=6
    clearScreen()
    printData()

  if keydown(KEY_SIX) and cursor_x>16:
    b=6
    clearScreen()
    printData()

#77777777777777777777777777

  if keydown(KEY_SEVEN) and cursor_x==16:
    a=7
    clearScreen()
    printData()

  if keydown(KEY_SEVEN) and cursor_x>16:
    b=7
    clearScreen()
    printData()

#8888888888888888888888888

  if keydown(KEY_EIGHT) and cursor_x==16:
    a=8
    clearScreen()
    printData()

  if keydown(KEY_EIGHT) and cursor_x>16:
    b=8
    clearScreen()
    printData()

#99999999999999999999999999

  if keydown(KEY_NINE) and cursor_x==16:
    a=9
    clearScreen()
    printData()

  if keydown(KEY_NINE) and cursor_x>16:
    b=9
    clearScreen()
    printData()

#-------------------------
#cursor up / down

  if cursor_x==16:
    if keydown(KEY_UP):
      sleep(0.17)
      a+=1
      clearScreen()
      printData()
      
      


      
  
    
        
        

  if cursor_x>16:

    if keydown(KEY_UP):
      sleep(0.17)
      b+=1
      clearScreen()
      printData()


  if cursor_x==16:
    if keydown(KEY_DOWN):
      sleep(0.17)
      a-=1
      clearScreen()
      printData()

  if cursor_x>16:
    if keydown(KEY_DOWN):
      sleep(0.17)
      b-=1
      clearScreen()
      printData()





fill_rect(0,0,322,222,default_c)
clearScreen()
printData()


fill_rect(150,2,170,50,(0,0,0))
  

while not EXIT:

#print ans
  if M:
    c=a*b
    fill_rect(150,2,170,50,(0,0,0))

    printData()


        
  if D:
    if b==0:
      b=1
    c=a/b
    fill_rect(150,2,170,50,(0,0,0))

    draw_string("= "+str(float(c)),160,20,(200,200,200),(0,0,0))
    printData()


    
  
  if A:
    c=a+b
    fill_rect(150,2,170,50,(0,0,0))

    printData()


    
  if S:
    c=a-b
    fill_rect(150,2,170,50,(0,0,0))

    printData()


    


  update()
  cursor_xy()
  drawCursor()
  


  draw_string("[OK] = Random Number",20,70,(255,100,100),(0,0,0))
  draw_string("UP,DOWN,SHIFT,BACKSPACE]=+(1)/-(1)",2,100,(0,0,0),bg)
  draw_string("[BACKSPACE] = Reset to 0.",2,130,(255,255,255),bg)
  
  

  if func==sym[1]:
    if a<=0:a=1
  
  
  
  if cursor_LEFT:
    cursor_RIGHT=False
    
  if cursor_RIGHT:
    cursor_LEFT=False
    
  
  if keydown(KEY_OK):
    if cursor_x==16:
      sleep(0.2)
      clearScreen()
      a=R(1,50)

  if keydown(KEY_OK):
    if cursor_x > 16:
      sleep(0.2)
      clearScreen()
      b=R(1,50)



      
      
  if keydown(KEY_EXE):
    bg=(R(0,255),R(0,255),R(0,255))

    sleep(0.2)
    paint()
    clearScreen()
    printData()
  

  if keydown(KEY_ANS):
    EXIT=True
    mycolor=bg
  
  cursor_c=bg
  

  draw_string("R,G,B:"+str(bg),10,160,(0,255,0),(0,0,0))

  draw_string("TOTAL: R+G+B : "+str(int(bg[0])+int(bg[1])+int(bg[2])),10,190,(0,255,255),(0,0,0))




fill_rect(0,0,322,3,(0,0,0))
fill_rect(0,0,322,222,"white")
fill_rect(0,0,322,100,(0,0,0))

fill_rect(0,100,322,35,bg)
fill_rect(0,180,322,42,bg)
draw_string("PRESS [OK] TO EXIT",40,50,'black','yellow')  
draw_string(str(mycolor),80,150)


fill_rect(0,100,322,35,bg)
fill_rect(0,180,322,42,bg)
draw_string("PRESS [OK] TO EXIT",40,50,'black','yellow')  



  
  
print(mycolor)

During your visit to our site, NumWorks needs to install "cookies" or use other technologies to collect data about you in order to:

With the exception of Cookies essential to the operation of the site, NumWorks leaves you the choice: you can accept Cookies for audience measurement by clicking on the "Accept and continue" button, or refuse these Cookies by clicking on the "Continue without accepting" button or by continuing your browsing. You can update your choice at any time by clicking on the link "Manage my cookies" at the bottom of the page. For more information, please consult our cookies policy.