21

Re: King's Bounty

221VOLT написав:
var arr = [];
arr.push([7,8,9]);
arr.push([1,2,3]);
arr.push(["this", "is", "js"]);
console.log(arr);

Це вже цікаво.  А прокоментуй, будь-ласка.

22

Re: King's Bounty

elektryk написав:

Це вже цікаво.  А прокоментуй, будь-ласка.


Коментую за 221V: це називається JavaScript, шоб його чорт побрав...

Подякували: koala, ostap34PHP, ping, LoganRoss, 221VOLT, leofun016

23

Re: King's Bounty

На відміну від мов середнього рівня із безпосередньою роботою з пам'яттю, в JavaScript не можна спершу виділити пам'ять, а потім її заповнити - всю цю роботу за вас виконує інтерпретатор. Треба використовувати стандартні функції і методи JavaScript, на кшталт add.

Подякували: ostap34PHP, Monolith, LoganRoss, 221VOLT4

24

Re: King's Bounty

221VOLT написав:
var arr = [];
arr.push([7,8,9]);
arr.push([1,2,3]);
arr.push(["this", "is", "js"]);
console.log(arr);

Відкравається пустий масив.
заповнюється значеннями вручну.
виводиться на кран.
А як відкрити двомірний масив??
Як заповнити його випадковими значеннями??
Припустимо значенням 00 має бути заповнено 50% клітинок.
01 - 10%
02 - 10%
03 - 10%
04 - 20%

25

Re: King's Bounty

тута воно тупо заповнюється в залежності від ймовірності
гори - 10%
пісок - 10%
ліс - 10%
тупо земля - 20%
тупо вода - 50%

код
<!DOCTYPE html>
<html>
<head>
<title>тут мона бродити</title>
<style>
*{
    margin: 0;
    padding: 0;
}
table {
    border: none;
    border-collapse: collapse;
    margin: 50px auto;
}
td {
    width: 10px;
    height: 10px;
}
.water {
    background-color: blue;
}
.sand {
    background-color: yellow;
}
.forest {
    background-color: green;
}
.ground {
    background-color: brown;
}
.mountain {
    background-color: black;
}
</style>
</head>
<script>

window.onload = function(){
    var surfaces = {
        "mountain": 0.1,
        "sand": 0.2,
        "forest": 0.3,
        "ground":0.5,
        "water":1,
    };

    var width = 64, height = width;

    var map = [];

    for(var x=0; x<width; x++)
    {
        map.push([]);
        for(var y=0; y<height; y++)
        {
            var rand = Math.random();
            var surface = null;
            
            var startProb = surfaces["mountain"];
            for(var i in surfaces)
            {
                if(rand <= surfaces[i])
                {
                    surface = i;
                    break;
                }
                startProb+=rand;
            }
            
            if(surface)
                map[x].push(surface)
        }
    }

    var body = document.getElementsByTagName('body')[0];
    var tbl = document.createElement('table');

    for(var i=0; i<map.length; i++)
    {
        var row = map[i];
        var tr = document.createElement('tr');
        for(var j=0; j<row.length; j++)
        {
            var td = document.createElement('td');
            td.setAttribute("class",row[j]);
            tr.appendChild(td);
        }
        tbl.appendChild(tr);
    }

    body.appendChild(tbl);
}
</script>
<body>

</body>
</html>
картинка

https://image.prntscr.com/image/BGttovlGTTSlCX78_eqwhQ.png

Подякували: 221VOLT, Monolith, leofun013

26

Re: King's Bounty

FakiNyan написав:

тута воно тупо заповнюється в залежності від ймовірності
гори - 10%
пісок - 10%
ліс - 10%
тупо земля - 20%
тупо вода - 50%

код
<!DOCTYPE html>
<html>
<head>
<title>тут мона бродити</title>
<style>
*{
    margin: 0;
    padding: 0;
}
table {
    border: none;
    border-collapse: collapse;
    margin: 50px auto;
}
td {
    width: 10px;
    height: 10px;
}
.water {
    background-color: blue;
}
.sand {
    background-color: yellow;
}
.forest {
    background-color: green;
}
.ground {
    background-color: brown;
}
.mountain {
    background-color: black;
}
</style>
</head>
<script>

