• 7 odgovora
  • 3.710 pregleda
Moze li neko da mi modifikuje scriptu? 26.11.2007. u 17:49 · pre 230 meseci #1
Imam phyton scriptu koju bih preveo sa ruskog na engleski, ako neznate ruski nije problem samo mi ispisite text koji treba da se prevede. I da se modifikuje scripta da ima vise linija za unos ( objasnicu u narednim odgovorima ).


import appuifw,os,e32,sys
_chose_points=True
_start=True
_invisible_point=True
appuifw.app.screen='full'
from key_codes import *
def ru(x):return x.decode('utf-8')
pathway=ru(os.path.split(sys.argv[0])[0]+'\\')
fine=ru('Putь k faйlu:\n')+unicode(pathway)+u'Your.exe'
_file=open(pathway+'exe.exe')
hex_text=_file.read()
_file.close()
_begining=hex_text[:7508]
_after_picture=hex_text[7697:7700]
_after_top_text=hex_text[7724:7728]
_after_middle_text=hex_text[7746:7748]
_end=hex_text[7794:]
oldposition=[0,0]
position=[0,0]
points=['\x00']*189
def ainfo(x):appuifw.note(ru(x))
def aerror(x):appuifw.note(ru(x),'error')
def input_text():
global top_text,middle_text,bottom_text,_start
_start=False
a=0
while a==0:
try:
top_text=appuifw.query(ru('Tekst nad kartinkoй (do 10 simvolov)'),'text').encode('ascii')
if top_text==None:top_text=''
if len(top_text)<11:a=1
else:ainfo('Vvedeno bolee 10 simvolov')
except:aerror('Vstrečaюtsя postoronnie simvolы')
a=0
while a==0:
try:
middle_text=appuifw.query(ru('Tekst pod kartinkoй (do 7 simvolov)'),'text').encode('ascii')
if middle_text==None:middle_text=''
if len(middle_text)<8:a=1
else:ainfo('Vvedeno bolee 7 simvolov')
except:aerror('Vstrečaюtsя postoronnie simvolы')
a=0
while a==0:
try:
bottom_text=appuifw.query(ru('Tekst snizu (do 21 simvolov)'),'text').encode('ascii')
if bottom_text==None:bottom_text=''
if len(bottom_text)<22:a=1
else:ainfo('Vvedeno bolee 21 simvolov')
except:aerror('Vstrečaюtsя postoronnie simvolы')
appuifw.note(ru('Pristupaю k risovaniю kartinki'),'conf')
appuifw.app.exit_key_handler=red_point
make_picture()
appuifw.app.body=can=appuifw.Canvas()
def make_picture():
global _start
_start=False
can.bind(EKeySelect,lambda:nothing())
can.bind(53,lambda:nothing())
for i in range(53):
can.clear()
can.rectangle((0,208-i*4, 176, 222-i*4), 255, fill = (255))
can.text((50,219-i*4), ru('Vыbor toček'), 0xffffff)
e32.ao_sleep(.005)
set_position()
can.bind(EKeySelect,lambda:select())
can.bind(53,lambda:select())
can.bind(EKeyUpArrow,lambda:up())
can.bind(EKeyDownArrow,lambda:down())
can.bind(EKeyLeftArrow,lambda:left())
can.bind(EKeyRightArrow,lambda:right())
can.bind(63586,lambda:exit())
for g in range(27):
for i in range(7):
can.rectangle((21+5*g,18+5*i, 25+5*g, 22+5*i), 0xdddddd, fill=0xdddddd)
e32.ao_sleep(.005)
can.rectangle((19,16, 157, 54), 0)
for i in range(44):
can.rectangle((i*2,190,i*2+2,208),255)
can.rectangle((174-i*2,190,176-i*2,208),255)
e32.ao_sleep(.005)
for i in range(16):
can.text((2,202), ru('Vыhod'), 255+i*1118464)
can.text((135,202), ru('Dalee'), 255+i*1118464)
can.text((1,100),ru('Ispolьzuйte džoйstik i "5"'),0xffffff-i*0x111111)
can.line((45,i+192,133,i+192),0xffffff)
can.line((45,i+190,133,i+190),0xffffff)
e32.ao_sleep(.005)
while _chose_points:chose_pnt()
def chose_pnt():
can.rectangle((0,0, 176,14), 255, fill = (255))
can.text((50,11), ru('Vыbor toček'), 0xffffff)
set_position()
for g in range(27):
for i in range(7):
a=27*i+g
if points[a]=='\x00':b=0xdddddd
else:b=0
can.rectangle((21+5*g,18+5*i, 25+5*g, 22+5*i),b, fill=b)
can.rectangle((19,16, 157, 54), 0)
can.rectangle((0,190,176,208),255,fill=255)
can.text((2,202), ru('Vыhod'),0xffffff)
can.text((135,202), ru('Dalee'),0xffffff)
can.rectangle((45 ,190,133,208),0xffffff,fill=0xffffff)
can.text((1,100),ru('Ispolьzuйte džoйstik i "5"'),0)
e32.ao_sleep(2)
def exit():appuifw.app.set_exit()
def set_position():
can.rectangle((5*oldposition[0]+20,5*oldposition[1]+17, 5*oldposition[0]+26,5*oldposition[1]+23), 0xffffff)
can.rectangle((5*position[0]+20,5*position[1]+17, 5*position[0]+26,5*position[1]+23), 16711680)
def up():
position[1]-=1
if position[1]<0:position[1]=6
set_position()
oldposition[1]=position[1]
def down():
position[1]+=1
if position[1]>6:position[1]=0
set_position()
oldposition[1]=position[1]
def left():
position[0]-=1
if position[0]<0:position[0]=26
set_position()
oldposition[0]=position[0]
def right():
position[0]+=1
if position[0]>26:position[0]=0
set_position()
oldposition[0]=position[0]
def select():
what_color=position[0]+27*position[1]
if points[what_color]=='\x00':
can.rectangle((21+5*position[0],18+5*position[1], 25+5*position[0], 22+5*position[1]), 0, fill=0)
points[what_color]='\x01'
else:
can.rectangle((21+5*position[0],18+5*position[1], 25+5*position[0], 22+5*position[1]), 0xdddddd, fill=0xdddddd)
points[what_color]='\x00'
def nothing():pass
def select_red():
global _invisible_point
_invisible_point=False
appuifw.app.exit_key_handler=exit
can.bind(EKeySelect,lambda:nothing())
can.bind(53,lambda:nothing())
can.bind(EKeyUpArrow,lambda:nothing())
can.bind(EKeyDownArrow,lambda:nothing())
can.bind(EKeyLeftArrow,lambda:nothing())
can.bind(EKeyRightArrow,lambda:nothing())
can.bind(63586,lambda:nothing())
points[position[0]+27*position[1]]='\x02'
make_exe()
def red_point():
global _chose_points
appuifw.app.exit_key_handler=nothing
_chose_points=False
can.bind(EKeySelect,lambda:select_red())
can.bind(53,lambda:select_red())
for i in range(150):
can.rectangle((0,0, 176, 14), 255, fill = (255))
can.text((50-i,11), ru('Vыbor toček Isčezaющaя točka'), 0xffffff)
if i<70:
can.line((132+i,190, 132+i, 208), 0xffffff)
can.rectangle((133+i,190, 176, 208), 255, fill = (255))
can.text((135+i,202), ru('Dalee'), 0xffffff)
elif 69<i<86:
can.text((1,100),ru('Ispolьzuйte džoйstik i "5"'),(i-70)*0x111111)
can.text((50,111), ru('Vыbor isčezaющeй'), 0xffffff-0x111111*(i-70))
can.text((140,123), ru('točki'), 0xffffff-0x111111*(i-70))
e32.ao_sleep(.005)
while _invisible_point:invisible_point()
def invisible_point():
can.rectangle((0,0, 176, 14), 255, fill = (255))
can.text((-100,11), ru('Vыbor toček Isčezaющaя točka'), 0xffffff)
set_position()
for g in range(27):
for i in range(7):
a=27*i+g
if points[a]=='\x00':b=0xdddddd
else:b=0
can.rectangle((21+5*g,18+5*i, 25+5*g, 22+5*i),b, fill=b)
can.rectangle((19,16, 157, 54), 0)
can.text((50,111), ru('Vыbor isčezaющeй'),0)
can.text((140,123), ru('točki'),0)
can.rectangle((0,190,45,208),255,fill=255)
can.text((2,202), ru('Vыhod'),0xffffff)
e32.ao_sleep(2)
def len_scan(x):
global le
if x==0:le='\x00'
elif x==1: le='\x01'
elif x==2: le='\x02'
elif x==3: le='\x03'
elif x==4: le='\x04'
elif x==5: le='\x05'
elif x==6: le='\x06'
elif x==7: le='\x07'
elif x==8: le='\x08'
elif x==9: le='\x09'
elif x==10: le='\x0a'
elif x==11: le='\x0b'
elif x==12: le='\x0c'
elif x==13: le='\x0d'
elif x==14: le='\x0e'
elif x==15: le='\x0f'
elif x==16: le='\x10'
elif x==17: le='\x11'
elif x==18: le='\x12'
elif x==19: le='\x13'
elif x==20: le='\x14'
elif x==21: le='\x15'
def encode_text(x,y,z):
global text
text=''
for i in range(len(x)):
text+=(x+'\x00')
t='\x00'*z
text+=' \x00'*(y-len(x))+t
def make_exe():
global _begining,all_points,_after_picture,len_top_text,top_text,_after_top_text,len_middle_text,middle_text,_after_middle_text,len_bottom_text,bottom_text,_end
len_scan(len(top_text))
len_top_text=le
len_scan(len(middle_text))
len_middle_text=le
len_scan(len(bottom_text))
len_bottom_text=le
encode_text(top_text,10,4)
top_text=text
encode_text(middle_text,7,2)
middle_text=text
encode_text(bottom_text,21,0)
bottom_text=text
all_points=''
for i in points:
all_points+=i
t='\x00'*3
all=_begining+all_points+_after_picture+len_top_text+t+top_text+len_middle_text+t+middle_text+len_bottom_text+t+bottom_text+_end
_file=open(pathway+'Your.exe','w')
_file.write(all)
_file.close()
outro()
def outro():
for i in range(27):
can.clear()
can.rectangle((0,i*4, 176, 14+i*4), 255, fill = (255))
can.text((45,12+i*4), ru('Your.exe sozdan!'),0xffffff)
e32.ao_sleep(.005)
e32.ao_sleep(1)
for i in range(160):
can.rectangle((0,104, 176, 118), 255, fill = (255))
can.text((45-i,116), ru('Your.exe sozdan! Do vstreči!'),0xffffff)
e32.ao_yield()
e32.ao_sleep(1)
if appuifw.query(fine+ru('\nZapustitь?'),'query'):e32.start_exe(pathway+'Your.exe',pathway+'Your.exe')
exit()
def intro():
global temp_points
temp_points='\x00\x00\x00\x00\x00\x00\x00\x01\x01\x00\x00\x01\x01\x00\x01\x01\x00\
x00\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x01\x00\
x00\x01\x00\x01\x00\x00\x01\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
x00\x01\x00\x00\x01\x00\x00\x01\x00\x01\x00\x00\x01\x00\x00\x01\x00\x00\x00\x00\x00\
x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x00\x00\x00\x00\x01\x00\x00\x00\x01\x01\x01\
x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\
x01\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\
x00\x01\x00\x00\x01\x00\x01\x00\x00\x01\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\
x00\x00\x00\x00\x00\x01\x01\x00\x00\x01\x01\x00\x01\x01\x00\x00\x01\x01\x00\x00\x00\
x00\x00\x00\x00'
for g in range(27):
for i in range(7):
a=27*i+g
if temp_points[a]=='\x00':b=0xffffff
else:b=180
can.rectangle((21+5*g,18+5*i, 25+5*g, 22+5*i),b, fill=b)
e32.ao_sleep(.005)
can.bind(EKeySelect,lambda:input_text())
can.bind(53,lambda:input_text())
start()
def start():
while _start:
can.text((98,140),ru('Dimontyay'),65280)
can.text((25,140),ru('Sozdatelь:'),0xff0000)
can.text((55,160),ru('SPASibo'),65280)
can.text((110,160),u'MVM',0xff0000)
a=3342335
can.rectangle((60,191, 110, 205),0, fill=0xcccccc)
can.text((65,203),ru('Načatь'),0xffffff)
for i in range(9):
can.rectangle((16,13+5*i, 20, 17+5*i),a, fill=a)
e32.ao_sleep(.005)
for i in range(27):
for g in range(7):
s=27*g+i
if temp_points[s]=='\x00':b=0xffffff
else:b=180
can.rectangle((21+5*i,18+5*g, 25+5*i, 22+5*g),b, fill=b)
can.rectangle((16+i*5,53, 20+i*5, 57),a, fill=a)
e32.ao_sleep(.005)
for i in range(9):
can.rectangle((151,53-5*i, 155,57-5*i),a, fill=a)
e32.ao_sleep(.005)
for i in range(26):
can.rectangle((146-i*5,13, 150-i*5, 17),a, fill=a)
e32.ao_sleep(.005)
a=0xffffff
for i in range(9):
can.rectangle((16,13+5*i, 20, 17+5*i),a, fill=a)
e32.ao_sleep(.005)
for i in range(27):
can.rectangle((16+i*5,53, 20+i*5, 57),a, fill=a)
e32.ao_sleep(.005)
for i in range(9):
can.rectangle((151,53-5*i, 155,57-5*i),a, fill=a)
e32.ao_sleep(.005)
for i in range(26):
can.rectangle((146-i*5,13, 150-i*5, 17),a, fill=a)
e32.ao_sleep(.005)
appuifw.app.exit_key_handler=nothing
intro()

