Найкоротший код для випадкового розміщення точок і з'єднання їх


26

Завдання

Це досить проста задача кодування, все, що має зробити ваша програма, - це розмістити крапку на полотні (або альтернативу іншою мовою кодування) та підключити її до всіх уже розміщених крапок. Ваша програма повинна взяти за один вхід кількість точок, які слід розмістити, та вивести якийсь дисплей із підключеними точками. Приклад

Вимоги

  • Я повинен мати змогу запустити його, а це означає, що він повинен мати компілятор / інструмент для запуску або в Інтернеті, або для загального доступу для завантаження.
  • Вам дозволяється використовувати будь-яку бібліотеку, створену до цього завдання, доки вона не була розроблена з єдиною метою вирішення цього завдання.
  • Це найкоротше завдання коду, що означає символи. Коментарі, код, що змінює колір (для прискіпливості), і бібліотеки будуть ігноруватися.
  • Ваша відповідь повинна бути унікальною, не крадіть код інших народів, скорочуйте його на кілька символів і переставте його.
  • Він повинен бути здатний запуститись менше ніж за 5 хвилин для значень 5 і 100. Він також повинен використовувати роздільну здатність не менше 200 * 200 і розміщувати кожну крапку у випадковому місці на полотні, використовуючи нетривіальний розподіл.

Поточна таблиця лідерів

Flawr        - Matlab        - 22  - Confirmed
Falko        - Python 2      - 41  - Confirmed
Wyldstallyns - NetLogo       - 51  - Confirmed 
Ssdecontrol  - R             - 66  - Confirmed
David        - Mathematica   - 95  - Confirmed
ILoveQBasic  - QBasic        - 130 - Confirmed
Adriweb      - TI-Nspire Lua - 145 - Confirmed
Manatwork    - Bash          - 148 - Confirmed
Doorknob     - Python 2      - 158 - Confirmed
Kevin        - TCL           - 161 - Confirmed
M L          - HPPPL         - 231 - Confirmed
Manatwork    - HTML/JS       - 261 - Confirmed - Improved code of Scrblnrd3
Makando      - C#            - 278 - Confirmed
Scrblnrd3    - HTML/JS       - 281 - Confirmed
Geobits      - Java          - 282 - Confirmed

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

TL; DR

  • Введення - Кількість крапок (int, може бути жорстко закодовано)
  • Вихід - зображення випадково розміщених крапок, всі з'єднані між собою (графічне)
  • Переможець - найкоротший код

1
Чи дозволено мені математичні бібліотеки? Яких саме бібліотек ви намагаєтеся уникати з вимогою №2?
Натан Меррілл

2
Чи є обмеження для вирішення? Це досить просто, якщо ви дозволите мені вивести зображення 1х1
Джон Дворак

3
Якщо ви скажете, що немає "математичних" бібліотек, що робити з мовами, де PRNG за замовчуванням включений у "математику"? Я не хочу писати генератор.
Геобіць

1
Оскільки ви забороняєте код бібліотеки, який безпосередньо стосується завдання, і це по суті полягає в тому, щоб намалювати випадковий мережевий графік, чи не використання вроджених функцій малювання графіків також заборонено? Це обмеження далеко не чітко визначене.
змагальний

3
@PopeyGilbert Треба сказати, я ніколи не бачив, щоб новий користувач настільки відповідав на питання з їх питанням, а також індивідуально перевіряв кожну відповідь та підтримував таблицю лідерів. Гарної роботи та ласкаво просимо до PPGC!
Захоплення Кальвіна

Відповіді:


21

Матлаб (22)

gplot(ones(n),rand(n))

Припустимо, що n - кількість точок, і це виглядає приблизно при n = 10: random graph

n=6:

random

Пояснення

gplotце команда для побудови графіків. Перший аргумент - це n x nматриця захворюваності (очевидно, повна). Другий аргумент має бути n x 2матрицею з координатами точок, але не має значення, якщо другий вимір більший за 2, тому я просто генерую n x nматрицю випадкових значень (що на 2 символи коротше, ніж генерувати n x 2матрицю).

Посилання на документацію


Ніколи не використовував Matlab, тому знадобиться хвилина для перевірки - Але з зображення це виглядає нормально! Вітаю, як це зробити в 22 символах. EDIT - Виявляється, я не можу це перевірити, проте, дивлячись на зображення, воно здається правильним, тому я дозволю це. Однак хтось ще може це перевірити?
Олександр Креггс

