Tag Archives: ծրագիր

Պրոցեդուրային գեներացում: Մաս 1

1.1 Ներածություն
Այս խորագրի ներքո այսուհետ կներկայացվեն հոդվածներ ժամանակակից ծրագրավորման առջև դրված հետաքրքիր խնդիրների դասի՝ պրոցեդուրային գեներացման (procedural generation) վերաբերյալ: Պրոցեդուրային գեներացումը նվիրված է հաշվիչ մեքենաների միջոցով պսեվդո-պատահական պատկերների ստացմանը և մեծ կիրառություն ունի համակարգչային գրաֆիկայում և խաղերի դիզայնում: Հոդվածները հաճախ կուղեկցվեն ծրագրային կոդի հատվածներով, հարկ եղած դեպքում կոդը կուղեկցվի հարակից բացատրություններով: Օրինակները աշխատացնելու համար պահանջվող գրադարանների և կոմպոնենտների մասին կնշվի առանձին, ամեն օրինակի հետ:
Պրոցեդուրային գեներացումը անհնար կլիներ առանց պսեվդո-պատահական թվերի ստացման մեթոդների: Մենք չենք սևեռի մեր ուշադրությունը այս ոլորտի վրա, փոխարենը կօգտագործենք պսեվդո-պատահական թվեր գեներացնող .Net Framework-ի գրադարանի System.Random դասը:

1.2 Ռեալիստիկ լանդշաֆտի ստացում, միջնակետի տեղաշարժման ալգորիթմ

Դիտարկենք հետևյալ խնդիրը: Պահանջվում է գեներացնել և պատկերել իրական [Երկիր մոլորակի] լանդշաֆտի ուրվագծին նման ուրվագիծ: Պարզության համար կդիտարկենք ոչ թե եռաչափ լանդշաֆտի գեներացումը, այլ երկչափինը: Կարելի է վերաբերվել դրան որպես եռաչափ լանդշաֆտի ուղղահայաց հատույթի: Նայեք նկարին, որպեսզի պարզ լինի, ինչի մասին է խոսքը:
image

Նման պատկեր կարելի է տեսնել օրինակ երեկոյան հեռվից սարերի/բլուրների խմբին նայելիս: Նման խնդրի լուծման զանազան ալգորիթմներ կան, առավել պարզը դրանցից (ընդ որում, պարզ != վատ) միջնակետի տեղաշարժման ալգորիթմն է:

1. Սկզբում ունենք մի հորիզոնական հատված

midpoint02. Հատվածի ամեն սեգմենտը միջնակետում բաժանում ենք 2 մասի, միջնակետը [-range, range] միջակայքում ընկած պատահական չափով տեղաշարժում ենք վերև կամ ներքև
midpoint3. range թիվը բազմապատկում ենք roughness-ով (խորդուբորդության գործակից): Այն 0.0 – 1.0 միջակայքի ինչ-որ թիվ է: Որքան փոքր է այն, այնքան հղկված ու «փափուկ» է ստացվում ուրվագիծը:
4. Կրկնում ենք 2 և 3 քայլերը պահանջված անգամ: Դժվար չէ նկատել, որ ամեն անգամ 2-րդ քայլն անելուց հետո հատվածների քանակը կրկնապատկվում է:

Դիտողություն: Ռեալիստիկ պատկեր ստանալու համար կարելի է ալգորիթմն աշխատացնել սեգմենտների բավականին մեծ քանակ պահանջելով: Կարելի է նաև ստանալ համեմատաբար քիչ թվով կետեր (սեգմենտների փոքր թիվ տալ մուտքում) և դրանք ինտերպոլացնել գծայնորեն:

Դիտողություն 2: Շատերի մոտ կարող է այս ալգորիթմը ռեկուրսիվ իրականացնելու «ախորժակ» առաջանա: Մի շտապեք, իտերատիվ տարբերակը ճիշտ իրականացնելիս ավելի էֆեկտիվ է:

Այս, առաջին հայացքից պարզ հրամանները կարող են տալ շատ հզոր արդյունք: Իրականում այս ալգորիթմը ծնունդ է առել ծրագրավորման բոլորովին այլ՝ պատկերների ֆրակտալ կոմպրեսիայի ոլորտում կատարված հետազոտությունների արդյունքում: Սա ուղղված է պատկերները պահելու համար պիքսելների մասին ինֆորմացիա պահելու փոխարեն այլ տվյալներ պահելուն, պատկերի զբաղեցրած հիշողության ծավալը փոքրացնելու նպատակով:

Ստորև բերվում է C#-ով գրված ֆունկցիա, որն իրականացնում է ալգորիթմը:

