Кратчайший код для случайного размещения точек и их соединения

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

  • Input - количество точек (int, может быть жестко закодировано)
  • Вывод - изображение случайно расположенных точек, связанных друг с другом (рисунок)
  • Победитель - кратчайший код
Александр Краггс
источник
1
Разрешено ли мне математические библиотеки? Какие именно библиотеки вы пытаетесь избежать с требованием № 2?
Натан Меррилл
2
Есть ли ограничения для разрешения? Это довольно легко, если вы позволите мне вывести изображение 1x1
Джон Дворжак
3
Когда вы говорите, что нет «математических» библиотек, как насчет языков, в которых PRNG по умолчанию включен в «математические»? Я не хочу писать генератор.
Geobits
1
Так как вы запрещаете библиотечный код, который непосредственно связан с задачей, и эта задача по сути состоит в том, чтобы рисовать случайный сетевой граф, разве не запрещено использование собственных функций рисования графа? Это ограничение далеко не четко определено.
конкурентное
3
@PopeyGilbert Я должен сказать, что я никогда не видел нового пользователя, который бы так реагировал на проблемы со своим вопросом, а также индивидуально проверял каждый ответ и поддерживал список лидеров. Хорошая работа и добро пожаловать в PPGC!
Увлечения Кэлвина

Ответы:

21

Матлаб (22)

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

Предполагается, что n является числом точек, и это выглядит так при n = 10: случайный граф

n=6:

случайный

Explaination

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

Ссылки на документацию

flawr
источник
Никогда не использовал Matlab, поэтому тестирование займет некоторое время - но на картинке все выглядит хорошо! Поздравляю с этим в 22 символов. РЕДАКТИРОВАТЬ - Оказывается, я не могу проверить это, однако, глядя на изображение, оно кажется правильным, поэтому я позволю это. Однако может кто-нибудь еще проверить это, пожалуйста?
Александр Краггс
3
Спасибо =) Вы можете проверить это здесь: octave-online.net Так как octave - это в основном версия 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 точками:

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

С переносами строк и импортом:

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: OP добавил поправку на количество точек. -17 символов :)

Geobits
источник
Ницца! Поздравляю с тем, чтобы быть первым.
Александр Краггс
2
Во-первых, но я уверен, что он не будет самым длинным. Потому что, вы знаете, Java;)
Geobits
3
Я восхищаюсь людьми, которые всегда решают задачу на Java, даже когда безнадежно, я даже поленился бы начать затмение ... так что +1 =)
flawr
1
@Chruncher Да, ява определенно не лучший язык для гольф-кода. Однако это был первый язык, который я выучил, и его довольно легко подобрать. Тем не менее, это также помогло мне стать моим любимым языком.
Александр Краггс,
1
Нет необходимости определять параметр main как final. Вы можете отрезать эти 6 символов
Cruncher
11

Python 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утверждения в нормальном вызове для игры в гольф.
Фалько
Pylab является частью стандартного распределения? Я полагаю, что мы не можем просто импортировать все, что нам нравится. В соответствии с этой метрикой вы можете реализовать что-либо в python с помощью одного оператора import.
Cruncher
Да, это так . Я просто сделал то, что считал действительным. Но я не уверен. И просмотр комментариев показывает, что происходит огромное обсуждение. Как только это выяснится, я буду готов изменить свой код.
Фалько
Несмотря на то, что взгляды участников соревнований на то, какие библиотеки разрешены, меняются день ото дня, PyLab определенно должен быть разрешен.
Александр Краггс,
8

Mathematica 95 87

С некоторой помощью Велисария.

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

п = 5

5


п = 100

Время: 2.082654 сек

100

