from math import * from kandinsky import * from kandinsky import fill_rect as F from random import * from random import randint as RAND from ion import * from time import * BL=(0,)*3 WH=(255,)*3 GR=(230,)*3 RE=(155,0,0) def dot(x,y,c,fg,bg,t,a,b): draw_string(c,0,0,GR,WH) fill_rect(x,y,9*t,18*t,bg) for v in range(18): for u in range(9): if get_pixel(u,v)==WH: fill_rect(x+u*t,y+v*t,t-a,t-b,fg) draw_string(" ",0,0,WH,WH) def aff(txt,x,y,t,fg,bg=WH,a=1,b=1): for (i,c) in enumerate(txt): dot(x+i*t*9,y,c,fg,bg,t,a,b) x=6 num=1 num_2=1 arith=["x","/","+","-","sqrt(","^2"] func=0 oper=arith[func] #////////////////////////// #paste your theme data here bg_big= (230, 195, 31) line_c= (66, 19, 38) bg_small= (206, 120, 32) font_c= (255, 255, 255) font_bg_c= (40, 10, 130) font_c_2= (255, 255, 255) font_bg_c_2= (52, 45, 150) def print_ans(): global func,num,num_2,font_c,font_c_2,font_bg_c,font_bg_c_2,theme_change if func==0: aff(str("=")+str(int(num)*int(num_2)),5,145,2,font_c_2,font_bg_c_2) if func==1: aff(str("=")+str(int(num)/float(num_2)),5,145,2,font_c_2,font_bg_c_2) if func==2: aff(str("=")+str(int(num)+int(num_2)),5,145,2,font_c_2,font_bg_c_2) if func==3: aff(str("=")+str(int(num)-int(num_2)),5,145,2,font_c_2,font_bg_c_2) def theme_change(): global bg_big,line_c,bg_small,font_bg_c,font_c,print_ans,font_c_2,font_bg_c_2 bg_big=(RAND(0,255),RAND(0,255),RAND(0,255)) line_c=(RAND(0,255),RAND(0,255),RAND(0,255)) bg_small=(RAND(0,255),RAND(0,255),RAND(0,255)) font_c=choice([(0,)*3,(255,)*3]) font_bg_c=(RAND(0,255),RAND(0,255),RAND(0,255)) font_c_2=choice([(0,)*3,(255,)*3]) font_bg_c_2=(RAND(0,255),RAND(0,255),RAND(0,255)) F(0, 0, 322, 222,bg_big) F(0, 77, 322, 116,line_c) F(0, 83, 322, 104,bg_small) aff(str(int(num))+arith[func]+str(int(num_2)),5,21,3,font_c,font_bg_c) print_ans() def clear_scr(): global bg_big,line_c,bg_small,font_bg_c,font_c F(0, 0, 322, 222,bg_big) F(0, 77, 322, 116,line_c) F(0, 83, 322, 104,bg_small) def refresh(): global bg_big,line_c,bg_small,font_bg_c,font_c,num,num_2 F(0, 0, 322, 222,bg_big) F(0, 77, 322, 116,line_c) F(0, 83, 322, 104,bg_small) aff(str(int(num))+arith[func]+str(int(num_2)),5,21,3,font_c,font_bg_c) print_ans() black=(0,0,0) def print_guide(): fc=[ (RAND(20,255),RAND(20,255),RAND(50,255)), (RAND(20,255),RAND(20,255),RAND(50,255)), (RAND(20,255),RAND(20,255),RAND(50,255)), (RAND(20,255),RAND(20,255),RAND(50,255)), (RAND(20,255),RAND(20,255),RAND(50,255)), (RAND(20,255),RAND(20,255),RAND(50,255)), (RAND(20,255),RAND(20,255),RAND(50,255)), 'yellow','white','orange','gray' ] draw_string("[UP],[DOWN]ARROWS=[+],[-] Num",15,20,fc[RAND(0,len(fc)-1)],black) draw_string("[TOOLBOX=RESET]",15,45,fc[RAND(0,len(fc)-1)],black) draw_string("[ANS]=BG CHANGE",15,70,fc[RAND(0,len(fc)-1)],black) draw_string("[(],[)]=[-],[+] NUM_2 ",15,95,fc[RAND(0,len(fc)-1)],black) draw_string("[OK]=THEME CHANGE",15,120,fc[RAND(0,len(fc)-1)],black) draw_string("[EXE]=PRINT",15,145,fc[RAND(0,len(fc)-1)],black) draw_string("[BACKSPACE]=DELETE LAST",15,170,fc[RAND(0,len(fc)-1)],black) F(0, 0, 322, 222,bg_big) F(0, 77, 322, 116,line_c) F(0, 83, 322, 104,bg_small) speed_t=0.2 sleep(0.3) font_size=3 dec_value=False sleep(0.2) refresh() aff(str(int(num))+arith[func]+str(int(num_2)),5,25,3,font_c,font_bg_c) print_ans() while not keydown(KEY_EXE): oper=arith[func] if func==1 and num_2==0: num_2=1 #************************* if keydown(KEY_MULTIPLICATION): func=0 clear_scr() aff(str(int(num))+arith[func]+str(int(num_2)),5,21,3,font_c,font_bg_c) print_ans() if keydown(KEY_DIVISION): func=1 clear_scr() if func==1 and num_2==0: num_2=1 aff(str(int(num))+arith[func]+str(int(num_2)),5,21,3,font_c,font_bg_c) print_ans() if keydown(KEY_PLUS): func=2 clear_scr() aff(str(int(num))+arith[func]+str(int(num_2)),5,21,3,font_c,font_bg_c) print_ans() if keydown(KEY_MINUS): func=3 clear_scr() aff(str(int(num))+arith[func]+str(int(num_2)),5,21,3,font_c,font_bg_c) print_ans() if keydown(KEY_EE): sleep(0.2) font_bg_c=(RAND(0,255),RAND(0,255),RAND(0,255)) font_c=choice([(0,)*3,(255,)*3]) aff(str(int(num))+arith[func]+str(int(num_2)),5,21,3,font_c,font_bg_c) print_ans() if keydown(KEY_ANS): sleep(0.2) bg_big=(RAND(0,255),RAND(0,255),RAND(0,255)) line_c=(RAND(0,255),RAND(0,255),RAND(0,255)) bg_small=(RAND(0,255),RAND(0,255),RAND(0,255)) F(0, 0, 322, 222,bg_big) F(0, 77, 322, 116,line_c) F(0, 83, 322, 104,bg_small) aff(str(int(num))+arith[func]+str(int(num_2)),5,21,3,font_c,font_bg_c) print_ans() #************************* if keydown(KEY_UP): sleep(0.2) clear_scr() num+=1 aff(str(int(num))+arith[func]+str(int(num_2)),5,21,3,font_c,font_bg_c) print_ans() if keydown(KEY_DOWN): sleep(0.2) clear_scr() num-=1 aff(str(int(num))+arith[func]+str(int(num_2)),5,21,3,font_c,font_bg_c) print_ans() if keydown(KEY_LEFT): sleep(0.2) clear_scr() num_2-=1 aff(str(int(num))+arith[func]+str(int(num_2)),5,21,3,font_c,font_bg_c) print_ans() if keydown(KEY_RIGHT): sleep(0.2) clear_scr() num_2+=1 aff(str(int(num))+arith[func]+str(int(num_2)),5,21,3,font_c,font_bg_c) print_ans() if keydown(KEY_TOOLBOX): sleep(0.2) num=0 num_2=0 func=0 refresh() aff(str(int(num))+arith[func]+str(int(num_2)),5,21,3,font_c,font_bg_c) print_ans() if keydown(KEY_OK): sleep(0.2) theme_change() if keydown(KEY_ZERO): sleep(0.2) num_2=num_2*10+0 clear_scr() aff(str(int(num))+arith[func]+str(int(num_2)),5,21,3,font_c,font_bg_c) print_ans() if keydown(KEY_ONE): sleep(0.2) num_2=num_2*10+1 clear_scr() aff(str(int(num))+arith[func]+str(int(num_2)),5,21,3,font_c,font_bg_c) print_ans() if keydown(KEY_TWO): sleep(0.2) num_2=num_2*10+2 clear_scr() aff(str(int(num))+arith[func]+str(int(num_2)),5,21,3,font_c,font_bg_c) print_ans() if keydown(KEY_THREE): sleep(0.2) num_2=num_2*10+3 clear_scr() aff(str(int(num))+arith[func]+str(int(num_2)),5,21,3,font_c,font_bg_c) print_ans() if keydown(KEY_FOUR): sleep(0.2) num_2=num_2*10+4 clear_scr() aff(str(int(num))+arith[func]+str(int(num_2)),5,21,3,font_c,font_bg_c) print_ans() if keydown(KEY_FIVE): sleep(0.2) num_2=num_2*10+5 clear_scr() aff(str(int(num))+arith[func]+str(int(num_2)),5,21,3,font_c,font_bg_c) print_ans() if keydown(KEY_SIX): sleep(0.2) num_2=num_2*10+6 clear_scr() aff(str(int(num))+arith[func]+str(int(num_2)),5,21,3,font_c,font_bg_c) print_ans() if keydown(KEY_SEVEN): sleep(0.2) num_2=num_2*10+7 clear_scr() aff(str(int(num))+arith[func]+str(int(num_2)),5,21,3,font_c,font_bg_c) print_ans() if keydown(KEY_EIGHT): sleep(0.2) num_2=num_2*10+8 clear_scr() aff(str(int(num))+arith[func]+str(int(num_2)),5,21,3,font_c,font_bg_c) print_ans() if keydown(KEY_NINE): sleep(0.2) num_2=num_2*10+9 clear_scr() aff(str(int(num))+arith[func]+str(int(num_2)),5,21,3,font_c,font_bg_c) print_ans() if keydown(KEY_BACKSPACE): sleep(0.2) num_2=int(num_2/10) refresh() aff(str(int(num))+arith[func]+str(int(num_2)),5,21,3,font_c,font_bg_c) print_ans() draw_string("[VAR] = GUIDE/HELP",140,1,(0,255,0),(0,0,0)) if keydown(KEY_VAR): F(0, 0, 322, 222, 'orange') F(9, 12, 302, 200, (0,0,0)) print_guide() while not keydown(KEY_OK): draw_string("PRESS [OK]",150,190,(0,RAND(0,255),0),(0,0,0)) sleep(0.2) refresh() if keydown(KEY_SQRT): sleep(0.2) clear_scr() if func==0: aff(str(int(num))+arith[0]+arith[4]+str(int(num_2))+")",5,21,3,font_c,font_bg_c) aff(str("=")+str(int(num)*sqrt(float(num_2))),5,145,2,font_c_2,font_bg_c_2) if func==1: aff(str(int(num))+arith[1]+arith[4]+str(int(num_2))+")",5,21,3,font_c,font_bg_c) aff(str("=")+str(int(num)/sqrt(float(num_2))),5,145,2,font_c_2,font_bg_c_2) if func==2: aff(str(int(num))+arith[2]+arith[4]+str(int(num_2))+")",5,21,3,font_c,font_bg_c) aff(str("=")+str(int(num)+sqrt(float(num_2))),5,145,2,font_c_2,font_bg_c_2) if func==3: aff(str(int(num))+arith[3]+arith[4]+str(int(num_2))+")",5,21,3,font_c,font_bg_c) aff(str("=")+str(int(num)-sqrt(float(num_2))),5,145,2,font_c_2,font_bg_c_2) if keydown(KEY_LEFTPARENTHESIS): sleep(0.2) num_2-=0.1 refresh() if func==0: aff(str(int(num))+"x"+str(float(num_2)),5,21,3,font_c,font_bg_c) aff(str("=")+str(int(num)*float(num_2)),5,145,2,font_c_2,font_bg_c_2) if func==1: aff(str(int(num))+"/"+str(float(num_2)),5,21,3,font_c,font_bg_c) aff(str("=")+str(int(num)/float(num_2)),5,145,2,font_c_2,font_bg_c_2) if func==2: aff(str(int(num))+"+"+str(float(num_2)),5,21,3,font_c,font_bg_c) aff(str("=")+str(int(num)+float(num_2)),5,145,2,font_c_2,font_bg_c_2) if func==3: aff(str(int(num))+"-"+str(float(num_2)),5,21,3,font_c,font_bg_c) aff(str("=")+str(int(num)-float(num_2)),5,145,2,font_c_2,font_bg_c_2) if keydown(KEY_RIGHTPARENTHESIS): sleep(0.2) num_2+=0.1 refresh() if func==0: aff(str(int(num))+"x"+str(float(num_2)),5,21,3,font_c,font_bg_c) aff(str("=")+str(int(num)*float(num_2)),5,145,2,font_c_2,font_bg_c_2) if func==1: aff(str(int(num))+"/"+str(float(num_2)),5,21,3,font_c,font_bg_c) aff(str("=")+str(int(num)/float(num_2)),5,145,2,font_c_2,font_bg_c_2) if func==2: aff(str(int(num))+"+"+str(float(num_2)),5,21,3,font_c,font_bg_c) aff(str("=")+str(int(num)+float(num_2)),5,145,2,font_c_2,font_bg_c_2) if func==3: aff(str(int(num))+"-"+str(float(num_2)),5,21,3,font_c,font_bg_c) aff(str("=")+str(int(num)-float(num_2)),5,145,2,font_c_2,font_bg_c_2) if func==0: draw_string(str(num)+" x "+str(num_2)+" = "+str(num*num_2),10,200,(255,)*3,(0,0,0)) if func==1: draw_string(str(num)+" / "+str(num_2)+" = "+str(num/num_2),10,200,(200,)*3,(0,0,0)) if func==2: draw_string(str(num)+" + "+str(num_2)+" = "+str(num+num_2),10,200,(255,155,255),(0,0,0)) if func==3: draw_string(str(num)+" - "+str(num_2)+" = "+str(num-num_2),10,200,(0,255,255),(0,0,0)) #prompt user to proceed to exit draw_string("Press [OK]",100,190) print("") #print theme_change print("bg_big=",bg_big) print("line_c=",line_c) print("bg_small=",bg_small) print("font_c=",font_c) print("font_bg_c=",font_bg_c) print("font_c_2=",font_c_2) print("font_bg_c_2=",font_bg_c_2)