3
Дякую =) Ви можете протестувати його тут: octave-online.net Оскільки октава - це в основному версія з відкритим кодом MatLab.
flawr

27

Ява: 318 282 265

Тому що, ви знаєте, Java:

class M{public static void main(String[]a){new Frame(){public void paint(Graphics g){int i=0,j,d=640,n=25,x[]=new int[n],y[]=x.clone();for(setSize(d,d);i<n;i++)for(j=0,x[i]=(int)(random()*d),y[i]=(int)(random()*d);j<i;g.drawLine(x[i],y[i],x[j],y[j++]));}}.show();}}

Це просто простий цикл, який робить випадкові точки і малює лінії між поточною точкою та всіма попередніми.

Приклад з 25 крапками:

enter image description here

З перервами на лінії та імпортом:

import java.awt.*;
import static java.lang.Math.*;

class M{
    public static void main(String[]a){
        new Frame(){
            public void paint(Graphics g){
                int i=0,j,d=640,n=25,x[]=new int[n],y[]=x.clone();
                for(setSize(d,d);i<n;i++)
                    for(j=0,x[i]=(int)(random()*d),y[i]=(int)(random()*d);
                        j<i;
                        g.drawLine(x[i],y[i],x[j],y[j++]));
            }
        }.show();
    }
}

Редагувати: Оскільки ми не враховуємо імпорт, я імпортував ще кілька речей, щоб зберегти деякі символи пізніше.

Редагування 2: ОП додало припуск на жорстке кодування кількості крапок. -17 символів :)


Приємно! Поздоровлення про те, що є першим.
Олександр Креггс

2
По-перше, але я впевнений, що це не буде найкоротшим з дальнього пострілу. Тому що, знаєте, Ява;)
Геобіт

3
Я захоплююсь людьми, які завжди вирішують завдання на Яві, навіть коли безнадійно, я б навіть лінувався починати затемнення ... так +1 =)
недолік

1
@Chruncher Так, ява, безумовно, не найкраща мова для кодового гольфу. Однак це була перша мова, яку я навчився, і її досить легко підібрати. Однак це добре тримало мене, і це особисто моя улюблена мова.
Олександр Креггс

1
Не потрібно визначати параметр main як кінцевий. Ви можете відрізати цих 6 символів
Cruncher

11

Пітон 2 - 41 35

Після імпорту деяких бібліотек, як це дозволено для цього завдання

from pylab import rand as r
from pylab import plot as p
from itertools import product as x
from itertools import chain as c

ми можемо побудувати деяку кількість з'єднаних точок лише з одним рядком коду:

X=r(5,2);p(*zip(*c(*list(x(X,X)))))

(Скріншот був створений з 10 балами.)


[Посилаючись на видалений коментар:] Я знаю, але тут "бібліотеки будуть проігноровані". Якщо ні, то я б точно його реалізував інакше. Використання цих бібліотек не зберігає достатньо символів для виправдання importтверджень у звичайному виклику гольфу коду.
Фалько

є частиною стандартного розподілу пілабу? Я б міг уявити, що ми не можемо просто імпортувати все, що нам подобається. Під цим показником ви можете реалізувати що-небудь у python за допомогою одного заяви імпорту.
Cruncher

Так це так . Я просто зробив те, що вважав, що це буде справедливо. Але я не впевнений. А дивлячись на коментарі, видно велику дискусію. Як тільки це з’ясується, я б готовий скорегувати свій код.
Фалько

Хоча цей погляд на змагання щодо того, які бібліотеки дозволені, здається, змінюється з дня на день, PyLab, безумовно, має бути дозволений.
Олександр Креггс

8

Mathematica 95 87

З деякою допомогою від Велізарія.

CompleteGraph[n, VertexSize -> {2, 2},
VertexCoordinates -> Table[RandomInteger[{0, 199}, 2], {n}]]

n = 5

5


n = 100

Час проведення: 2.082654 сек

100


Це перевірено, я змусив його працювати! Математика, як правило, вважається мовою?
Олександр Креггс

1
@PopeyGilbert Звичайно, це так. Наразі в Mathematica є ~ 750 відповідей .
Геобіц

О, ух, гаразд! Досить справедливо <3
Олександр Креггс

Подумайте, це коротше і відповідає правиламCompleteGraph[100, VertexCoordinates -> RandomReal[{0, 199}, {100, 2}]]
доктор belisarius,