window.onload = function(){
    var surfaces = {
        "mountain": 0.1,
        "sand": 0.2,
        "forest": 0.3,
        "ground":0.5,
        "water":1,
    };

    var width = 64, height = width;

    var map = [];

    for(var x=0; x<width; x++)
    {
        map.push([]);
        for(var y=0; y<height; y++)
        {
            var rand = Math.random();
            var surface = null;
            
            var startProb = surfaces["mountain"];
            for(var i in surfaces)
            {
                if(rand <= surfaces[i])
                {
                    surface = i;
                    break;
                }
                startProb+=rand;
            }
            
            if(surface)
                map[x].push(surface)
        }
    }

    var body = document.getElementsByTagName('body')[0];
    var tbl = document.createElement('table');

    for(var i=0; i<map.length; i++)
    {
        var row = map[i];
        var tr = document.createElement('tr');
        for(var j=0; j<row.length; j++)
        {
            var td = document.createElement('td');
            td.setAttribute("class",row[j]);
            tr.appendChild(td);
        }
        tbl.appendChild(tr);
    }

    body.appendChild(tbl);
}
</script>
<body>

</body>
</html>
картинка

https://image.prntscr.com/image/BGttovlGTTSlCX78_eqwhQ.png

Чудово!! Ось за це спасибі!!

Подякували: Monolith1

27

Re: King's Bounty

ой йой, як дупою відчував, алгоритм з вірогідністю невірний

28 Востаннє редагувалося FakiNyan (01.09.2017 21:02:46)

Re: King's Bounty

ось це правильніше буде

Прихований текст
<!DOCTYPE html>
<html>
<head>
<title>тут мона бродити</title>
<style>
*{
    margin: 0;
    padding: 0;
}
table {
    border: none;
    border-collapse: collapse;
    margin: 50px auto;
}
td {
    width: 10px;
    height: 10px;
    transition: transform 0.2s;
}
td:hover {
    transform: scale(3);
    border-radius: 10px;
    box-shadow: 0 0 10px white;
}
.water {
    background-color: lightblue;
    box-shadow: 0 0 10px lightblue;
}
.sand {
    background-color: yellow;
    box-shadow: 0 0 10px yellow;
}
.forest {
    background-color: green;
    box-shadow: 0 0 10px green;
}
.ground {
    background-color: brown;
    box-shadow: 0 0 10px brown;
}
.mountain {
    background-color: black;
    box-shadow: 0 0 10px black;
}
</style>
</head>
<script>

window.onload = function(){
    var surfaces = {
        "mountain": 0.1,
        "sand": 0.2,
        "forest": 0.3,
        "ground":0.5,
        "water":1,
    };

    var width = 64, height = width;

    var map = [];

    for(var x=0; x<width; x++)
    {
        map.push([]);
        for(var y=0; y<height; y++)
        {
            var rand = Math.random();
            var surface = null;
            
            var startProb = 0;
            for(var i in surfaces)
            {
                if(rand>=startProb && rand < surfaces[i])
                {
                    surface = i;
                    break;
                }
                startProb=surfaces[i];
            }
            
            if(surface)
                map[x].push(surface);
        }
    }

    var body = document.getElementsByTagName('body')[0];
    var tbl = document.createElement('table');

    for(var i=0; i<map.length; i++)
    {
        var row = map[i];
        var tr = document.createElement('tr');
        for(var j=0; j<row.length; j++)
        {
            var td = document.createElement('td');
            td.setAttribute("class",row[j]);
            tr.appendChild(td);
        }
        tbl.appendChild(tr);
    }

    body.appendChild(tbl);
}
</script>
<body>

</body>
</html>
Подякували: 221VOLT, Monolith, leofun01, 0xDADA11C74

29 Востаннє редагувалося elektryk (23.09.2017 20:44:06)

Re: King's Bounty

Спасибі тобі,хлопче. Я не перестаю милуватись картинкою.

30 Востаннє редагувалося FakiNyan (23.09.2017 20:25:32)

Re: King's Bounty

та нема за що
тільки це ж просто розставляння тих штучок з певною ймовірністю, без подальшої обробки

31

Re: King's Bounty

FakiNyan написав:

та нема за що
тільки це ж просто розставляння тих штучок з певною ймовірністю, без подальшої обробки

А чи не можна прокоментувати код??

32