private List<Point> GeneratePoints(int S, float roughness, int range)
{
List<Point> pts = new List<Point>();
pts.Insert(0, new Point(800, 200));
pts.Insert(0, new Point(0, 200));
int segments = 1;
Random rand = new Random();

            while (segments < S)
{
for (int i = 0; i < segments; i++)
pts.Insert(1 + 2 * i, new Point((pts[2*i].X + pts[2*i + 1].X) / 2, (pts[2*i].Y + pts[2*i + 1].Y) / 2 + rand.Next(-range, range)));

                segments *= 2;
range = (int)((float)range * roughness);
}

return pts;
}

Կարող եք բեռնել և փորձարկել նաև Midpoint Displacement ծրագիրը: Այն թույլ է տալիս աշխատանքի ընթացքում կարգավորել սեգմենտնետի քանակը, հեռահարությունն ու խորդուբորդության գործակիցը: Այն աշխատացնելու համար անհրաժեշտ է ունենալ .Net Framework Redistributable 4.0-ն:

midpoint

Եթե ցանկանում եք ստանալ այս ծրագրի կոդը, գրեք մեկնաբանություններում կամ էլեկտրոնային փոստով:
Հաջորդ անգամ (հաջորդ սերիայում Open-mouthed smile) կդիտարկենք նույն խնդիրը լուծող մեկ այլ մեթոդ՝ Pimsleur (չգիտեմ հայերեն էս ոնց են արտասանում…) Noise ֆունկցիայի վրա հիմնված: Կդիտարկենք նաև տարածված ծրագրերում և խաղերում այս մեթոդների կիրառությունների օրինակներ:

Թողնել մեկնաբանություն

Filed under Ծրագրավորում

Լավագույն Debugger-ները

Հարգելի assembler կոդ փորփրել սիրող հասարակություն! Գաղտնիք չէ, որ հին ու բարի C:\Windows\system32\debug.exe-ի և td.exe-ի ժամանակները վաղուց անցել են: Ներկայացնում եմ իմ կարծիքով առավել ֆունկցիոնալ ու հարմար ժամանակակից լուծումներից երկուսը:

1. Olly Debugger

Անվճար ու բավականին հարմար debugger: Հնարավորություններից կարելի է նշել բազմահոսք ծրագրերի հետ աշխատանքը, UNICODE-ի լրիվ ապահովումը, WinAPI ֆունկցիաների կանչերի դեկոդավորումը, SSE տեխնոլոգիաների հրամանների դեկոդավորումը (սրա մասին մեծ հոդված ենք պատրաստվում շուտով հրապարակել): Շատ պարզ ու հարմար միջերես ունի՝ որի հետ հեշտ կլինի աշխատել նախկին Turbo Debugger օգտագործողներին:

2. IDA Pro
Capture
Երևի ամենահզոր debugger-ն է: Օժտված է ամենաբազմազան հնարավորություններով: Կարելի է սկրիպտներ գրել աշխատանքն ավտոմատացնելու համար (վերջին տարբերակներում սա կարելի է անել նաև Python-ով): Ծրագիրը կարելի է ընդլայնել արտաքին հավելումների հաշվին (extensions): Բավականին բարդ է օգտագործման համար՝ հազիվ ես հասկանում որն ինչ է…

Կխնդրեի, որ դուք ևս գրեիք, ինչ նման ծրագրեից եք օգտվում:

Մեկնաբանություններ (2)

Filed under IT Հետազոտություն

Շաբաթվա Կայքը–Chrome Experiments

HTML 5-ը՝ չնայած, որ դեռևս գտնվում է վաղ զարգացման փուլում, շարունակում է տարածում գտնել համացանցում: Տեխնոլոգիան այսօր ապահովում են գրեթե բոլոր տարածված browser ծրագրերը: Վերջերս Internet Explorer 9 Beta-ում և Chrome-ի 8-րդ տարբրակում վիդոպրոցեսորի կողմից HTML-ի մուլտիմեդիա և գրաֆիկական հնարավորությոնների արագացման հատկությունը (GPU Acceleration) էլ ավելի «յուղ լցրեցին կրակի վրա Smile»: Այսօր արդեն համացանցում կարելի է տեսնել HTML5-ի նոր հնարավորությունների կիրառման գեցեցիկ օրինակներ, ամբիցիոզ ու հեռանկարային նախագծեր: Chrome Expreiments կայքը նման նախագծերի մի մեծ հավաքածու է առաջարկում ազատ օգտագործման համար: Հետաքրքրական է նաև այն, որ նախագծերի մեծ մասը, կառուցած լինելով ամբողջությամբ HTML5-ով և JavaScript-ով, հնարավորություն են ընձեռնում դիտողին ուսումնասիրել ամբողջ ծրագրային կոդը: Ստորև կբերեմ առավել աչքի ընկնող մի քանի նախագիծ:

1. Google Gravity

gravity