Спасибі, ви праві. Я подумав, що не можу перемогти, тому подумав, що зробить це досить (VertexSize -> {2,2}. Я все ж пропустив той факт, який 100не потрібно було включати, і це Input[]було необов’язково.
DavidC

7

Пітон 2, 158

Оператори імпорту, не включені до числа символів, як зазначено в питанні ("бібліотеки будуть ігноровані").

from PIL import Image,ImageDraw
from random import randint

s=[(randint(0,200),randint(0,200))for _ in range(int(input()))]
i=Image.new('RGB',(200,200))
[ImageDraw.Draw(i).line((p,q),255)for p in s for q in s]
i.show()

Приклади виходів:

n = 2 (...):

n=2

n = 10 (виглядає як химерна 3d річ чи щось):

n=10

n = 100 (схоже, що хтось пішов BLELEEEAARARGHHH червоною ручкою):

n=100

n = 500, 1000, 10000 (працює приблизно за 1,5 секунди, 5-6 секунд та 3,5 хвилини відповідно):

Примітка: 10000 балів було виконано з дещо оптимізованою версією, яка змінила рядок 3 (не включаючи імпорт) до цього:

d=ImageDraw.Draw
for p in s:
  for q in s:d.line((p,q),255)

Інакше це зайняло б назавжди. : P

Безголівки:

from PIL import Image, ImageDraw
from random import randint
point_count = int(input())
image_size = 200
points = [(randint(0, image_size), randint(0, image_size)) for _ in range(point_count)]
image = Image.new('RGB', (200, 200))
draw = ImageDraw.Draw(image)
for start_point in points:
    for end_point in points:
        draw.line((start_point, end_point), 255)
image.show()

1
Вітаю вас за найменшого учасника! Подобається ваш коментар на n = 100. Найкраще можна поставити image.new та image_size до 800. Може виглядати менш дивно =)
Олександр Креггс

@PopeyGilbert Отже, я можу видалити заяви про імпорт із моїх? Я припускав, що "ігнорувати бібліотеки" означало, що сама бібліотека не рахується (як зазвичай).
Геобіц

Так, оскільки деякі мови мають дуже мало базових функцій, і їм доведеться імпортувати всі свої речі. Якщо ви вважаєте, що це не справедливо Geobits, то будь ласка, скажіть =) Я хочу спробувати зробити це справедливим.
Олександр Креггс

@PopeyGilbert Я просто запитав, тому що це не норма, і хотів очистити її, перш ніж я нарізав ще декілька символів з мого коду: D
Geobits

1
Оскільки роздільна здатність має бути не менше 200x200, ви можете зберегти кілька символів (я думаю, 5), встановивши x=255та використовуючи її для заміни екземплярів 200та 255.
змагальний

5

R, 66

Цей підступ на кордонах, але я все ще думаю, що це в межах правил. Налаштуйте, завантаживши igraphпакет із library(igraph), який можна завантажити із CRAN install.packages("igraph"). Потім призначте вхід змінній N. Відповідно до правил, вони не зараховуються до загальної суми.

G=graph.adjacency(matrix(1,N,N),"un")
plot(G,layout=layout.random)

N = 50

enter image description here

Зауважте, що цей код також здійснює самостійне з'єднання. Усуваючи їх (хоча проти них немає ніяких правил), додається 6 символів:

G=graph.adjacency(matrix(1,N,N),"un",diag=F)
plot(G,layout=layout.random)

R, 141

Це добросовісне рішення в базі R:

p=replicate(2,runif(N))
g=as.matrix(expand.grid(1:N,1:N))
plot.new()
apply(g,1,function(i) segments(p[i[1],1],p[i[1],2],p[i[2],1],p[i[2],2]))

хоча вам все одно доведеться увійти N вручну.

N = 50

enter image description here

Мені цікаво, чи в forциклі буде менше символів, applyале я задоволений тим, що у мене є.


Я прийму самоз'єднання, технічно питання полягає в тому, щоб намалювати лінію ВСІХ балів. Я перевірив це і підтвердив.
Олександр Креггс

Ви не заперечуєте, щоб стрілки з'єднували точки? Це дозволить зберегти ще 5, усунувши ,"un"в кінці першого рядка.
shadowtalker

Якщо ви не заперечуєте, я думаю, що ми повинні зберігати це, так що це повинні бути лінії, що з'єднують кожну з точок. Таким чином відповідь буде виглядати однаково у кожній з відповідей.
Олександр Креггс

5

QBasic або QuickBasic, 130 символів