DavidC
источник
Это проверено, я получил его на работу! Mathematica обычно считается языком, хотя?
Александр Крэггс
1
@PopeyGilbert Конечно, это так. На данный момент в Mathematica есть ~ 750 ответов .
Geobits
Ого, хорошо! Достаточно справедливо <3
Александр Краггс
Мне кажется, это короче и удовлетворяет правиламCompleteGraph[100, VertexCoordinates -> RandomReal[{0, 199}, {100, 2}]]
д-р belisarius
Спасибо, Вы правы. Я подумал, что не смогу победить, поэтому я решил сделать это красиво (VertexSize -> {2,2}. Однако я упустил из виду тот факт, что 100включать его не нужно, и это Input[]необязательно.
DavidC
7

Python 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 (...):

п = 2

n = 10 (выглядит как причудливая трехмерная вещь или что-то в этом роде):

п = 10

n = 100 (похоже, кто-то пошел BLELEEEAARARGHHH с красной ручкой):

п = 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)

Иначе это заняло бы вечность. :П

Ungolfed:

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
Да, потому что некоторые языки имеют очень мало базовых функций и должны импортировать все свои вещи. Если вы думаете, что это не справедливо Geobits, то, пожалуйста, скажите =) Я хочу попытаться сделать это справедливо.
Александр Краггс
@PopeyGilbert Я только что спросил, потому что это не является нормой, и хотел прояснить это, прежде чем я добавлю еще несколько символов из своего кода: D
Geobits
1
Поскольку разрешение должно быть не менее 200x200, вы можете сохранить несколько символов (я думаю, 5), установив x=255и используя его для замены экземпляров 200и 255.
состязательный
5

Р, 66

Это граничный обман, но я все еще думаю, что это в рамках правил. Настройте, загрузив igraphпакет с library(igraph), который можно загрузить из CRAN с install.packages("igraph"). Затем назначьте вход для переменной N. Согласно правилам, они не учитываются в сумме.

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

N = 50

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

Обратите внимание, что этот код также рисует самоподключения. Устранение их (хотя против них нет правил) добавляет 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

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

Мне интересно, если бы в forцикле было меньше символов, applyно я доволен тем, что у меня есть.

shadowtalker
источник
Я приму самоподключение, технически вопрос в том, чтобы провести черту во ВСЕХ точках. Я проверил это и подтвердил это также.
Александр Краггс,
Вы не против стрелок, соединяющих точки? Это сэкономит еще 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:

ILoveQBasic
источник
Ух ты, хороший образ для 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 связанных точек

Образец прогона:

bash-4.3$ time ./line.sh 25

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

Образец вывода:

25 связанных точек

Образец прогона:

bash-4.3$ time ./line.sh 100

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

Образец вывода:

100 связанных точек

manatwork
источник
Проверено и подтверждено. Молодцы!
Александр Краггс
Мне очень жаль, я совсем забыл добавить это в списки лидеров? Я сделаю это сейчас.
Александр Краггс,
4

TCL 161 символ

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

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}}

пример

По умолчанию размер холста в моей системе составляет 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
        }
}       
Kevin
источник
1
Изображение выглядит нормально, к сожалению, мой компьютер не работает, поэтому я протестирую его позже. Поздравляю с использованием такого недооцененного языка.
Александр Краггс,
Только что подтвердил, поздравляю с успешной записью!
Александр Краггс
129
Сергиол,
122
Сергиол
4

[TI-Nspire] Lua - 145 135 130

(Обновлена ​​исправленная версия)

Снимок экрана с 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например)

Adriweb
источник
Пора мне учить Луа!
Бета-распад
1
Это , кажется, страдает от той же ошибки , как fuandon «s Исключено PowerShell ответ и Vlo » ы также удален R ответ: соединить точки в паре, а не каждую точку со всеми другими точками. (Lua так редко встречается на этом сайте. Пожалуйста, исправьте ваш код вместо того, чтобы удалять его.)
manatwork
О, плохо, я скоро это исправлю!
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

Участок с использованием 5 баллов

N = 50