Re: King's Bounty

та нашо?

33

Re: King's Bounty

Справа в тому, що я завис на паскалі і погано сприймаю об"єктне програмування (убив би москаля, який його придумав), тому не все розумію.

Подякували: 221VOLT1

34 Востаннє редагувалося elektryk (24.09.2017 07:26:35)

Re: King's Bounty

FakiNyan написав:

ось це правильніше буде

Прихований текст
<!DOCTYPE html>
<html>
<head>
<title>тут мона бродити</title>
<style>
*{
    margin: 0;
    padding: 0;
}
table {
    border: none;
    border-collapse: collapse;
    margin: 50px auto;
}
td {
    width: 10px;
    height: 10px;
    transition: transform 0.2s;
}
td:hover {
    transform: scale(3);
    border-radius: 10px;
    box-shadow: 0 0 10px white;
}
.water {
    background-color: lightblue;
    box-shadow: 0 0 10px lightblue;
}
.sand {
    background-color: yellow;
    box-shadow: 0 0 10px yellow;
}
.forest {
    background-color: green;
    box-shadow: 0 0 10px green;
}
.ground {
    background-color: brown;
    box-shadow: 0 0 10px brown;
}
.mountain {
    background-color: black;
    box-shadow: 0 0 10px black;
}
</style>
</head>
<script>

window.onload = function(){
    var surfaces = {
        "mountain": 0.1,
        "sand": 0.2,
        "forest": 0.3,
        "ground":0.5,
        "water":1,
    };

    var width = 64, height = width;

    var map = [];

    for(var x=0; x<width; x++)
    {
        map.push([]);
        for(var y=0; y<height; y++)
        {
            var rand = Math.random();
            var surface = null;
            
            var startProb = 0;
            for(var i in surfaces)
            {
                if(rand>=startProb && rand < surfaces[i])
                {
                    surface = i;
                    break;
                }
                startProb=surfaces[i];
            }
            
            if(surface)
                map[x].push(surface);
        }
    }

    var body = document.getElementsByTagName('body')[0];
    var tbl = document.createElement('table');

    for(var i=0; i<map.length; i++)
    {
        var row = map[i];
        var tr = document.createElement('tr');
        for(var j=0; j<row.length; j++)
        {
            var td = document.createElement('td');
            td.setAttribute("class",row[j]);
            tr.appendChild(td);
        }
        tbl.appendChild(tr);
    }

    body.appendChild(tbl);
}
</script>
<body>

</body>
</html>

Я звісно вибачаюсь, але в мене виходить якийсь москалізм. Я тупо заклинюю рандом, а в змінну ранд підставляю одиницю var rand = 1 //Math.random(); Здогадайтесь, якого кольору екран я отримую?? Решта підстановок теж видають несподівані результати.

35

Re: King's Bounty

То спробуйте прочитати бодай одну книжку по JS, пан FakiNyan вже аж цілі два місяці книжки по веб макакингу чита і зміг вище наведений код написать.

Подякували: 221VOLT1

36 Востаннє редагувалося FakiNyan (24.09.2017 11:35:24)

Re: King's Bounty

elektryk написав:
FakiNyan написав:

ось це правильніше буде

Прихований текст
<!DOCTYPE html>
<html>
<head>
<title>тут мона бродити</title>
<style>
*{
    margin: 0;
    padding: 0;
}
table {
    border: none;
    border-collapse: collapse;
    margin: 50px auto;
}
td {
    width: 10px;
    height: 10px;
    transition: transform 0.2s;
}
td:hover {
    transform: scale(3);
    border-radius: 10px;
    box-shadow: 0 0 10px white;
}
.water {
    background-color: lightblue;
    box-shadow: 0 0 10px lightblue;
}
.sand {
    background-color: yellow;
    box-shadow: 0 0 10px yellow;
}
.forest {
    background-color: green;
    box-shadow: 0 0 10px green;
}
.ground {
    background-color: brown;
    box-shadow: 0 0 10px brown;
}
.mountain {
    background-color: black;
    box-shadow: 0 0 10px black;
}
</style>
</head>
<script>

