տուն Պատրաստություններ ձմռանը Խաղաթղթերի գեներատոր առցանց. Ուսումնական ֆլեշ քարտերի գեներատոր: Հավելված. Բարելավման հնարավորություններ

Խաղաթղթերի գեներատոր առցանց. Ուսումնական ֆլեշ քարտերի գեներատոր: Հավելված. Բարելավման հնարավորություններ

Ահա պատահական կետերի (կարմիր) և դրանցից ստեղծված բազմանկյունների օրինակ.

Բազմանկյունների ձևերն ու չափերը բավականին անհավասար են։ Պատահական թվերն ավելի «խոցելի» են, քան մարդիկ սովորաբար սպասում են: Ես ուզում էի հասնել ինչ-որ բանի, որն ավելի մոտ է կիսապատահական «կապույտ աղմուկին» կամ կեղծ պատահականությանը, այլ ոչ թե պատահական կետերին: Ես մոտեցա ցանկալի արդյունքին Լլոյդի ալգորիթմի տարբերակով, որը պատահական միավորներն ավելի հավասարաչափ բաշխելու բավականին պարզ միջոց է։ Լլոյդի ալգորիթմը յուրաքանչյուր կետը փոխարինում է բազմանկյուն կենտրոնաձևով: Իմ ծածկագրում ես հազիվ եմ միջինացնում անկյունները (տե՛ս բարելավել RandomPoints): Ահա Լլոյդի մոտավորությունը երկու անգամ կիրառելու արդյունքը.

Աղբյուր