Re: Moze li neko da mi modifikuje scriptu? 28.11.2007. u 20:40 · pre 230 meseci #2
Citat:

ako neznate ruski nije problem samo mi ispisite text koji treba da se prevede

Ne razumem sta ti ovo znaci ??? Valjda sam mozes da vidis sta je u skripti napisasno na ruskom... Btw, ja u skoli ucim ruski ali ga ne znam, a posto ovo nije pitanje vezano za programiranje u pythonu, mozda bi vise imao srece da si postavio delove koda na nekom forumu koji se bavi jezicima... Ipak probacu da pomognem koliko mogu: Problem sa delovima koda na Ruskom je taj sto je u pitanju latinicni a ne cirilicni font (ja sam trazio neke online recnike, ali su svi za Ruski trazlili cirilicu) stoga ce ti ceprkanje po recnicima potrajati malo duze. Drugi problem je sto Ruski kao i Srpski ima gramatiku gde reci imaju drugaciji nastavak u zavisnosti od vremena, padeza, itd... Tako da ces verovatno za svaku imenicu i pridev morati da nadjes nominativ jednine i za svaki glagol infinitiv. Btw, evo ti link ka nekom recniku koji sam nasao (prvi koji mi je izasao u google-u):
http://www.freedict.com/onldict/rus.html