SCREEN 1:RANDOMIZE:N=10:DIM X(100),Y(100):FOR I=1 TO N:X(I)=RND*320:Y(I)=RND*200:FOR J=1 TO I:LINE(X(I),Y(I))-(X(J),Y(J)):NEXT J,I

Варіації коду

  • Якщо ви не хочете, щоб вас запросили насіння, замініть RANDOMIZE з RANDOMIZE TIMER.
  • Якщо ви хочете , щоб запит на N, замінити N=10з INPUT NабоINPUT "N";N .

Проба працює

Для N=5, протестований з QBasic 1.1, що працює на DOSBox 0.74:

Для N=100, протестований з QBasic 1.1, що працює на DOSBox 0.74:


О, вау, приємне зображення для N = 5! Любіть, що це пентаграма, коли насіння 42. Випробувано та підтверджено.
Олександр Креггс

4

Bash + ImageMagick: 148 символів

c=()
while((i++<$1)); do
p=$[RANDOM%200],$[RANDOM%200]
c+=($p)
for e in ${c[@]};do
d+="line $p $e"
done
done
convert -size 200x200 xc: -draw "$d" x:

Проба зразка:

bash-4.3$ time ./line.sh 5

real    0m5.256s
user    0m0.137s
sys     0m0.017s

Вибірка зразка:

5 connected points

Проба зразка:

bash-4.3$ time ./line.sh 25

real    0m3.043s
user    0m0.574s
sys     0m0.023s

Вибірка зразка:

25 connected points

Проба зразка:

bash-4.3$ time ./line.sh 100

real    0m5.662s
user    0m11.156s
sys     0m0.076s

Вибірка зразка:

100 connected points


Випробувано та підтверджено. Молодці манастирські роботи!
Олександр Креггс

Мені дуже шкода, чи я зовсім забув додати це до лідерів? Я зараз це зроблю.
Олександр Креггс

4

161 символів TCL

Ясна річ не збирається перемагати, але перемагає декілька інших представлених тут, і я думаю, що вона добре використовує дуже занижену мову.

for {set i 0} {$i<10} {incr i} {lappend l [expr rand()*291] [expr rand()*204]}
pack [canvas .c]
foreach {x y} $l {foreach {w z} $l {.c create line $x $y $w $z}}

Example

Розмір полотна за замовчуванням у моїй системі виглядає як 291x204. Не впевнений чому, але використовуючи це, економиться 13 символів.

Досить швидко, 400 балів за <5 секунд, 500 за ~ 10 с. Розмір і точки можна масштабувати довільно, а кольори та стилі ліній можна змінювати, звичайно, за символами. Без гольфу та використання змінних, щоб зробити їх чіткішими та простішими масштабування та кольори:

set n 20
set width 500
set height 500
set bg_color black
set line_color white
for {set i 0} {$i < $n} {incr i} {
        lappend points [expr rand() * $width] [expr rand() * $height]
}
canvas .c -width $width -height $height -background $bg_color 
pack .c
foreach {x1 y1} $points {
        foreach {x2 y2} $points {
                .c create line $x1 $y1 $x2 $y2 -fill $line_color
        }
}       

1
Зображення здається прекрасним, на жаль, мій комп'ютер не працює, тому я перевіряю його пізніше. Вітаємо вас за використання такої заниженої мови.
Олександр Креггс

Тільки що це підтвердили, вітаємо з успішним вступом!
Олександр Креггс



4

[TI-Nspire] Луа - 145 135 130

(Оновлена ​​фіксована версія)

Screenshot with n=10

"Імпорт" math.random як "r", по-перше, дозволено: r=math.random

Фактичний код:

function on.paint(g)t={}for b=1,2*n-1,2 do t[b]=r(318)t[b+1]=r(212)for c=1,b-1,2 do g:drawLine(t[b],t[b+1],t[c],t[c+1])end end end

Примітка: Цей код працює на калькуляторах TI-Nspire (TI додав сценарії Lua до останніх ОС цієї платформи, з рівним API, що дозволяє користувачам графікувати речі тощо.)
Це також можна спробувати в Інтернеті (просто стерти демо-скрипт і додати шахту, n=10наприклад)


Час мені навчитися Луа!
Бета-розпад

1
Це , здається, страждає від тієї ж помилки , як fuandon «s Виключено PowerShell відповідь і Vlo » и також віддалений R відповідь: з'єднати точки в парі, а не кожного точку з усіма іншими точками. (Lua на цьому сайті так рідкий. Виправте свій код замість того, щоб видаляти його.)
manatwork