Ես տեղադրել եմ Actionscript աղբյուրները MIT լիցենզիայի ներքո, դրանք հասանելի են github-ում: Եթե ​​դուք կարող եք կարդալ Java կամ Javascript, ապա կարծում եմ, որ դուք կարող եք հասկանալ նաև Actionscript-ը: Ես չեմ ակնկալում, որ կոդը անմիջապես օգտակար կլինի բոլորի համար, բայց դա կարող է լավ մեկնարկային կետ լինել, եթե ցանկանում եք օգտագործել այս տեխնիկան ձեր սեփական խաղային քարտեզները ստեղծելու համար:
  • Map.as-ը քարտեզների ստեղծման հիմնական համակարգ է
  • graph/*.as - գրաֆիկի ներկայացում (բազմանկյուններ, եզրեր, անկյուններ)
  • mapgen2.as - ցուցադրական ցուցադրում և GUI
  • Roads.as - մոդուլ, որն ավելացնում է ճանապարհներ ուրվագծային գծերի երկայնքով
  • Lava.as - մոդուլ, որն ավելացնում է անսարքություններ լավայի հետ բարձր բարձրությամբ եզրերին
  • NoisyEdges.as-ն օգտագործվում է ցուցադրության մեջ՝ աղմկոտ եզրեր ստեղծելու համար
Այս հոդվածի գծապատկերները ստեղծվել են 300 պոլիգոններից, իսկ ցուցադրությունը կանխադրված է մինչև 2000 թվականը՝ առավելագույնը 8000: Գծապատկերների ստեղծման կոդը չի փորձարկվել, քանի որ այն արագ և կեղտոտ կոդ է, որը գրված է միայն այս հոդվածի գծապատկերների համար և այլապես անօգուտ է: .

Եթե ​​կոդը կամ իմ մտքերը օգտակար համարեք, ուրախ կլինեմ լսել դրա մասին:

Այլ ալգորիթմներ ուսումնասիրող նախագծեր

  • Էնդի Գեյնին փորձարկեց Վորոնոյի դիագրամները գնդերի վրա և փոխարենը որոշեց ստեղծել ստորաբաժանված իկոսաեդրոնների քարտեզ՝ տեկտոնական թիթեղներով, օդային հոսանքներով, ջերմաստիճանով, խոնավությամբ և բիոմներով: Ինձ հարցրել են, թե ինչպես ընդլայնել իմ քարտեզների գեներատորը մայրցամաքներ ստեղծելու համար. դրա համար արժե ստուգել Էնդիի նախագիծը:
  • Մարտին Օ'Լիրիի քարտեզի գեներատորն օգտագործում է Վորոնոյի դիագրամները հիանալի բացատրությամբ տարբեր տեղանքների գեներատորի, էրոզիայի մոդելավորման, ոճավորված արտապատկերիչի, քաղաքի/տարածաշրջանի ստեղծման, անունների գեներատորի և պիտակների տեղադրման ալգորիթմով: լրացվել է ստվերով, ուրվագծային գծերով և վարդերի քամիները, բայց սկզբնաղբյուրը հասանելի չէ 2016 թվականի սեպտեմբերի դրությամբ: Ռայան Գայը նախագիծը ստեղծել է Մարտինի աշխատանքի հիման վրա:
  • Միգել Սեպերոն Voxel Farm-ից ոգեշնչվել է ստեղծելու քաղաքական լանդշաֆտային քարտեզ՝ հիմնված Վորոնոյի շրջանների վրա, ինչպես նաև քարտեզի գեներատոր՝ օգտագործելով տեկտոնական թիթեղները և այլընտրանք Վորոնոյի դիագրամների օգտագործմանը:
  • Թոմի Ուոթերսն ուսումնասիրում է թիթեղների տեկտոնիկան: Նա ցույց է տալիս, թե ինչպես է ստեղծում մայրցամաքներ, ոչ միայն կղզիներ, որպեսզի լեռնաշղթաները միշտ չլինեն ցամաքային զանգվածների կենտրոնում:
  • ylcorcronlth-ը ուսումնասիրում է խոնավության հաշվարկը՝ հիմնված պատահական քայլքի վրա
  • Քորի Լին ստեղծել է քաղաքական քարտեզների գեներատոր՝ օգտագործելով Վորոնոյի շրջանները:
  • Ջեսսի Մորգանը գաղափարներ վերցրեց այս քարտեզի գեներատորից և ստեղծեց քաղաքային գեներատոր ( նախագծի էջև սկզբնական կոդը)
  • Sword & Scroll-ը օգտագործում է Voronoi քարտեզի գեներատորը քաղաքական շրջաններ (բարոնական հողեր) ստեղծելու համար
  • Ֆիլ Սփիսն իր նախագծում օգտագործում է նաև Վորոնոյի դիագրամներ՝ աղմկոտ եզրերով, բայց չի խորանում մանրամասների մեջ։
  • Christophe Le Besnerais-ը ստեղծել է Javascript-ի տարբերակ՝ ընդլայնված ջրի հոսքի մոդելով: luckylooke-ը տարբերակ է գրել Phaser.io-ի համար:
  • Kaelan Cooter-ն ունի վեցանկյուն աշխարհի քարտեզի գեներատոր՝ բարձրությամբ, խոնավությամբ, բիոմներով, անձրևներով, ջրատար հորիզոններով և տարածքներով:
  • Ռիչարդ Յանիչեկը գրել է Haxe տարբերակը, որը հավաքվում է Javascript+Canvas-ին՝ ցուցադրական տարբերակով: Նա նաև ստեղծեց Javascript-ի տարբերակը՝ ցուցադրմամբ։
  • Jeff Terrace-ը գրել է patches և օգտակար ծրագիր XML-ը COLLADA-ի փոխակերպելու համար, ինչպես նաև հավելված՝ WebGL-ում COLLADA-ն դիտելու համար:
  • Ալեքս Շրյոդերը աշխատել է Perl տարբերակի վրա, որը ստեղծում է SVG ելք:
  • Քրիստոֆեր Գարեթը գրել է Voronoi/Delaunay-ի iOS նավահանգիստը:
  • Ադամ Մարտինը պահպանում է Unity-ի Voronoi/Delaunay նավահանգստի մասնաճյուղը, որը ճեղքված է Julian Ceipek նավահանգստից:
  • Քրիստոֆ Գուբերտը գրել է Java+Processing տարբերակը։
  • Բարան Քահյաօղլուն գրել է (աղբյուրային կոդը), իսկ աբհիմիրը ստեղծել է Քրիս Հերբորթի՝ Բարանի ծածկագրի տարբերակի Unity տարբերակը։
  • Թոմի Ուոթերսն ունի մեկ այլ Javascript տարբերակ՝ աղբյուրի և բլոգի գրառման հետ:
  • Egor Harvat-ը գրել է Haxe/NME տարբերակը։
  • Քոնոր Քլարկն ունի Java տարբերակ:
  • Kylepixel-ը ստեղծել է Javascript նախագիծ, որն օգտագործում է նաև Վորոնոյի շրջանները՝ քարտեզը ստեղծելու համար:
  • Nuclear Horse Studios-ն ունի C#/Unity տարբերակ (MIT լիցենզիա):
  • Սթաֆորդ Ուիլյամսը գրել է C#/Unity տարբերակը (MIT լիցենզիա):
  • Գարեթ Հիգինսն ունի C# քարտեզի գեներատոր:
  • Մարտին Կանդելա Կալաբուիգը ստեղծել է C++ տարբերակը։
  • Թոբիասը աշխատում է տարբերակը C++-ի համար
  • Սպենսեր Դատարանը գրել է այս տեխնիկայի միջոցով քարտեզներ ստեղծելու համար:
  • BitAlchemists-ն ունի Dart տարբերակ:
  • Թոմաս Ռ. Քոլն ունի Լուա նավահանգիստ, որն օգտագործում է Ինքնավար Մոլորակային Հետազոտական ​​Անհատական ​​50-ի համար:
  • Island-ը Scala նախագիծ է, որն օգտագործում է իմ հոդվածում նկարագրված տեխնիկան:
  • PtolemyJS-ը Javascript-ի խաղային շարժիչ է՝ ներկառուցված Voronoi քարտեզների գեներատորով:
  • Ջեյ Սթիվենսը ստեղծել է C++ տարբերակը Unreal 4-ի համար (MIT լիցենզիա):

Այլ նախագծեր

  • PolyWorld-ը հիմնված է Connor Clark-ի Java կոդի վրա և այժմ հանդիսանում է Terasology խաղի մի մասը (տես ստորև): Այս տեսանյութը).
  • Conquest-ում այս տեխնիկան օգտագործվում է խաղի որոշ քարտեզներ ստեղծելու համար:
  • «Besige»-ն այս տեխնիկան կիրառում է ընթացակարգային քարտեզի գեներատորի վրա:
  • TerraFirmaCraft 2-ում տեխնիկան օգտագործվում է վեցանկյունների ցանցով խաղալու համար:
Այս քարտեզների գեներատորը նախատեսված չէր ուղղակի օգտագործման համար, սակայն Welsh Piper (հրեշների հետ հանդիպման աղյուսակներ, Minocra), Kingdoms in Trevail, Cresta և այլ ( , , , , , ) խաղեր օգտագործում են քարտեզների գեներատորը քարտեզներ ստեղծելու համար։ Սեղմեք «արտահանել PNG» կոճակը՝ 2048x2048 PNG ֆայլ արտահանելու համար, որը կարող եք գունավորել, ոճավորել և նշել Photoshop-ում:

Կիրառում. Քարտեզի լրացուցիչ առանձնահատկություններ

Մոդուլներ

Ես փորձել եմ կառուցվածքավորել քարտեզի տեսքը, որպեսզի մոդուլները կարողանան այն դնել առանց կոդի կախվածություն ստեղծելու: Mapgen2.as GUI մոդուլը կախված է Map.as-ից (բազային մոդուլ) և Roads.as-ից (կողային մոդուլ), բայց Maps.as-ից ոչկախված է Roads.as . Գրաֆիկի յուրաքանչյուր բազմանկյուն, եզր և անկյուն ունի ինդեքս, որը կարող է օգտագործվել որպես արտաքին աղյուսակի բանալին: Roads.as-ն ունի մի զանգված, որը կոչվում է ճանապարհ, ինդեքսավորվում է եզրային ինդեքսով:

Այնտեղ, որտեղ քարտեզի բազային կոդը կարող է վերաբերել edge.river-ին որպես հիմք դաշտում, մոդուլը չի ​​կարող: Փոխարենը, մոդուլը վերաբերում է տեղական փոփոխական ճանապարհին: Սա աշխատում է ինչպես կենտրոնների, այնպես էլ պոլիգոնների անկյունների համար: Սա մաքուր է պահում հիմքում ընկած կոդը:

Ես ունեմ երեք մոդուլ՝ Roads, Lava և NoisyEdges:

Ճանապարհներ

Խելագար Աստծո թագավորությունը չի օգտագործում այս քարտեզի գեներատորի հնարավորությունների մեծ մասը, բայց ես դրա համար ճանապարհային գեներատոր եմ ստեղծել: Ես նկատեցի, որ խաղում օգտվողները բնականաբար ուսումնասիրում են գետերը: Գետերը խաղացողներին տանում են լեռներ, որտեղ նրանք մահանում են: Ես ուզում էի ճանապարհներ կառուցել գետերի հետ ճիշտ անկյան տակ:

Ես հաշվարկեցի ուրվագծային գծերը անկյունների երկայնքով: Այնտեղ, որտեղ ուրվագծի մակարդակը փոխվում է, կա ճանապարհ: Սա բավականին պարզ ալգորիթմ է, որն աշխատում է շատ դեպքերում, բայց երբեմն ստեղծում է փոքր օղակներ.

Քանի որ գետերը ոլորվում են Վորոնոյի կողերի երկայնքով (վերևի գծապատկերում՝ կապույտ գծեր), ճանապարհները հետևում են Դելաունեի կողերին (կարմիր գծեր): Ճանապարհներին աղմուկով չեն վերաբերվում. Փոխարենը, դրանք գծվում են եզրերի միջնակետերի միջև ընկած հատվածների տեսքով.

Բազմանկյուններից շատերն ունեն երկու «հարևաններ»՝ ճանապարհներով: Նրանց համար օգտագործվում է սովորական սպլայն, որը միացնում է եզրերի երկու միջնակետերը: Բազմանկյունների համար, որոնք ունեն ավելի քան երկու «հարևաններ» ճանապարհների հետ, ես գծում եմ խաչմերուկ՝ եզրերի բոլոր միջնակետերից մինչև պոլիգոնի կենտրոնը: Վերևի գծապատկերում ներքևի ձախ բազմանկյունն ունի խաչմերուկ, մինչդեռ վերևի աջ բազմանկյունը՝ կանոնավոր գծիկ:

Լավա

Լավան և գետերը գնում են նույն ճանապարհներով: Լավայի ճեղքերը տեղի են ունենում բարձր չոր վայրերում և վերագրվում են եզրերի ենթաբազմությանը: Խաղում լավան և ջուրը, իհարկե, տարբեր կլինեն, բայց դրանք տարբերվում են միայն գույնով և դիրքով: Լավայի եզրերը վերաբերվում են աղմուկին.

Հավելված. Բարելավման հնարավորություններ

վերացական մատուցում

Քարտեզպետք է ճիշտ ցուցադրել աշխարհի համապատասխան մասերը, ոչ բոլոր մանրամասները: Այս նախագծում ես ստեղծում եմ որոշակի մակարդակի մանրամասնությամբ քարտեզներ, բայց չեմ հասնում բուսականության կամ քաղաքների մանրամասներին, թեև քարտեզները միևնույն ժամանակ ամբողջովին վերացական չեն: Հնարավոր է, որ հնարավոր լինի ավելի վերացական քարտեզներ ներկայացնել Միջին երկրի քարտեզների ոճով (ինչպես այս մեկը): Ես գրառումներ էի գրել այն մասին, թե ինչ եմ ուզում տեսնել խաղաքարտերում:

ջրբաժաններ

Հետևելով ներքև սլաքներին (տե՛ս բարձունքների հատվածի նկարագրությունը), դուք միշտ կարող եք եզրերի երկայնքով ճանապարհ գտնել պոլիգոնի ցանկացած անկյունից դեպի ափ: Ես դրանք օգտագործում եմ նշելու այն վայրերը, որտեղ ջուրը պետք է հոսի օվկիանոս: Միևնույն աղբյուրի դիրք ունեցող բոլոր անկյունները կարելի է համարել նույն ջրբաժանի մաս:

Ջրավազանի ծածկագիրը ամբողջական չէ: Դեմոում ջրբաժան ռեժիմ կա, բայց դա ինձ դուր չի գալիս։ Ես փորձել եմ օգտագործել պոլիգոնների կենտրոններն ու անկյունները որպես ջրբաժանի սահմաններ, և երկու դեպքում էլ արդյունքները բավարար չէին: Ես որոշեցի հետաձգել ջրբաժանի հաշվարկները այնքան ժամանակ, քանի դեռ դրանց կարիքն ունեմ։

Կարծում եմ, որ ջրբաժանները կարող են օգտակար լինել մեծ տարածքներ անվանելու համար: Դեմոյում քարտեզի վրա կա մոտավորապես 1000 ցամաքային բազմանկյուն: Լավ կլինի, որ խաղի քարտեզում ավելի քիչ անվանված շրջաններ լինեն, քան բազմանկյունները միասին խմբավորված: Օրինակ, XYZ լեռները կարող են տեղակայված լինել XYZ հովտից վեր, որի միջով կարող է հոսել XYZ գետը: Խաղացողները կկարողանան հասկանալ, որ այս բոլոր տեղանունները կապված են միմյանց հետ: Այս նախագծում ես առանձնապես առաջընթաց չեմ ունեցել, բայց կարող եմ վաղ թե ուշ վերադառնալ դրան։

Անանցանելի սահմաններ

Իմ քարտեզի գեներատորում պոլիգոնների միջև բոլոր սահմանները նույնն են: Նրանց միջեւ սահուն անցումներ են լինում։ Կարող է հետաքրքիր լինել որոշ եզրեր դարձնել անդադար, որպեսզի կարողանանք ստեղծել ժայռեր, անդունդներ, սարահարթեր և բարձրության այլ կտրուկ փոփոխություններ: Տեսեք, դա բացատրում է, թե ինչպես Վորոնոյի տարածքները կարող են հետաքրքիր լինել խաղի համար:

Տեղանքի վերլուծություն

Բազմանկյուն քարտեզների վրա ուղիների որոնումը պետք է լինի բավականին արագ և կարող է օգտագործվել տեղանքի վերլուծության համար: Օրինակ, եթե երկու կետերը տարածականորեն մոտ են, բայց նրանց միջև ճանապարհը երկար է, ապա դա կարող է նշանակել, որ արահետի վրա կա ծոց կամ սար, և որ սա լավ տեղ կլինի թունելի կամ կամուրջի համար: Ճանապարհի որոնման ալգորիթմը կարող է նաև գտնել վայրեր, որոնք պահանջում են կամուրջներ դեպի մոտակա կղզիներ: Ճանապարհների վրա տեղակայված բազմանկյունները կարող են ռազմավարական առումով ավելի արժեքավոր լինել, քան արահետների համար հազվադեպ օգտագործվող բազմանկյունները:

Անվանված տարածքներ

Ինչպես նշեցի ջրբաժաններին վերաբերող բաժնում, ուզում եմ քարտեզի տարբեր տարածքների անուններ տալ։ Այս հատկանիշը տեղանքի վերլուծության հետ համատեղելով՝ կարող եք անվանել գետեր, լեռներ, լճեր, բազմանկյուն խմբեր, առափնյա գծեր, օվկիանոսներ, անտառներ, թերակղզիներ, հովիտներ և այլն: Նույն տարածքի անունները կարող են կապված լինել: Ես չեմ աշխատել այս մասի վրա, քանի որ կարծում եմ, որ այն օգտակար կլինի միայն կոնկրետ խաղում և ոչ թե ընդհանուր քարտեզի գեներատորում: Խաղի թեման պետք է ոչ միայն կապված լինի անունների հետ, այն կարող է ներառել նաև իրեր, քվեստներ և սյուժեի տարրեր։ Օրինակ, XYZ սուրը կարելի է գտնել միայն XYZ հովտում:

Փոփոխական խտություն

Դուք կարող եք օգտագործել Fortune-ի ալգորիթմը՝ բազմանկյունը ավելի փոքր բազմանկյունների բաժանելու համար: Քարտեզը, որտեղ աշխարհի մեծ մասը մոտավորապես ուրվագծված է, և որոշ տարածքներ ավելի մանրամասն են, կարող է հետաքրքիր թվալ: Որպես այլընտրանքային մոտեցում, մենք կարող ենք դասավորել սերմնակետերը փոփոխական խտությամբ, որպեսզի որոշ տարածքներ ունենան ավելի շատ բազմանկյուններ, քան մյուսները: Օրինակ, Լլոյդի ալգորիթմի փոխարեն կարող է կիրառվել հարթեցման գերնշում:

Բարելավել աղմկոտ եզրերը

Ես ներդրեցի աղմկոտ եզրերի շատ պարզ համակարգ՝ ատամնավոր գծերով: Երբ մեծացնում եք քարտեզը, անկյունները շատ նկատելի են: Դուք կարող եք բարելավել համակարգը՝ օգտագործելով կոր գծերը կամ ֆրակտալ ընդլայնումը, որն ավելի մանրամասն տեսք կունենա, երբ մասշտաբավորվի:

Հավելված. Գործընթացի բարելավում

Այս հոդվածն ի սկզբանե երեք գրառում էր՝ մաս 1՝ բազմանկյունների, քարտեզի տեսքի, կղզիների, օվկիանոսների, լճերի, լողափերի և ցամաքի մասին; մաս 2 բարձրությունների, գետերի, խոնավության և բիոմների մասին; մաս 3 մատուցման, ցուցադրման և սկզբնաղբյուրի մասին:

Եթե ​​որևէ մեկին հետաքրքրում է, թե ինչպես եմ ես այստեղ հայտնվել, ահա հակիրճ պատմություն.

  • 2009 թվականի դեկտեմբերին Ռոբը և Ալեքսը Wild Shadow Studios-ից հարցրեցին, թե արդյոք ես քարտեզներ ստեղծելու արագ միջոց ունեմ: Ես արդեն մտածում էի օգտագործել Perlin աղմուկը քարտեզներ ստեղծելու համար, ուստի փորձեցի և լավ արդյունքներ ստացա: Ես պատրաստեցի աշխատանքային նախատիպը մեկ օրում, և ևս մեկ ամիս պահանջվեց տատանումների տեղադրման և ընտրության համար: Տատանումների մեծ մասը չաշխատեց, և ես հասկացա, որ այս մոտեցման սահմանափակումներ կան: Աշխատանքի մեկ ամիսը բավական էր, ուստի ես ավարտեցի քարտեզների հետ աշխատանքը և անցա այլ փոքր նախագծերի՝ գրաֆիկա, անիմացիա, հրեշների խմբեր, AI NPC-ների համար և այլն:
  • 2010 թվականի հունիսին ես կրկին ոգեշնչվեցի աշխատելու քարտեզների հետ: Ես մեկ ամիս ծախսեցի մտքերը թղթի վրա գրելով և տարբեր նախատիպեր փորձելով: Ես փորձել եմ վեցանկյուն ցանցեր, վեցանկյուն գետավազաններ, քառակուսի վրա հիմնված գետերի առաջացում, հրաբուխներ, բլուրներ, էրոզիա, եղանակային համակարգեր և այլն: Ամեն ինչ ավարտվեց անհաջողությամբ.Այնուամենայնիվ, ես շատ բան սովորեցի այդ ընթացքում: Օրինակ, Դելոնեի եռանկյունավորումները ինձ չէին համապատասխանում, բայց հանգեցրին Վորոնոյի դիագրամներին: Քվադներից գետեր ստեղծելը չաշխատեց, բայց քառակուսիները հարմար եղան ավելի ուշ, երբ ես սկսեցի աշխատել աղմկոտ եզրերի վրա: Էրոզիայի համակարգը չաշխատեց, բայց որոշ գաղափարներ օգտակար էին գետերի վրա աշխատելիս:
  • Ընթացակարգային բովանդակության ստեղծման դասընթացներին մասնակցելիս ես գրի առա ևս մի քանի քարտեզի ստեղծման գաղափարներ: Հուլիսի 4-ի երկար հանգստյան օրերին ես դրանք իրականացրեցի, և նրանք հիանալի աշխատեցին: Այդ շաբաթավերջին ես ստեղծեցի Վորոնոյի պոլիգոններ, քարտեզի տեսք, կղզիների առաջացում, աղմկոտ եզրեր, բարձրություններ, բիոմներ, գետեր և բարձրության վերաբաշխում: Ես զգացի հոսքի զգացում: Եվ դա զարմանալի էր! Ես կառուցել եմ բազային համակարգի մեծ մասը ընդամենը երեք օրվա ընթացքում:
  • Հուլիսին և օգոստոսին ամեն շաբաթավերջին ես բարելավումներ էի անում, որոնցից շատերը բավականին նշանակալի էին: Ես նաև շատ փոփոխություններ արեցի, որոնք չաշխատեցին, ուստի ստիպված էի հեռացնել դրանք: Երբ բազային քարտեզի պարամետրերը բավականաչափ լավն էին, ես ուշադրությունը տեղափոխեցի վերարտադրության և քարտեզագրման միջերեսի վրա: Վերարտադրումից և UI-ի բարելավումից հետո ես կարողացա տեսնելքարտեզի վրա նոր թերություններ և բազմաթիվ սխալներ են հայտնաբերվել: Ես նաև զանգվածային վերամշակում արեցի՝ պարզեցնելու կոդը, որը նախկինում օրգանապես աճում էր:
  • Օգոստոսի վերջին ես հասկացա, որ աշխատում եմ միայն փոքր բարելավումների վրա, և որոշեցի, որ նախագիծը պատրաստ է փուլ առ փուլ: Ես անցկացրեցի Աշխատանքի օրվա երկար հանգստյան օրերը՝ գրելով արդյունքները այս հոդվածում (և գրառումներում): Շատ ժամանակ է ծախսվել բարձրորակ դիագրամների ստեղծման վրա։ Դիագրամները բացահայտեցին նոր սխալներ, ուստի ես անցա դրանք շտկելուն՝ մեծապես պարզեցնելով մեկ ֆունկցիա (բարձրությունների վերաբաշխում) և նորը (խոնավության վերաբաշխում): Բացի այդ, ես վերանվանել և մեկնաբանել եմ կոդը, որպեսզի ավելի հեշտ լինի բացատրել:
Ինչու՞ եմ ես հետևում այս ամենին: Որովհետև ես փորձում եմ բարելավել նման փոքր (1-3 ամիս) նախագծերի հետ աշխատելու գործընթացը։ Ահա թե ինչ եմ ուզում հիշեցնել ձեզ.
  1. Լավ է ունենալ հիմնական գաղափարըառաջ մղելով ամբողջ նախագիծը: Հունվարին իմ պատրաստած պարզ քարտեզները հիմնված էին Պերլինի աղմուկի վրա: Ներկայիս քարտեզները հիմնված են Վորոնոյի գծապատկերների վրա: Ես պետք է ընտրություն կատարեի և շարունակեի աշխատել, բայց ժամանակ պահանջվեց…
  2. Մինչ ճիշտ գաղափար գտնելը, երբեմն ստիպված էի շատ փորձեր. Մինչև Վորոնոյի՝ որպես հիմնական կառույցի առաջ քաշելը, մոտ մեկ ամիս աշխատեցի գաղափարների վրա։ Ես պետք է գրեմ շատ գաղափարներ:
  3. ես ունեցել եմ բազմաթիվ անհաջողություններ. Կարևոր է արագ սխալվել, մի վախեցեք սխալվել։ Ես պետք է պահպանեմ տրամադրությունս:
  4. Ես երեք օրում պատրաստեցի հիմնական համակարգը: Արագ նախատիպկարող է շատ բան պատմել գաղափարի կենսունակության մասին: Վաղ փուլերում ես պետք է կենտրոնանամ նախատիպի վրա և առայժմ մոռանամ բարձրորակ համակարգի մասին։
  5. Վաղ փուլում դա ավելի կարևոր է ուսումնասիրել համակարգըքան լավ կոդ գրելը: Ես պետք է ինքս ինձ հարցնեմ, թե ինչ եմ ուզում սովորել նախատիպից:
  6. Սխալները երբեմն ուշ են գալիս. Մենք պետք է փրկենք նրանց: Ես ջնջեցի կոդը հենց որ տեսա դրա թերությունները, բայց երևի պետք է git-ում ավելի շատ ճյուղեր ստեղծեի ու այնտեղ պահեի։
  7. Տեսողական դիտելու ունակությունկարող է շատ օգնել հասկանալու, թե ինչ է կատարվում: Ես բաց եմ թողել կոդի մի քանի վրիպակներ, քանի որ չեմ անհանգստացել տվյալների հատվածը պատկերացնելու համար: Մենք պետք է հնարավորինս շատ պատկերացնենք:
  8. Երբեմն հայտնվում են փոքր շեղումներ, ինչը իրականում նշանակում է կոդում սխալների առկայություն։ Հաճախ ես դրանք պարզապես մի կողմ էի դնում: Նույնիսկ եթե այդ պահին ժամանակ չկար սխալներ գտնելու և ուղղելու համար, դուք պետք է շտկեք դրանք հետագա հետազոտության համար։
  9. Տրամադրեց մեծ օգնություն գրել բլոգային գրառումներ. Նրանք ինձ ստիպեցին հասկանալ համակարգի բոլոր մասերը, նայել բոլոր տվյալները և հասկանալի դարձնել բոլոր կոդը: Գրառումները ստիպեցին ինձ փորձարկել քարտեզների ստեղծման յուրաքանչյուր քայլ և բարելավել դրանք, որոնք դժվար է բացատրել: Դուք պետք է սկսեք գրել բլոգային գրառումներ գործընթացի ընթացքում շատ ավելի վաղ: Բացատրությունը սովորելու լավ միջոց է:
  10. և բիոմի դասակարգման սխեմաներ և տարբեր բիոմներ:

    Վիքիպեդիան ունի նաև հողային ձևերի լավ ցանկ, որոնք կարող եք փորձել ստեղծել՝ օգտագործելով խաղի քարտեզների գեներատորը: Իմ նախագծի համար ես չեմ ուսումնասիրել այս ցանկը:

    Քեն Պերլինը աղմուկի վարպետ է, նա հորինել է Perlin աղմուկը: Նա նաև ստեղծել է քիչ հայտնի սիմպլեքս աղմուկը (PDF): Իմ նախագծում ես օգտագործել եմ Perlin աղմուկը կղզու ընդհանուր ձևը ստեղծելու համար: Ջո Սլեյթոնն ունի էջ, թե ինչպես կարելի է Պերլինի աղմուկը վերածել կղզիների: Ես փնտրում էի տեղեկատվություն կապույտ աղմուկի մասին, և նախքան պատահական կետերի բաշխումը բարելավելու Լլոյդի ալգորիթմը, ես պատահաբար հանդիպեցի, ինչպես նաև Վանգի ռեկուրսիվ սալիկներին: Ես նաև նայեցի Քրեյգ Ռեյնոլդի (Craig Reynold) հյուսվածքներին, բայց ժամանակ չունեի դրանք որևէ տեղ կիրառելու:

  11. Դելոնեի եռանկյունավորում
  12. ընթացակարգային սերունդ
  13. պերլինի աղմուկը
  14. Ավելացնել պիտակներ

Այս էջում կխոսվի հատուկ ծրագրերի կողմից ստեղծված կրեդիտ քարտերի համարների օգտագործման և հենց այդ ծրագրերի մասին:

Վարկային քարտի համարների գեներատոր, ծրագիրը անհրաժեշտ է օտարերկրյա գրանցման հովանավորների հետ աշխատելու համար, երբ ձեռքի տակ չկա վարկային քարտ, իսկ գրանցումն առանց կրեդիտ քարտի անհնար է: Վարկային քարտերի գրանցումն ամենաբարձր վարձատրվողն է, ուստի այս ծրագիրը կարող է օգնել ձեզ որոշակի գումար խնայել:

Ի՞նչ է կրեդիտ քարտի համարների գեներատորը:
Սա ծրագիր է, որը ստեղծում է տարբեր վարկային քարտերի համարներ: Ծրագրի էությունն այն է, որ իմանալ ալգորիթմը, որով նշանակվում է որոշակի վարկային քարտի համարը: Յուրաքանչյուր բանկ, ընկերություն օգտագործում է իր սեփական համակարգը՝ թվեր ստանալու համար:

Ծրագրերն ընդհանրապես չեն առաջացնում իրական կյանքի քարտերի թվեր: Ստեղծվում են թվեր, որոնք գոյության օրինական իրավունք ունեն։ Եթե ​​բանկը քարտ է թողարկել հաճախորդին, ապա այն կարող է ունենալ նման թիվ, քանի որ այն հաշվարկվել է հենց այս ալգորիթմի համաձայն:

Տարբեր գեներատորներ օգտագործում են տարբեր ալգորիթմներ:
Որոշ ծրագրեր ստեղծում են միայն մեկ սերիայի վարկային քարտեր, մյուսները թույլ են տալիս սահմանել նույնիսկ իրական բանկեր:
Կան գեներատորներ, որոնք ձեզ տալիս են քարտի համարը, անձի հասցեն, անունը:

Ցանցում ամենաշատ օգտագործվող քարտերն են Visa, American Express, MasterCard:

Ինչի՞ համար կարող է օգտագործվել այս թիվը:
Հավանաբար հաճախ եք հանդիպել կայքերի, որտեղ վարկային քարտերի միջոցով ինչ-որ բան են վաճառում։ Նրանք կարող են վաճառել ապրանքներ, անդամակցություն հասարակությանը և այլն։ Այս թվերի օգտագործման ամենաբարդ դաշտերից մեկը պոռնոկայքերն են: Նրանցից շատերը ցանկանում են, որ դուք վճարեք անդամակցության համար: Մեկ այլ տարբերակ մեծահասակների ստուգման համակարգերն են. համակարգեր, որոնք առաջարկում են իրենց ծառայությունները՝ հաստատելով, որ դուք արդեն հասել եք այն տարիքին, երբ կարող եք դիտել էրոտիկա (իհարկե, ոչ անվճար):
Բնականաբար, ոչ բոլոր կայքերը կարող են մուտք գործել այս ձևով:

Ինչպես է դա աշխատում?
Դուք պետք է դա պարզեք փորձի և սխալի միջոցով: Ժամանակ առ ժամանակ դա պարտադիր չէ: Ես ձեզ խորհուրդ եմ տալիս պարզապես փորձել: Եթե ​​մի համարը չի աշխատում, ապա մյուսը, հավանաբար, նույնպես չի աշխատի: Պարզապես գտեք ձեզ մեկ այլ կայք: Հիմա կոնկրետությունների համար: Համակարգերից մեկը, որտեղ թվերի հետ հիմարությունը մեծ աղմուկ բարձրացավ, AdultSights-ն է: Այս AVS-ն իր տակ պահում է մոտ 15000 պոռնոկայք: Այս համակարգին անդամակցությունը հեշտությամբ ձեռք է բերվում կեղծ թվերի միջոցով: Հնարավոր է, որ մի քանի օրից ձեր մուտքն արգելվի, բայց հետո կարող եք նորը ստեղծել։ Սա գտնվում է www.adultsights.com կայքում

Ինչպե՞ս գնել ապրանք:
Ոչ մի դեպքում. Սա մի բան է, որը դուք չպետք է անեք: Համարը ստանալուց հետո ձեզ հարկավոր չէ նամակ գրել iD Software-ին և պատվիրել ապրանքը: Այնտեղ վարկային քարտերը ստուգվում են այլ համակարգով, և դուք դեռ ոչինչ չեք ստանա: Երբ դուք փորձում եք գումար հանել վարկային քարտից, ընկերությունը պարզապես կդադարեցնի աշխատանքը և ձեզ ոչինչ չի ուղարկի: iD Software-ը գրում է. Մենք խնդիրներ ունենք ձեր կրեդիտ քարտի հետ:

Բացի պոռնո կայքերի թվից, նրանք հաճախ խնդրում են ժամկետի ավարտը: Ինչ է սա?
Ոչ մի ճակատագրական բան. Վարկային քարտի պայմանագիրը սովորաբար կնքվում է որոշակի ժամկետով: Այս գործողության ժամկետը պայմանագրի ավարտի ամսաթիվն է: Տեսականորեն այս ամսաթիվը չի ազդում կրեդիտ քարտի համարի վրա: Հետեւաբար, ամսաթիվը գրեք կայքում, օրինակ, առնվազն մեկ տարով ավելի, քան այսօր: Այսինքն, եթե այսօր 22.11.10 է, ապա ամսաթիվը ինչ-որ տեղ գրեք 22.12.11.

Երբեմն համարը չեն վերցնում։
Ծրագրերը ճիշտ թվեր են ստեղծում: Պարզապես այն կայքը, որին փորձում եք հասնել, չի ցանկանում ընդունել դրանք: Դա կախված է նրանից, թե ինչպես է նա ստուգում դրանք։ Փորձեք մեկ այլ կայք:

Որոշ կայքեր ստուգում են համարը գոյության հիպոթետիկ հնարավորության համար: Այսինքն, կոպիտ ասած, անցնում են նույն գեներատորի միջով ու նայում են այն ալգորիթմի ճիշտությանը, որով այն պատրաստվել է։ Եթե ​​ալգորիթմը ճիշտ է, ուրեմն ամեն ինչ կարգին է։ Դրանից հետո կայքը թույլ է տալիս ներս մտնել՝ բուն դրամական փոխանցումների գործողությունը հետաձգելով անորոշ ժամկետով։

Երկրորդ տարբերակը մեզ համար տհաճ է. Մյուս ծայրում քարտի համարը մեզանից անմիջապես հետո փորձ է արվում գումար փոխանցել։ Բնականաբար, եթե անգամ այդ համարով քարտ կա, սեփականատիրոջ անունը չի համընկնում, և գործողությունը ձախողվում է։ Լուծում - գնալ այլ կայք: Շատ պոռնո սերվերներ անցել են webquest.com-ի միջոցով ստուգման, որը համեմատում է քարտի համարը սեփականատիրոջ հասցեի հետ: Նաև մի այցելեք այն կայքերը, որտեղ անդամակցության գնումները կատարվում են Internet Billing Co-ի միջոցով: Բացի այդ, որքան ես հասկանում եմ, ինչ-որ մեկը կենտրոնացված կերպով վարում է վատ թվերի տվյալների բազա: Ես մեկ անգամ չէ, որ հանդիպել եմ հաղորդագրությունների, ինչպիսիք են «սև ցուցակի թիվը», երբ փորձում եմ մուտքագրել իմ հին ապացուցված համարները: Այսպիսով, հիմնական կետը հին լիազորման սխեմայով սերվերներ գտնելն էր: Բարեբախտաբար նման կայքեր դեռ կան։

Ինչի՞ն է դա սպառնում։
Նման արարքները պատժելի են։ Դրա համար ձեզ սպառնում են տարբեր պատիժներ՝ ընդհուպ մինչև ազատազրկում։ Բայց սա տեսություն է։ Հաջորդ հարցը վերաբերում է պրակտիկայի.

Հաճախ կայքերում դուք կարող եք տեսնել այսպիսի տողեր.
«Անվտանգության նկատառումներից ելնելով` ձեր բոլոր գործողությունները գրանցվում են, ձեր IP-ն այսինչն է և այն, վարկային քարտերի անօրինական օգտագործման բոլոր փորձերը խստորեն կպատժվեն»:
Մի վախեցիր. Նախ IP-ի մասին. Դե, այո, նրանք ճանաչում են նրան: Այսպիսով, ինչ է հաջորդը: Օգտատերերի մեծ մասը միացված է ինտերնետին dial-up կապի միջոցով (Dial-up): Նրանց մեծ մասին տրվում է դինամիկ IP: Հանուն ինչ-որ գարշելի 20-90 դոլարի, ոչ մի արևմտյան ընկերություն չի նեղվի ռուս պրովայդերների հետ գործ ունենալ։ Իր հերթին, մեր պրովայդերները երբեք չեն խորանա լոգերի մեջ և տեսնեն, թե ով է այսինչ պահին նստած այսինչ IP-ի վրա:
Ինչ վերաբերում է ստատիկ IP ունեցող մարդկանց, նույն իրավիճակը: Ոչ ոք իսկապես չի ցանկանում ձեզ հետ ամեն ինչ կարգավորել: Այսպիսով, գործնականում նման գործողությունները մնում են և կմնան բացարձակապես անպատիժ։ Դուք կարող եք հանգիստ քնել:

Ուշադրություն. Ներկայացված վարկային քարտի գեներատորը ստեղծում է միայն կեղծ վարկային քարտերի համարներ՝ համաձայն Luhn ալգորիթմի։ Այս տվյալների օգտագործումը խանութներում ոչ մի բանի չի հանգեցնի։ Միայն նրանց համար, ովքեր հասկանում են, թե ինչ է վտանգված: Անձնական օգտագործման համար՝ ձեր ռիսկով: Առաջարկ ունե՞ք, թե վրիպակ եք գտել: Գրեք մեկնաբանություններում, մենք կուղղենք։

Պարամետրերի վերլուծություն

Վարկային քարտի համարների գեներատորն ինքնին շատ հեշտ է սովորել, և ամենակարևորը` ամբողջովին առցանց, բայց ամեն դեպքում, եկեք անցնենք հնարավոր պարամետրերին:

Կաղապարի ընտրություն

Այստեղ միանգամից երկու հնարավորություն է ներկայացված՝ ընտրություն գոյություն ունեցող ցուցակի վրա հիմնված և կաղապարի ձեռքով ստեղծում:

Եկեք անցնենք ցուցակի միջով: Առաջին կետը պարամետրն է «Պատահական քարտեզ». Փաստորեն, քարտեզն ամբողջովին պատահական չէ, այլ ստեղծվում է միայն ցուցակի կաղապարների հիման վրա: Բայց ամեն անգամ, երբ ձևանմուշները ստեղծվում են, դրանք ընտրվում են պատահականորեն:

Ցանկից կարող եք նաև ընտրել ցանկացած ձևանմուշ: Կաղապարները տրվում են միայն օրինակ, մեծ մասամբ օգտագործվում է միայն ձեռքով արտադրություն: Կան լրացուցիչ հավելումներ Visa-ի և MasterCard-ի համար: Ի դեպ, եթե նկատում եք, այն այլեւս ներկայացված չէ, բայց հուսով ենք, որ դրա կարիքը չի լինի։ Բայց եթե հանկարծ ինչ-որ մեկին պետք է ցանկը նոսրացնել իր աղբամաններով, խնդրում ենք հարցնել մեկնաբանություններում:

Անցնենք ձեռքով արտադրություն, ամենահետաքրքիր պահը. Քարտի համարը տրվում է ձևաչափով.

Ամեն ինչ խելամիտ է՝ 16 նիշ՝ բաժանված խմբերի ըստ բացատների։ «X»-ի փոխարեն մենք ազատ մուտքագրում ենք մեր համարները։ Իսկ Luhn-ի վրա հիմնված ալգորիթմն արդեն կփնտրի ճիշտ թվեր ազատ դաշտերի համար (հուսով եմ գիտեք, որ քարտի համարը լրիվ պատահական չէ և ունի հսկիչ ստուգում)։ Ցանկից ձևանմուշ ընտրելիս ուշադրություն դարձրեք, թե ինչպես է այս դաշտը վերակառուցվելու:

Ելքային կարգավորումներ

Բոլոր մյուս կարգավորումները ուղղակիորեն ազդում են միայն ելքի վրա:

Տարանջատողտրամադրվում է 3 ձևաչափով՝ բացատ, - (գծիկ), առանց սահմանազատիչ: Ազդում է քարտի համարի ելքային ձևաչափի վրա. մենք այն սահմանում ենք, քանի որ այն ավելի հարմար է ցանկացածի համար: Ըստ դասականների՝ բանկային քարտի վրա ինքնին քարտի համարն առանձնացված է միայն բացատներով։

Քանակ– որոշում է, թե քանի քարտ պետք է ստեղծվի ելքի համար:

Ձևաչափ. Տարբեր կարիքների համար տրամադրվում են մի քանի ձևաչափեր: Ամենապարզը CSV-ն է՝ պարզ տեքստի կամ աղյուսակի ձևաչափով օգտագործման համար: Ոչ մի բարդ բան. Հատուկ կարիքների համար ներդրվել են JSON, SQL, XML ֆորմատներ։

ստուգման նշաններ ԺԱՄԱՆԱԿև CVVպատասխանատու են գործողության ժամկետի և քարտեզի ստեղծման անհրաժեշտության համար (հետևի մասում): Լռելյայն, դրանք ցուցադրվում են, ինչպես նաև օգտագործեք ձեր կարիքներին համապատասխան: Սովորաբար քարտի համարը նույնպես բավարար է, բացի այդ, ժամկետի և ծածկագրի վերաբերյալ ձևաչափի ստուգումներ չեն իրականացվում։

Սրանք այն արժեքներն են, որոնց մասին մենք խոսում ենք։

Կարող եք ավելացնել ձեր սեփական գործառույթը:

Եվ նորից կրկնենք. Կցանկանա՞ք ավելացնել ձեր սեփական հավելումը, թե՞ սխալ եք գտել: Ազատորեն գրեք մեկնաբանություններում։ Միասին մենք կստեղծենք թույն և հարմար լուծում բոլորի համար։ Եվ մինչ մենք օգտագործում ենք այն: Հուսով եմ, որ դուք գիտեք, թե ինչ անել դրա հետ: Եվ հիշեք, սա պարզապես կեղծիք է: Դուք պետք է իմանաք, թե ինչպես կիրառել դրանք:

Թարմացումներ

26 օգոստոսի, 2018 Այժմ, եթե նշեք «Լրիվ անուն» վանդակը, ապա սեփականատիրոջ անունը կստեղծվի քարտերի համար՝ օգտագործելով «ԻՎԱՆ ԻՎԱՆՈՎ» ձևանմուշը: Ցուցակի համար վերցվել են TOP25 արական և իգական անուններ, ինչպես նաև TOP50 ազգանուններ։ Արի փորձենք!

Նոյեմբերի 17, 2018 Շտկվել է սխալ, որի պատճառով որոշ քարտեր չեն մտել պատահական գեներատոր։ «Պատվերով» վանդակը ավելացվել է որպես բոնուս. երբ այն սահմանվում է ըստ ձևանմուշի, ստեղծվում է առաջին պատահական քարտեզը, և դրանից բոլոր քարտեզները հաջորդաբար դասավորվում են ըստ Luhn ալգորիթմի:

Առաջարկվող գեներատորը թույլ կտա արագ և հեշտությամբ տպել անհրաժեշտ քանակությամբ երկկողմանի քարտեր բառերով կամ արտահայտություններով, որոնք օգտագործվում են, օրինակ, օտար լեզուներ սովորելիս:

Օգտվելու կանոններ

Այս ծառայությունը մատուցվում է «Ինչպես ԿԱ»: Ծառայության հեղինակը չի երաշխավորում դրա անսխալ շահագործումը և համապատասխանությունը կոնկրետ նպատակների համար, ինչպես նաև պատասխանատվություն չի կրում ծառայության օգտագործման հետ կապված հնարավոր կորուստների կամ այդպիսի օգտագործման անհնարինության համար:

Առաջարկվող ծառայությունը նախատեսված է միայն ոչ առևտրային օգտագործման համար: Արգելվում է օգտագործել ծառայությունը շահույթ ստանալու նպատակով, ինչպես նաև այնպիսի եղանակով կամ նյութեր օգտագործել, որոնք հակասում են գործող օրենսդրությանը կամ խախտում են որևէ մեկի իրավունքները:

Ծառայության օգտատերը համաձայն է, որ ծառայության միջոցով իր կողմից վերբեռնված սկզբնական նյութերը կարող են պահպանվել և օգտագործվել ծառայության հեղինակի կողմից ցանկացած նպատակով՝ առանց օգտատիրոջը ծանուցելու:

Ծառայությունից օգտվելը նշանակում է օգտատիրոջ լիակատար համաձայնություն այս պայմաններին:

Ինչպես տպել ստացված քարտերը

«Ստեղծել քարտեր» կոճակը սեղմելուց հետո կստեղծվի PDF փաստաթուղթ, որը պետք է տպել տպիչի վրա՝ թղթե քարտեր ստանալու համար։

Եթե ​​ձեր տպիչը աջակցում է կրկնակի տպագրություն, ապա օգտագործեք այս տարբերակը և մի նշեք Manual 2-Sided Printing վանդակը: Այնուհետև ստացված փաստաթղթում էջերը կդասավորվեն հետևյալ հաջորդականությամբ՝ 1-A, 1-B, 2-A, 2-B, 3-A, 3-B:

Եթե ​​ձեր տպիչը չի աջակցում կրկնակի տպագրություն, ապա ընտրեք «Ձեռքով երկկողմանի տպագրություն» վանդակը: Այնուհետև ստացված փաստաթղթում էջերը կդասավորվեն հետևյալ հաջորդականությամբ՝ 1-A, 2-A, 3-A, 3-B, 2-B, 1-B: Տպեք էջերի առաջին կեսը (այս օրինակում՝ էջեր 1-3), այնուհետև տպագրված թերթերի կույտը տեղադրեք տպիչի ելքային սկուտեղի մեջ (առանց առանձին թերթերի հերթականությունը փոխելու) և տպեք էջերի երկրորդ կեսը (էջերը)։ 4-6 այս օրինակում): Անհրաժեշտության դեպքում կատարեք փորձնական տպագրություն կամ դիմեք տպիչի փաստաթղթերին:

Տեխնիկական աջակցություն

Այս ծառայության աշխատանքի վերաբերյալ բոլոր հարցերն ու մեկնաբանությունները խնդրում ենք ուղարկել հեղինակին էլեկտրոնային փոստով (հասցեն էջի վերևում):

Նոր տեղում

>

Ամենահայտնի