Տեսեք, թե ինչպես են Google-ի որոնման էջի էլէմենտները թռվռում browser-ի պատուհանին, գրավիտացիոն ուժերի ազդեցության ներքո, միաժամանակ մնալով լիովին աշխատունակ…

2. 20 Things I Learned

20things

Այս մեկը գեղեցիկ, լիովին անիմացված պատկերներով էլեկտրոնային գիրք է:

3. The Wilderness Downtown

wilderness

Ձեր բնակության վայրը մուտքագրելուց հետո այս մեկը գեներացնում է ինտերակտիվ վիդեոհոլովակ, մուտքագտած բնակավայրի պատկերներով և Google Maps-ի քարտեզներով (նաև գեղեցիկ երաժշտությամբ):

Ուշադրություն՝ շատ ռեսուրսատար վեբ ծրագիր է!

Կարդացեք նաև՝ Ամեն ինչ HTML5-ի մասին

Թողնել մեկնաբանություն

Filed under Շաբաթվա կայքը

Ռիչարդ Սթոլմանը կվարի սեմինարներ Երևանում և Գյումրիում

Ռիչարդ Սթոլմանը և Թիմ Օ՛րեյլին

GNU նախագծի հեղինակ, Free Software Movement շարժման նախաձեռնող Ռիչարդ Սթոլմանը (Richard M. Stallman) Հայաստանում է: Հիշեցնեմ, որ Սթոլմանի և GNU-ի մասին արդեն խոսել ենք բլոգում հետևյալ էջում: Նա կվարի երեք սեմինար, որոնցից երկուսը Երևան քաղաքում, երրորդը՝ Գյումրիում: Սեմինարները կլինեն անգլերեն լեզվով, և, ինչպես հավաստիացրել է Սթոլմանը հասկանալի կլինեն նույնիսկ ոչ մասնագետ մարդկանց (այսինքն սովորական համակարգչից օգտվողների) համար: Ստորև թվարկում եմ սեմինարների թեմաները, անցկացման վայրերը և օրերը:

Free Software: Ethics and the Internet

Անվճար ծրագրային ապահովում – Էթիկան և Ինտերնետը

Վայրը՝ ԵՊՀ, Միջազգային Հարաբերությունների ֆակուլտետ, չորրորդ հարկ, ք. Երևան

Օրը և ժամը՝ Նոյեմբերի 16-ին, 18:30

Free Software and Your Freedom

Անվճար ծրագրային ապահովումն ու քո ազատությունը

Վայրը՝ Չարենցի 6, Անի թաղամաս, ք. Գյումրի

Օրը և ժամը՝ Նոյեմբերի 19-ին, 15:00

Free Digital Society

Ազատ թվային հասարակություն

Վայրը՝ Սայաթ Նովայի անվան երաժշտական դպրոց, 201 սրահ, ք. Երևան

Օրը և ժամը՝ Նոյեմբերի 18-ին, 18:30

Մուտքը բոլոր երեք սեմինարներին ազատ է: Գրանցվելու և մանրամասն տեղեկություններ ստանալու համար այցելեք սեմինարը կազմակերպած ընկերության՝ KASA-ի պաշտոնական կայք:

Մեկնաբանություններ (3)

Filed under Իրադարձություններ

IT նորությունները համառոտ – 2

Windows Phone 7-ը դուրս է գալիս թատերաբեմ
Windows Phone 7-ով HTC հեռախոս

Microsoft-ը թողարկում է սմարթֆոնների համար նախատեսված իր օպերացիոն համակարգի նոր տարբերակը: Windows Phone 7-ով հեռախոսները կհայտնվեն վաճառքում ավելի քան 40 երկրներում սույն ամսի վերջում: Սարքերի արտադրողների թվում նշվում են HTC, LG, Samsung ընկերությունները, իսկ տարածող օպերատորները AT&T-ն, verizon-ը և ավելի ուշ՝ T-Mobile-ը:
 ,E-3-264891-3
Ստեղծող թիմի հավաստմամբ Microsoft-ին վերջապես հաջողվել է ստեղծել օպերացիոն համակարգ, որը իրոք հարմար է սմարթֆոններում օգտագործման համար: Microsoft-ը զինել է Windows Phone 7-ը իր գրեթե ամբողջ ծրագրային արսենալի թեթևածված տարբերակով՝ Office for Phone, Internet Explorer, և այլն: Խաղերի սիրահարները նույնիսկ կունենան XBOX Live Phone ծառայություն, որի միջոցով կկարողանան բեռնել խաղեր և զանազան մուլտիմեդիա կոնտենտ:

Toshiba-ն թողարկում է 1TB տարողունակությամբ օպտիկական սկավառակ
tdk_disc-590x352