Ой, моє погано - я це скоро виправлю!
Adriweb

Там ми їдемо, дякуємо, що повідомили мені :)
Adriweb

Це перевірено та підтверджено! Молодці з використанням Lua.
Олександр Креггс

3

C # Windows форми, 268

static void k(int n,int s){var f=new Form{Height=s+50,Width=s+25};f.Paint+=(u,v)=>{var r=new Random();var p=new Point[n];while(n>0)p[--n]=new Point(r.Next(s),r.Next(s));foreach(var a in p)foreach(var b in p)f.CreateGraphics().DrawLine(Pens.Tan,a,b);};f.ShowDialog();}

N = 5

Plot using 5 points

N = 50

Plot using N=50

Повний код наведено нижче

using System;
using System.Drawing;
using System.Windows.Forms;

namespace WindowsFormsApplication2
{
    static class Program
    {
        static void Main()
        {
            k(50, 200);
        }
        static void k(int n, int s)
        {
            var f = new Form {Height = s + 50, Width = s + 25};
            f.Paint += (u, v) =>
            {
                var r = new Random();
                var p = new Point[n];
                while (n > 0)
                    p[--n] = new Point(r.Next(s), r.Next(s));
                foreach (var a in p)
                    foreach (var b in p)
                        f.CreateGraphics().DrawLine(Pens.Tan, a, b);
            };
            f.ShowDialog();
        }
    }
}

Випробувано та підтверджено! Перевіривши кількість символів, я використав повний код і здивувався, коли він дорівнював <700 символів ...>. <. У будь-якому випадку, вітаємо з успішним вступом!
Олександр Креггс

Не існує якоїсь - то ярлик , як Pens.Tanзамість new Pen(Color.Tan)?
CompuChip

Змінено на використання Pens.Tan, заощадивши додаткові 10
Zed Coder

2

HTML / JS, 210, завдяки манатурності

<canvas id=q /><script>c=q.getContext("2d");r=Math.random;e=prompt(a=[]);for(i=0;i<e;i++){a[i]={x:r()*300,y:r()*150};for(j in a)c.beginPath()+c.moveTo(a[i].x,a[i].y)+c.lineTo(a[j].x,a[j].y)+c.stroke()}</script>

JSFiddle


Це перевірено, я змусив його працювати!
Олександр Креггс

Ви можете використовувати ~~замість цього, m.floorщоб зберегти 5 байт
Вільям Барбоса

Зробіть canvasмітку самозакривних і видалити одиничні лапки idзначення: <canvas id=q />. (Зверніть увагу, що вам потрібно залишити один простір між останнім значенням атрибута та самозакриттям /.) BTW, у Firefox відмінно працює без m.floor()і ~~.
манастирство

219 символів: jsfiddle.net/e866azzs/5
manatwork

Перший раз, коли я спробував jsfiddle manatwork, я подумав, що для поля попередження потрібен пароль! Я був здивований. Наскільки дурна людина може бути. Я вважаю, що це досить відрізняється від того, щоб відповіді інших осіб вимагали іншого місця в раді лідерів. Чи думають інші люди, що це досить різне?
Олександр Креггс

2

C # WPF 306 296

partial class W:Window{public W(){InitializeComponent();int x=5,i=0,j,z=200;int[]f=new int[x],s=new int[x];var r=new Random();var X=new Grid();AddChild(X);for(;i<x;i++){f[i]=r.Next(z);s[i]=r.Next(z);for(j=i;j>=0;)X.Children.Add(newLine(){X1=s[j],Y1=f[j--],X2=s[i],Y2=f[i],Stroke=Brushes.Red});}}}

Я хотів би сказати, що я міг видалити «Інсульт» = «Почесаний». Але, на жаль, це означає, що я малюю прозорі лінії, і я здогадуюсь, що це насправді не буде рахувати. : PI також може голити пару байтів, просто створивши сітку в поданні XAML. Але це здавалося несправедливим, тому я зняв XAML, щоб стати порожнім полотном. (Я не вважаю XAML байтами ...)

partial class W:Window
{
    public W()
    {
        InitializeComponent();
        int x=5,i=0,j,z=200;
        int[]f=new int[x],s=new int[x];
        var r = new Random();
        var X = new Grid();
        AddChild(X);
        for (;i<x;i++)
        {
            f[i]=r.Next(z);
            s[i]=r.Next(z);
            for (j=i;j>=0;)
                X.Children.Add(new Line()
                {
                    X1 = s[j],
                    Y1 = f[j--],
                    X2 = s[i],
                    Y2 = f[i],
                    Stroke = Brushes.Red
                });
        }
    }
}

