from kandinsky import * from ion import * from time import sleep from random import * from kandinsky import fill_rect as fill from kandinsky import draw_string as string enabled=False erase=False currentpos=[150,110] currentxy=[15,11] currentcolor=color(0,0,0) selectcolor=color(200,200,200) savedata=[] pixmap=[] for i in range(704): pixmap.append(7) def main(): global enabled global erase global currentpos global currentcolor global selectcolor fill(0,0,320,240,color(255,255,255)) updrect() cbar() sleep(0.1) while True: if keydown(KEY_LEFT): if currentxy[0]>=1 and (pixmap[convertp([currentxy[0]-1,currentxy[1]])]!=convertc(currentcolor) or currentcolor==color(255,255,255) or not enabled or erase): drawrect(-10,col=currentcolor) elif keydown(KEY_RIGHT): if currentxy[0]<=30 and (pixmap[convertp([currentxy[0]+1,currentxy[1]])]!=convertc(currentcolor) or currentcolor==color(255,255,255) or not enabled or erase): drawrect(10,col=currentcolor) elif keydown(KEY_UP): if currentxy[1]>=1 and (pixmap[convertp([currentxy[0],currentxy[1]-1])]!=convertc(currentcolor) or currentcolor==color(255,255,255) or not enabled or erase): drawrect(ydif=-10,col=currentcolor) elif keydown(KEY_DOWN): if currentxy[1]<=20 and (pixmap[convertp([currentxy[0],currentxy[1]+1])]!=convertc(currentcolor) or currentcolor==color(255,255,255) or not enabled or erase): drawrect(ydif=10,col=currentcolor) elif keydown(KEY_ZERO): currentcolor=color(0,0,0) cbar() updrect() elif keydown(KEY_ONE): currentcolor=color(255,0,0) cbar() updrect() elif keydown(KEY_TWO): currentcolor=color(255,255,0) cbar() updrect() elif keydown(KEY_THREE): currentcolor=color(0,255,0) cbar() updrect() elif keydown(KEY_FOUR): currentcolor=color(0,255,255) cbar() updrect() elif keydown(KEY_FIVE): currentcolor=color(0,0,255) cbar() updrect() elif keydown(KEY_SIX): currentcolor=color(255,0,255) cbar() updrect() elif keydown(KEY_SEVEN): currentcolor=color(255,255,255) cbar() updrect() elif keydown(KEY_BACKSPACE): erase=True updrect(color(255,255,255)) elif keydown(KEY_OK): if enabled==True: selectcolor=color(200,200,200) enabled=False elif enabled==False: enabled=True selectcolor=color(150,50,200) drawrect(force=True) sleep(0.2) elif keydown(KEY_EXE): fill_rect(0,0,320,240,color(255,255,255)) for i in range(len(pixmap)): pixmap[i]=7 updrect() cbar() elif keydown(KEY_VAR): string("Saving...",130,100) save() load() elif keydown(KEY_TOOLBOX): loadsave() elif keydown(KEY_DOT): drawrect(force=True) elif keydown(KEY_LOG): savedisk() elif keydown(KEY_LN): loaddisk() elif keydown(KEY_ANS): help() elif keydown(KEY_EE): fill(currentpos[0],currentpos[1],10,10,convertc(pixmap[convertp(currentxy)])) fill(0,220,360,2,color(255,255,255)) def convertc(col): if col==color(0,0,0): return 0 elif col==color(255,0,0): return 1 elif col==color(255,255,0): return 2 elif col==color(0,255,0): return 3 elif col==color(0,255,255): return 4 elif col==color(0,0,255): return 5 elif col==color(255,0,255): return 6 elif col==color(255,255,255): return 7 elif col==0: return color(0,0,0) elif col==1: return color(255,0,0) elif col==2: return color(255,255,0) elif col==3: return color(0,255,0) elif col==4: return color(0,255,255) elif col==5: return color(0,0,255) elif col==6: return color(255,0,255) elif col==7: return color(255,255,255) def convertp(pos): val=pos[0]+(pos[1]*32) return val def updrect(c=""): global prevcolor prevcolor=convertc(pixmap[convertp(currentxy)]) fill(currentpos[0],currentpos[1],10,10,selectcolor) if c=="": fill(currentpos[0]+2,currentpos[1]+2,6,6,currentcolor) else: fill(currentpos[0]+2,currentpos[1]+2,6,6,c) def drawrect(xdif=0,ydif=0,col="",force=False): global erase global currentpos global currentxy global pixmap if col=="": col=currentcolor if erase: fill_rect(currentpos[0],currentpos[1],10,10,color(255,255,255)) pixmap[convertp(currentxy)]=7 erase=False elif enabled or force: fill(currentpos[0],currentpos[1],10,10,col) pixmap[convertp(currentxy)]=convertc(col) else: fill(currentpos[0],currentpos[1],10,10,prevcolor) pixmap[convertp(currentxy)]=convertc(prevcolor) if xdif>=1: currentxy[0]+=1 currentpos[0]=currentpos[0]+10 elif xdif<=-1: currentxy[0]-=1 currentpos[0]=currentpos[0]-10 if ydif>=1: currentxy[1]+=1 currentpos[1]=currentpos[1]+10 elif ydif<=-1: currentxy[1]-=1 currentpos[1]=currentpos[1]-10 updrect() sleep(0.1) def cbar(): fill(0,220,360,2,currentcolor) def save(): global savedata savedata=[] for i in range(704): savedata.append(pixmap[i]) def savedisk(): string("Saving...",130,100) save() with open("save.py","w") as file: file.write("") i=0 for j in range(22): for k in range(32): file.writelines(str(savedata[i])) i+=1 file.writelines("\n") load() def loaddisk(): global savedata with open("save.py","r") as file: savedata=file.read() if len(savedata)>=50: savedata=list(savedata) for i in savedata: if i=="\n": savedata.remove(i) loadsave() def loadsave(): global pixmap x=0 y=0 for i in range(704): fill(x,y,10,10,convertc(int(savedata[i]))) pixmap[i]=int(savedata[i]) if x>=310: x=0 y+=10 else: x+=10 updrect() cbar() def load(): x=0 y=0 for i in range(len(pixmap)): fill(x,y,10,10,convertc(pixmap[i])) if x>=310: x=0 y+=10 else: x+=10 updrect() cbar() def help(isstart=False): b=color(200,200,200) f=color(0,0,0) fill(10,5,300,210,color(150,50,200)) fill(20,10,280,200,b) string("HELP",140,10,f,b) string("Arrow keys - Move",30,30,f,b) string("OK - Draw",30,50,f,b) string("0-7 - Colors",30,70,f,b) string(". - Dot",30,90,f,b) string("Backspace - Erase",30,110,f,b) string("EXE - Clear",30,130,f,b) string("x10X - Hide pen",30,150,f,b) string("Copy/Paste - Save/Load",30,170,f,b) string("log/ln - Full S/L",30,190,f,b) sleep(0.2) while True: if keydown(KEY_OK) or keydown(KEY_BACKSPACE) or keydown(KEY_EXE) or keydown(KEY_DOT) or keydown(KEY_LEFT) or keydown(KEY_RIGHT) or keydown(KEY_UP) or keydown(KEY_DOWN) or keydown(KEY_ANS): if isstart: start() else: fill(0,0,320,240,color(255,255,255)) load() break def start(): fill(0,0,320,240,color(0,0,0)) fill(250,150,50,50,color(255,0,0)) fill(255,140,10,10,color(255,0,0)) fill(250,130,5,5,color(255,0,0)) fill(245,160,10,10,color(255,0,0)) fill(235,155,5,5,color(255,0,0)) fill(230,130,3,3,color(255,0,0)) string('OK',265,165,color(255,255,255),color(255,0,0)) string('Pixel Pad',40,50) string('By squidink7',30,170) string('Help - Ans',10,200) sleep(0.5) while True: if keydown(KEY_OK): main() break if keydown(KEY_ANS): help(True) else: sleep(0.1) start() main()