Участок с использованием 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();
        }
    }
}
Zed Coder
источник
Проверено и подтверждено! Когда я проверил количество символов, я использовал полный код и был удивлен, когда он достиг <700 символов ...>. <. В любом случае, поздравляю с успешной записью!
Александр Краггс
Есть ли какой-нибудь ярлык Pens.Tanвместо new Pen(Color.Tan)?
CompuChip
Изменено использование Pens.Tan с сохранением дополнительных 10
Zed Coder
2

HTML / JS, 210, благодаря manatwork

<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

scrblnrd3
источник
Это проверено, я получил его на работу!
Александр Краггс
Вы можете использовать ~~вместо того, m.floorчтобы сохранить 5 байтов
Уильям Барбоза
Сделайте canvasметку самозакрывающуюся и удалить одиночные кавычки idзначения: <canvas id=q />. (Обратите внимание, что вы должны оставить один пробел между последним значением атрибута и самозакрывающимся /.) Кстати, в Firefox отлично работает без m.floor()и ~~.
manatwork
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});}}}

Я хотел бы сказать, что я мог бы удалить Stroke = Brushed.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

WozzeC
источник
4
Поскольку это WPF, он падает примерно на 3 тыс. Баллов за исключение нехватки памяти.
WozzeC
Протестировано и подтверждено, хорошо сделано на C # WPF!
Александр Краггс,
2
Может быть немного закорочен при использовании varпри объявлении переменных.
MarcinJuraszek
Да, в самом деле. Благодарность! Я также смог удалить «this» из «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;

Ungolfed (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;

Примеры:

с (10)

connect_10_points_HPPPL

connect_10_points_HPPPL_2

с (30)

connect_30_points_HPPPL

Цветной графический калькулятор HP Prime оснащен цветным дисплеем с разрешением 320x240 пикселей.

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

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

... все еще жду прибытия оборудования. Обновление о времени выполнения будет следовать.

Сегодня прибыл мой HP Prime. Вот время выполнения для n = 100 на реальном калькуляторе:

среднее время выполнения

Около 0,65 с для n = 100.

Эмулятор работает примерно в 4 раза быстрее (около 0,178 с) на моем ноутбуке Core i5 2410M.

ML
источник
1
Ну, я никогда не слышал об этом языке программирования, но он работал на эмуляторе, так что поздравляю! Я добавил тебя в таблицу лидеров.
Александр Краггс,
Спасибо. Как только у меня будет оборудование, я проверю время выполнения. Эмулятор работает быстрее, чем реальный калькулятор. Но я думаю, что 5-минутный лимит для n = 100 очень щедр для калькулятора.
ML
1

NetLogo, 51 байт

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

Замените 9 с другими константами или переменными по мере необходимости.

NetLogo выход

wyldstallyns
источник
1
Добавлено в таблицу лидеров! Боюсь, я не совсем уверен, как это проверить. Я скачал NetLogo и набрал его в разделе обозревателя, затем попытался установить его в качестве команды пера на графике, но ни один из них не работал. Если бы вы могли дать мне несколько советов, я мог бы подтвердить это =)
Александр Краггс
F'rinstance: перейдите на вкладку «code» и оберните эту строку в функцию, которая начинает «идти» и заканчивается «концом». Затем вы можете добавить кнопку к первой, которая вызывает «идти» и нажмите ее.
wyldstallyns
1
Подтверждено! Прекрасное решение. Здорово, что если вы знаете, что такое черепаха, вы можете читать код, как будто он английский. Почти наверняка самое читаемое решение пока.
Александр Краггс
Ухоженная! Благодарность! Я был в поиске таких вопросов, как этот, который NetLogo направил на решение. По иронии судьбы, я также создаю готовый интерфейс, чтобы убрать это приятное многословие и попытаться сделать NetLogo настоящим претендентом на гольф.
wyldstallyns
1
Эх, я подумала, что это был отличный ответ! Не могу дождаться, чтобы увидеть ваш код Pyth NetLogo, надеюсь, это зрелище!
Александр Краггс