XAML

<Window x:Class="W"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
</Window>

5

5

100

100


4
Оскільки це WPF, він вийде з ладу близько 3k балів за виключенням пам'яті.
WozzeC

Випробуваний і підтверджений, молодець, зробивши це в C # WPF!
Олександр Креггс

2
Можна трохи скоротити, використовуючи varпри оголошенні змінних.
MarcinJuraszek

Так, справді. Спасибі! Я також зміг видалити "це" з "this.AddChild".
WozzeC

1

HPPPL, 231 220

(Мова програмування HP Prime для калькулятора кольорового графічного зображення HP Prime)

гольфу вниз. 11 менше знаків, малюючи всі можливі нові лінії відразу після кожного створення нового пункту. Лише дві вкладені петлі замість попередніх трьох.

export c(n) begin rect();local g,h;a:=makemat(0,n,2);for g from 1 to n do a(g,1):=ip(random(1,320));a(g,2):=ip(random(1,240));if g>1 then for h from 1 to g-1 do line_p(a(h,1),a(h,2),a(g,1),a(g,2));end;end;end;freeze;end;

Безголів (270 символів):

export randomnet(n)
begin
rect();
local g,h;
a:=makemat(0,n,2);
for g from 1 to n do
  a(g,1):=ip(random(1,320));
  a(g,2):=ip(random(1,240));
    if g>1 then
      for h from 1 to g-1 do
        line_p(a(h,1),a(h,2),a(g,1),a(g,2));
      end;
    end;
end;
freeze;
end;

приклади:

c (10)

connect_10_points_HPPPL

connect_10_points_HPPPL_2

c (30)

connect_30_points_HPPPL

Калькулятор кольорового графічного зображення HP Prime має кольоровий дисплей розміром 320x240 пікселів.

введіть тут опис зображення

Емулятор, який також працює з комплектом підключення, доступний на веб-сайті HP або тут: http://www.hp-prime.de/uk/category/6-downloads

... все ще чекаю, коли обладнання надійде. Оновлення часу виконання буде наступним.

Сьогодні прийшов мій HP Prime. Ось час виконання n = 100 на фактичному калькуляторі:

середній час виконання

Приблизно 0,65 с для n = 100.

Емулятор приблизно в 4 рази швидший (приблизно 0,178 с) на моєму ноутбуці Core i5 2410M.


1
Ну, я ніколи навіть не чув про цю мову програмування, але він працював на емуляторі, тож вітаю! Я додав вас до таблиці лідерів.
Олександр Креггс

Спасибі. Як тільки у мене з’явиться обладнання, я перевірю час виконання. Емулятор швидший, ніж фактичний калькулятор. Але я вважаю, що обмеження на 5 хвилин для n = 100 є дуже щедрим для калькулятора.
ML

1

NetLogo, 51 байт

crt 9 [create-links-with other turtles fd random 9]

Замініть 9 на інші константи або змінні за потребою.

Вихід NetLogo


1
Додано до лідерів! Боюсь, я не зовсім впевнений, як це перевірити. Я завантажив NetLogo і ввів його в розділ спостерігачів, потім спробував встановити його як команду ручки на графіку, і жодна з них не функціонувала. Якщо ви можете дати мені кілька покажчиків, я зможу це підтвердити =)
Олександр Креггс

Основна суть: перейдіть на вкладку "код" і оберніть цей рядок у функції, яка починається "йти" і зупиняється на "закінчувати". Тоді ви можете додати кнопку до першої, яка викликає "йти", і натиснути її.
wyldstallyns

1
Підтверджено! Прекрасне рішення. Чудово, як якщо ви знаєте, що таке черепаха, ви зможете прочитати код, як це англійська мова. Майже напевно найбільш читабельне рішення поки.
Олександр Креггс

Акуратно! Спасибі! Я розглядав такі питання, як NetLogo спрямований на вирішення. За іронією долі, я також будую передній кінець, щоб зняти це приємне багатослів’я, щоб спробувати зробити NetLogo справжнім суперником у гольф.
wyldstallyns

1
Е, я подумав, що це все-таки відмінна відповідь! Не можете зачекати, щоб побачити ваш Pyth NetLogo код, сподіваємось, це буде видовище!
Олександр Креггс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.