Toshiba-ն պատրաստվում է թողարկել 1TB տարողունակությամբ օպտիկական սկավառակներ: Սկավառակը բաղկացած է լինելու 16 երկկողմանի կրիչ շերտերից, որոնց կողմերից յուրաքանչյուրի տարողունակությունն է 32Gb: Նյութը, որն օգտագործվում է այս նախատիպում, արդեն իսկ օգտագոտծվել է Blu-Ray սկավառակներ թողարկող ընկերությունների կողմից: Հիշեցնենք, որ ամենատարողունակ Blu-Ray-ը այսօր ունի 4 շերտ և կարող է կրել ընդհամենը 50Gb ինֆորմացիա:

Հասանելի է Internet Explorer 9-ի առաջին բաց բետան

Վերջերս Microsoft-ը իր կայքում տեղադրել է IE9-ի առաջին public beta տարբերակը և մենք չհապաղեցինք այն տեստավորել: Ինտերֆեյսի դիզայնը ակնհայտորեն հետևում է Google Chrome-ին՝ մինիմալ մեծությամբ էլեմենտներ պանելներին ու մաքսիմում տարածություն վեբ կայքերի համար:
Capture
Պետք է ասել, որ այն աշխատում է զարմանալիորեն արագ: Պաշտոնական տվյալներով միանում է 0,2 վայրկյանում: Իհարկե, նկատվել են որոշակի թերություններ (օրինակ՝ ֆորմեր լրացնելիս drop-down մենյուները այնքան էլ ճիշտ չեն աշխատում), բայց դրանք անկասկած կշտկվեն վերջնական տարբերակում: Թե իրականում ինչքան արագ է աշխատում նոր IE-ն, կիմանանք վերջին տարբերակի տեստերի արդյունքում:

Թողնել մեկնաբանություն

Filed under IT Նորություններ

IT նորությունները համառոտ

Google-ի նոր ծրագիրը Android համակարգի համար
Google Voice Actionsx-large 

Google-ը թողարկել է Voice Actions կոչվող անվճար ծրագիրը Android համակարգով աշխատող սմարթֆոնների համար: Այժմ այդ համակարգից օգտվողնրը կարող են թելադրել սարքին SMS հաղորդագրություններն ու էլեկտրոնային նամակները, ինչպես նաև առանց ձեռքով հեռախոսին դիպչելու կատարել զանգեր: Օրինակ՝ հեռախոսից օգտվողը կարող է «խնդրել» հեռախոսին զանգել Volare ռեստորան. ծրագիրը միանալով Google Maps ծառայությանը, գտնում է ռեստորանի հասցեն ու հեռախոսի համարը և զանգում է այդ համարով:

Աղբյուրը՝ http://usatoday.net

Չինաստանում արգելված են խաղային կոնսոլները
500x_iquedisplay

Մի շատ զարմանալի ու պարադոքսալ փաստ: Չնայած նրան, որ ամենատարածված խաղային կոնսոլները՝ Nintendo Wii-ն, Microsoft XBOX360-ը և Sony PS3-ը արտադրվում են Չինաստանում, երկրի կառավարությունը արգելել է դրանց վաճառքը, պատճառաբանելով, որ երեխաները և երիտասարդները չպետք է իրենց ուղեղները փչացնեն վիդեո խաղեր խաղալով: Ամեն դեպքում, վիդեո խաղեր սիրող չինացիները կարող են հեշտությամբ ձեռք բերել կոնսոլները և դրանց խաղերը սև շուկայից: Օրենքի նախագիծը Մշակույթի նախարարությունը ձևավորել էր դեռևս 2000թ., սակայն խստորեն այն սկսել են կիրառել բոլորովին վերջերս: Nintendo-ն գտել է օրենքը շրջանցելու եղանակը, թողարկելով iQue plug-and-play սարքը, որը թույլ է տալիս ընկերությանը վաճառել իր խաղերը օրիանական եղանակով: Օրենքի ընդունումը, սակայն, բարդություններ է առաջացրել Microsoft-ի վերջին խաղային սարքի՝ Kinect-ի համաշխարհային իրացման գործում:

Աղբյուրը՝ http://kotaku.com

Twitter-ը թողարկում է իր սեփական tweet կոճակը
twitter

Twitter հանրահայտ սոցիալական ցանցը պատրաստ է թողարկելու իր սեփական tweet կոճակը, որը նման է facebook-ի like կոճակին: Tweet-ը, ինչպես և Like-ը կարելի կլինի գտնել ամբողջ ցանցով մեկ: Սրա օգտնությամբ միանգամից կարելի կլինի կիսվել ընկերների հետ աչքի ընկած նորությամբ կամ հետաքրքիր էջով: Ընկերությունը մտադիր է «արտադրության» հանձնել կոճակը այս շաբաթ:

Աղբյուրը՝ http://telegraph.co.uk

Թողնել մեկնաբանություն

Filed under IT Նորություններ