window.onload = function(){
    var surfaces = {
        "mountain": 0.1,
        "sand": 0.2,
        "forest": 0.3,
        "ground":0.5,
        "water":1,
    };

    var width = 64, height = width;

    var map = [];

    for(var x=0; x<width; x++)
    {
        map.push([]);
        for(var y=0; y<height; y++)
        {
            var rand = Math.random();
            var surface = null;
            
            var startProb = 0;
            for(var i in surfaces)
            {
                if(rand>=startProb && rand < surfaces[i])
                {
                    surface = i;
                    break;
                }
                startProb=surfaces[i];
            }
            
            if(surface)
                map[x].push(surface);
        }
    }

    var body = document.getElementsByTagName('body')[0];
    var tbl = document.createElement('table');

    for(var i=0; i<map.length; i++)
    {
        var row = map[i];
        var tr = document.createElement('tr');
        for(var j=0; j<row.length; j++)
        {
            var td = document.createElement('td');
            td.setAttribute("class",row[j]);
            tr.appendChild(td);
        }
        tbl.appendChild(tr);
    }

    body.appendChild(tbl);
}
</script>
<body>

</body>
</html>

Я звісно вибачаюсь, але в мене виходить якийсь москалізм. Я тупо заклинюю рандом, а в змінну ранд підставляю одиницю var rand = 1 //Math.random(); Здогадайтесь, якого кольору екран я отримую?? Решта підстановок теж видають несподівані результати.

if(rand>=startProb && rand < surfaces[i])
                {
                    surface = i;
                    break;
                }
                startProb=surfaces[i];

воно проходить по кожному surface і перевіряє, чи значення rand не більше ймовірності, котра присвоєна до поточного surface, і чи значення rand більше, або дорівнює тій вірогідності, котра було перед цим.
Тобто, якщо вірогідності поверхнь йдуть одна за одною ось так
0.2 земля (20%)
0.6 болото (40%)
1 поля ганджубасу (40%)

то алгоритм працює так
1. Отримуємо значення rand, нехай воно буде 0.3
2. Проходимось циклом по вірогідностям
2.1. спочатку йде земля з її 0.2, а попередня вірогідність дорівнює нулю
2.2. перевіряємо, чи 0.3 більше, або дорівнює нулю, і чи воно менше 0.2? 0.3 не потрапляє в цей діапазон, йдемо далі, але спочатку запам'ятовуємо ймовірність, котру ми тільки що отримали (0.2 - земля)
2.3. тепер попередня ймовірність дорівнює 0.2, а поточна ймовірність дорівнює 0.6 (болото), 0.3 більше або дорівнює 0.2 ? так. 0.3 менше 0.6 ? так, одже у нас виходить болото

А коли ви ставите одиницю, то нічого не повинно ставитись, по ідеї. Тому що найбільша ймовірність з масиву surfaces дорівнює 1, а алгоритм працює так, що він порівнює, чи не більше значення rand ймовірності поточної поверхні. Тобто, ставитись якась поверхня буде тільки тоді, коли значення rand менше за ймовірність поточної поверхні. А коли максимальна можлива ймовірність дорівнює 1, і значення rand теж дорівнює 1, то ця умова ніколи не буде виконуватись.

37

Re: King's Bounty

Інші підстановки теж видють москальські результати.
    Ось вони:   
        "mountain": 0.1, //гора yellow
        "sand": 0.2,     //песок green
        "forest": 0.3,   //лес brown
        "ground": 0.5,    //земля lightblue
        "water": 1,       //Вода black
В коментарях дані реальні кольори. Як наблизити їх до дійсності??

38

Re: King's Bounty

А загалом я згоден з Трусиками. Цей джаваскріпт напрочуд москальський.

39 Востаннє редагувалося FakiNyan (24.09.2017 18:41:42)

Re: King's Bounty

javascript - американський
я хз, про що то ви, в мене все робе
кольори записані між

 <style> та </style>

до дійсності мона наблизити записуючи їх в шістнадцяткові хвормі або через rgb

40 Востаннє редагувалося elektryk (24.09.2017 19:24:26)

Re: King's Bounty

FakiNyan написав:

javascript - американський
я хз, про що то ви, в мене все робе
кольори записані між

 <style> та </style>

до дійсності мона наблизити записуючи їх в шістнадцяткові хвормі або через rgb

Гаразд, хай буде javascript американським, тільки не залищайте мене з ним на одинці.

Подякували: 221VOLT1