Nadam se da sam koliko toliko pomogao :)
Potpis
The earth teaches us more about ourselves than all the books. Because it resists us. Man discovers himself when he measures himself against the obstacle.
Re: Moze li neko da mi modifikuje scriptu? 29.11.2007. u 08:45 · pre 230 meseci #3
Da ali svaka promena reci sa ru na eng skripta nece raditi, probao sam vise metoda i nije upalilo. Prebacivao sam enl, lat, cir, ali nece.
Re: Moze li neko da mi modifikuje scriptu? 29.11.2007. u 08:59 · pre 230 meseci #4
Kako nece? Ako sam dobro pogledao skriptu samo su stringovi na ruskom dok su variable i ostalo na engl...

Btw, mozes da pitas autora skripte da napise verziju na engl. jer ako mu nije bio problem za variable valjda nece ni za tekst.
Potpis
The earth teaches us more about ourselves than all the books. Because it resists us. Man discovers himself when he measures himself against the obstacle.
Re: Moze li neko da mi modifikuje scriptu? 29.11.2007. u 09:24 · pre 230 meseci #5
Skripta je pisana u utf-8 encodingu. Kada je sačuvaš na disk (posle izmene ru->en) obrati pažnju na to. Na početku skripte dodaj
Code:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

kako nemem ove module (appuifw,e32) nisam u mogućnosti da probam celu skriptu, ali ovaj mali deo (modifikovan) sasvim lepo radi.
Code:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import os,sys 
_chose_points=True
_start=True
_invisible_point=True
screen='full'
def ru(x):return x.decode('utf-8')
pathway=ru(os.path.split(sys.argv[0])[0]+'\\')
fine=ru('Putь k faйlu:\n')+unicode(pathway)+u'Your.exe'
print fine.encode('utf-8')
fine=ru('File path:\n')+unicode(pathway)+u'Your.exe'
print fine.encode('utf-8')


Re: Moze li neko da mi modifikuje scriptu? 29.11.2007. u 11:29 · pre 230 meseci #6
Thnx Branko, za modifikaciju sam mislio posto se nalazi "emp_points='\x00\x00\x00\x00\x00\x00\x00\x01\x01\x00\x00\x01\x01\x00\x01\x01\x00\
x00\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x01\x00\
x00\x01\x00\x01\x00\x00\x01\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
x00\x01\x00\x00\x01\x00\x00\x01\x00\x01\x00\x00\x01\x00\x00\x01\x00\x00\x00\x00\x00\
x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x00\x00\x00\x00\x01\x00\x00\x00\x01\x01\x01\
x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\
x01\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\
x00\x01\x00\x00\x01\x00\x01\x00\x00\x01\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\
x00\x00\x00\x00\x00\x01\x01\x00\x00\x01\x01\x00\x01\x01\x00\x00\x01\x01\x00\x00\x00\
x00\x00\x00\x00' da li je moguce da se prosiri na vise polja za oznacavanje.
A scripta je za mobilni.
evo i slike sta treba da se modifikuje.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme