This is a read-only archive of the old Scratch 1.x Forums.
Try searching the current Scratch discussion forums.

#2751 2011-02-11 16:24:57

bharvey
Scratcher
Registered: 2008-08-10
Posts: 1000+

Re: BYOB 3 - Discussion Thread

14God wrote:

Let me clarify, the name was meant to be 'one for God' It wasn't me calling myself God  wink  My Sister thought that would be confusing & I guess I shoulda believed her  smile

No, I got it -- my point wasn't that you're claiming to be a god (age 14, I suppose that would be  smile  ), but rather that the claim you are making (being godly, I guess you could say) is no more supported by evidence than EvilGenius's claim to be evil.

And the meta-point is that I don't want to be in the business of making such decisions.  They're doing something along those lines at the Scratch wiki; not everyone gets to have an account there, and it takes a fair amount of effort and grief for the people running it.

[/offtopic]

I like your project, but it's even better, imho, if you unclick the atomic checkbox in the lightning block.


http://cs.berkeley.edu/~bh/sig5.png

Offline

 

#2752 2011-02-11 17:05:01

14God
Scratcher
Registered: 2008-11-14
Posts: 100+

Re: BYOB 3 - Discussion Thread

bharvey wrote:

I like your project, but it's even better, imho, if you unclick the atomic checkbox in the lightning block.

Yeah I prefer it that way too... actually I'm not sure why I left it atomic.


http://cs.berkeley.edu/~bh/sig4.png
Logic and reason have led me to atheism... but I'm stuck with the name  tongue

Offline

 

#2753 2011-02-12 13:05:24

xly
Scratcher
Registered: 2010-04-17
Posts: 100+

Re: BYOB 3 - Discussion Thread

@ bharvey, Jens and other byobers...

The following link is for a project using the new experimental Byob features to build a large background map/battlefield typical of applications like strategy/war/adventure/rpg games. The result is impressive, thanks to the genial parents of Byob !

http://www.xleroy.net/ByobTuto/New/Thumbnails.html

Offline

 

#2754 2011-02-12 14:13:16

14God
Scratcher
Registered: 2008-11-14
Posts: 100+

Re: BYOB 3 - Discussion Thread

Oops, I didn't believe that circular inheritance would do anything wrong so I tried it and instantly BYOB froze and slowed down my whole computer and it shot up to using almost 200mb of RAM

Last edited by 14God (2011-02-12 14:27:05)


http://cs.berkeley.edu/~bh/sig4.png
Logic and reason have led me to atheism... but I'm stuck with the name  tongue

Offline

 

#2755 2011-02-12 14:31:39

14God
Scratcher
Registered: 2008-11-14
Posts: 100+

Re: BYOB 3 - Discussion Thread

@ xly I liked your scrolling map so much I decided to remix it a bit by adding mouse scrolling.

https://sites.google.com/site/byobimages/_/rsrc/1297538907443/home/mousescroll/MouseScrolling.JPG

Last edited by 14God (2011-02-12 14:32:46)


http://cs.berkeley.edu/~bh/sig4.png
Logic and reason have led me to atheism... but I'm stuck with the name  tongue

Offline

 

#2756 2011-02-12 15:27:26

xly
Scratcher
Registered: 2010-04-17
Posts: 100+

Re: BYOB 3 - Discussion Thread

@ 14God

"@ xly I liked your scrolling map so much I decided to remix it a bit by adding mouse scrolling. "

It is a good improvement.

xly

Offline

 

#2757 2011-02-12 15:44:27

bharvey
Scratcher
Registered: 2008-08-10
Posts: 1000+

Re: BYOB 3 - Discussion Thread

14God wrote:

Oops, I didn't believe that circular inheritance would do anything wrong so I tried it and instantly BYOB froze and slowed down my whole computer and it shot up to using almost 200mb of RAM

Sounds like a bug!  I won't try to reproduce it; when BYOB does stuff like that it overheats my computer, which shuts itself down!  sad

Of course it shouldn't let you set up a circular inheritance.


http://cs.berkeley.edu/~bh/sig5.png

Offline

 

#2758 2011-02-12 16:30:05

14God
Scratcher
Registered: 2008-11-14
Posts: 100+

Re: BYOB 3 - Discussion Thread

bharvey wrote:

Of course it shouldn't let you set up a circular inheritance.

I actually did it with the set block which apparently allows you to set a parent mid execution.


http://cs.berkeley.edu/~bh/sig4.png
Logic and reason have led me to atheism... but I'm stuck with the name  tongue

Offline

 

#2759 2011-02-12 16:57:52

bharvey
Scratcher
Registered: 2008-08-10
Posts: 1000+

Re: BYOB 3 - Discussion Thread

14God wrote:

I actually did it with the set block which apparently allows you to set a parent mid execution.

Thanks for the detail, which will help debugging.  But it still shouldn't let you!  tongue

EDIT: Let you make it circular, I mean.  It should let you change parents in some benign way.

Last edited by bharvey (2011-02-12 16:58:35)


http://cs.berkeley.edu/~bh/sig5.png

Offline

 

#2760 2011-02-12 18:23:17

Pecola1
Scratcher
Registered: 2010-09-06
Posts: 1000+

Re: BYOB 3 - Discussion Thread

bharvey wrote:

ssss wrote:

Could you make a:
When [Greenflag, _ Key pressed, Sprite pressed?]

We are planning to add a general WHEN <predicate> hat block, into which you can drag any predicate function you want.  This should solve all these problems about inflexible WHEN conditions, I hope.

Did you b any chance get that from a suggestion website which tells what should be in the next BYOB? LOL I entered it if you did. Otherwise ignore the above.


If you are reading this, please read to the end, because if you don't you won't know what's at the end. Don't just skip to the end though otherwise you won't be able to read the middle, which is most important. Now you must be wondering why you just read all that, the reason is you may have not noticed something, read it again and see if you notice it this time  smile

Offline

 

#2761 2011-02-12 23:00:20

bharvey
Scratcher
Registered: 2008-08-10
Posts: 1000+

Re: BYOB 3 - Discussion Thread

Pecola1 wrote:

Did you b any chance get that from a suggestion website which tells what should be in the next BYOB? LOL I entered it if you did.

Well, several people have suggested it in several fora.  Once you set your mind to user-defined hat blocks it's the obvious way to do it.


http://cs.berkeley.edu/~bh/sig5.png

Offline

 

#2762 2011-02-13 05:22:47

scimonster
Community Moderator
Registered: 2010-06-13
Posts: 1000+

Re: BYOB 3 - Discussion Thread

BTW, the " glitch is still in BYOB 3.0.9.

Offline

 

#2763 2011-02-13 11:54:51

nXIII
Community Moderator
Registered: 2009-04-21
Posts: 1000+

Re: BYOB 3 - Discussion Thread

I would love to see the assignment operator become a reporter in BYOB; this allows chaining of assignments, i.e. [set foo to (set bar to 0)], and assignments in conditions, i.e. [if (set i to (index of (a) in (list)))]
    [replace item (i) of (list) with (bar)]
[else]
    [throw (Can't find item!)]

(throw would be nice too :P)

Last edited by nXIII (2011-02-13 11:57:08)


nXIII

Offline

 

#2764 2011-02-13 12:54:09

bharvey
Scratcher
Registered: 2008-08-10
Posts: 1000+

Re: BYOB 3 - Discussion Thread

nXIII wrote:

I would love to see the assignment operator become a reporter in BYOB

I think we could do that only if we abolished the distinction between commands and reporters altogether, or at least allowed a hybrid block type (an oval with attachment tabs!).  That would settle the argument about whether CLONE should report a value, too.

Up to now we've tried really hard to be backward compatible with Scratch, and not to do anything that would confuse a Scratch user coming to BYOB.  Changing the appearance of the SET block would, I think, be a huge break with that goal.

But since it's now official that they're never going to move in the direction of first class data, I'm open to discussion of this point as we start on 4.0 (in April).  (I mean, we can start discussing now, but nothing's going to happen as a result of the discussion until April.  smile  )


http://cs.berkeley.edu/~bh/sig5.png

Offline

 

#2765 2011-02-13 12:58:32

scimonster
Community Moderator
Registered: 2010-06-13
Posts: 1000+

Re: BYOB 3 - Discussion Thread

bharvey wrote:

But since it's now official that they're never going to move in the direction of first class data, I'm open to discussion of this point as we start on 4.0 (in April).  (I mean, we can start discussing now, but nothing's going to happen as a result of the discussion until April.  smile  )

That's too bad.

Offline

 

#2766 2011-02-13 13:10:20

scimonster
Community Moderator
Registered: 2010-06-13
Posts: 1000+

Re: BYOB 3 - Discussion Thread

Like the tools block GO TO {list}, I made CHANGE POSITION BY ().
Easy:

Code:

change position by (num)
change x by (num)
change y by (num)

More complex:

Code:

change position by (num)
go to (map (the (()+(*num*)) block) over (position) <>)

(That's the tools GO TO block, not the default one.)

Offline

 

#2767 2011-02-13 13:30:46

nXIII
Community Moderator
Registered: 2009-04-21
Posts: 1000+

Re: BYOB 3 - Discussion Thread

bharvey wrote:

nXIII wrote:

I would love to see the assignment operator become a reporter in BYOB

I think we could do that only if we abolished the distinction between commands and reporters altogether, or at least allowed a hybrid block type (an oval with attachment tabs!).  That would settle the argument about whether CLONE should report a value, too.

Up to now we've tried really hard to be backward compatible with Scratch, and not to do anything that would confuse a Scratch user coming to BYOB.  Changing the appearance of the SET block would, I think, be a huge break with that goal.

But since it's now official that they're never going to move in the direction of first class data, I'm open to discussion of this point as we start on 4.0 (in April).  (I mean, we can start discussing now, but nothing's going to happen as a result of the discussion until April.  smile  )

Yep. It makes sense to allow users to ignore the return value of a function (such as CALLing a command) rather than provide them with two blocks that (should) do the same thing but have a different shape.

I would suggest that command blocks could have a subtly outlined oval shape on them when they have a return value. When they are dragged over an argument slot, the command-shape disappears and only the oval remains, indicating that the block will be inserted as a reporter. When they are dragged over a command slot, the oval will disappear and will remain hidden when the block is dropped there.

Some other blocks which I think should have return values:
- [delete (1) of (list)], [add (thing) to (list)], [insert (thing) at (1) of (list)], [replace item (1) of (list) with (thing)]: should return the value of the deleted/replaced/added item
- [set (var) to ()], [change (var) by (1)], [set (attribute) to ()], [change (attribute) by ()]: should return the new value
- [delete (object)]: should return the deleted object
- [go to front], [go back (1) layers]: should return the new layer
- [next costume], [switch to costume ()]: should return the costume number
- [turn () degrees], [point in direction ()], [point towards], [if on edge, bounce]: should return the new heading
- [go to x: () y: ()], [go to ()], [glide (1) secs to x: () y: ()]: should return something, but I don't know what

Last edited by nXIII (2011-02-13 13:39:52)


nXIII

Offline

 

#2768 2011-02-13 13:54:45

scimonster
Community Moderator
Registered: 2010-06-13
Posts: 1000+

Re: BYOB 3 - Discussion Thread

nXIII wrote:

- [go to x: () y: ()], [go to ()], [glide (1) secs to x: () y: ()]: should return something, but I don't know what

Maybe a list of the x/y positions. Like the tools block POSITION (reporter).

Offline

 

#2769 2011-02-13 14:01:11

bharvey
Scratcher
Registered: 2008-08-10
Posts: 1000+

Re: BYOB 3 - Discussion Thread

scimonster wrote:

Code:

change position by (num)
go to (map (the (()+(*num*)) block) over (position) <>)

Sweet!  Isn't it great how MAP lets you do arithmetic directly on vectors instead of thinking element by element?


http://cs.berkeley.edu/~bh/sig5.png

Offline

 

#2770 2011-02-13 14:12:23

bharvey
Scratcher
Registered: 2008-08-10
Posts: 1000+

Re: BYOB 3 - Discussion Thread

nXIII wrote:

Yep. It makes sense to allow users to ignore the return value of a function (such as CALLing a command) rather than provide them with two blocks that (should) do the same thing but have a different shape.

Glad to see you've become a Schemer!  big_smile

Some other blocks which I think should have return values:
- [delete (1) of (list)], [add (thing) to (list)], [insert (thing) at (1) of (list)], [replace item (1) of (list) with (thing)]: should return the value of the deleted/replaced/added item

Two things: (1) Once we get linked lists done (are we still talking about this for 3.1, Jens?), it will be faster and more convenient to do many things using reporter blocks (ADJOIN, ITEM <1> OF, ALL BUT FIRST OF) than with the old command blocks.  This will change the discussion about reported values from list operations.  (2) If you compare these with some of your other suggestions, you're inconsistent about whether to return a/the new value or a/the old value.  It's most stark with the REPLACE block; why is this different in principle from the SET block?

- [go to x: () y: ()], [go to ()], [glide (1) secs to x: () y: ()]: should return something, but I don't know what

The new position, as a vector, of course!  I'd really like to encourange people to think of positions (rather than individual coordinates) as first class data.  That isn't a change in the language, so much as a change in people's view of abstract data types, i.e., a list of two numbers as one position rather than as two things thrown together.

Jens, what do you think?  (Everybody, too, but Jens's vote counts more.   smile  )

PS What do people think not so much about the details of what block should report what, but about this whole idea of hybrid blocks.  The huge strength of Scratch as a programming language is how the shapes make it instantly obvious how you're supposed to put them together.  That's why little kids can be off and running on 30 seconds of instruction.  I'm nervous about losing that.

Last edited by bharvey (2011-02-13 14:17:55)


http://cs.berkeley.edu/~bh/sig5.png

Offline

 

#2771 2011-02-13 14:15:57

scimonster
Community Moderator
Registered: 2010-06-13
Posts: 1000+

Re: BYOB 3 - Discussion Thread

Agreed, mostly. I still don't know anything about the experimental versions, except that BYOB is getting cloning.

Offline

 

#2772 2011-02-13 15:18:27

nXIII
Community Moderator
Registered: 2009-04-21
Posts: 1000+

Re: BYOB 3 - Discussion Thread

bharvey wrote:

Glad to see you've become a Schemer!  big_smile

JavaScripter  tongue .

bharvey wrote:

If you compare these with some of your other suggestions, you're inconsistent about whether to return a/the new value or a/the old value.  It's most stark with the REPLACE block; why is this different in principle from the SET block?

I only say this because in my opinion the replaced value is the more useful of the two, like when you [delete] an item or splice() an array.

bharvey wrote:

The new position, as a vector, of course!  I'd really like to encourange people to think of positions (rather than individual coordinates) as first class data.  That isn't a change in the language, so much as a change in people's view of abstract data types, i.e., a list of two numbers as one position rather than as two things thrown together.

But there is no "standard" vector object, so what exactly would the primitive return? A list? A vector?

bharvey wrote:

The huge strength of Scratch as a programming language is how the shapes make it instantly obvious how you're supposed to put them together.  That's why little kids can be off and running on 30 seconds of instruction.  I'm nervous about losing that.

That's why I suggested retaining the puzzle-piece shape and adding a subtle oval or something else to the block. An image might help: http://i56.tinypic.com/a5fi1x.jpg

Last edited by nXIII (2011-02-13 15:37:50)


nXIII

Offline

 

#2773 2011-02-13 16:58:25

bharvey
Scratcher
Registered: 2008-08-10
Posts: 1000+

Re: BYOB 3 - Discussion Thread

nXIII wrote:

I only say this because in my opinion the replaced value is the more useful of the two, like when you [delete] an item or splice() an array.

Okay, then why isn't the old value of a SET variable more useful?  It's the same thing -- you can always get the new value by asking for it, but you've lost the old value.

But there is no "standard" vector object, so what exactly would the primitive return? A list? A vector?

A list is a vector!  (Especially a Scratch list, which isn't a list at all, but an array.)  "Vector" is just a technical term for "an ordered list being thought of as a single thing rather than as a sequence."

adding a subtle oval or something else to the block. An image might help

That's really subtle!  I had to zoom way in to see how it differed from a regular command block. Of course I'm a farsighted adult.  smile   I was thinking something more like
http://cs.berkeley.edu/~bh/hybrid.png


http://cs.berkeley.edu/~bh/sig5.png

Offline

 

#2774 2011-02-13 17:03:37

bharvey
Scratcher
Registered: 2008-08-10
Posts: 1000+

Re: BYOB 3 - Discussion Thread

nXIII wrote:

When they are dragged over an argument slot, the command-shape disappears and only the oval remains, indicating that the block will be inserted as a reporter. When they are dragged over a command slot, the oval will disappear and will remain hidden when the block is dropped there.

This is an appealing idea, but also a potential source of confusion for users, who may look in vain in the palette for a block that matches the one they see in a script.

PS I like the really minimal sig!

Last edited by bharvey (2011-02-13 17:08:29)


http://cs.berkeley.edu/~bh/sig5.png

Offline

 

#2775 2011-02-13 18:50:09

nXIII
Community Moderator
Registered: 2009-04-21
Posts: 1000+

Re: BYOB 3 - Discussion Thread

bharvey wrote:

Okay, then why isn't the old value of a SET variable more useful?  It's the same thing -- you can always get the new value by asking for it, but you've lost the old value.

I suppose so.

A list is a vector!  (Especially a Scratch list, which isn't a list at all, but an array.)  "Vector" is just a technical term for "an ordered list being thought of as a single thing rather than as a sequence."

Ah, that kind of vector. I thought you meant a mathematical vector.

That's really subtle!  I had to zoom way in to see how it differed from a regular command block. Of course I'm a farsighted adult.  smile   I was thinking something more like
http://cs.berkeley.edu/~bh/hybrid.png

I see what you mean, but then scripts would have awkward rounded parts instead of being flat on the left side. Maybe a command-shaped block with the corners darkened, or use that form in the palette and change it into a command block when it's dragged into a script (which might be a little less confusing for users)

This is an appealing idea, but also a potential source of confusion for users, who may look in vain in the palette for a block that matches the one they see in a script.

Good point. Any suggestions, everyone?

PS I like the really minimal sig!

Thanks!  big_smile


nXIII

Offline

 

Board footer