User:Aadenboy/Forces and such

From Esolang
Jump to navigation Jump to search
This is still a work in progress. It may be changed in the future.

Forces and such, which is written as a generic noun, is a 2D physics-based cellular automata.

Concept

An actor is defined as the object which is taking action against another. For example, if an arrow pushes a box, the arrow is the actor in that scenario. Each object has a lightweight, heavyweight, and elastic variant, where lightweight objects are permissive and unrestrictive, heavyweight objects are restrictive and persistent, and elastic objects are reactive and dynamic (acting either as a lightweight or heavyweight depending on the situation).

Each force has a bias associated with it. When a force reciprocates across objects (as a means of applying said force), any objects which will will provide the same result add onto the bias, no longer requiring computation. Elastic variants decrease bias.

  • Arrows (←↑→↓⇐⇑⇒⇓) immediately create a pushing force in their direction. The lightweight variants (←↑→↓) will disappear once they push an object.
  • Boxes (□■▣), when pushed, move one step in the direction they were pushed, before stopping.
    • The lightweight variant () will allow the actor to take its place as it moves
    • The heavyweight variant () will stop the actor where it initially was, removing any momentum the actor had.
    • The elastic variant () depends on how many actors there are and how many of itself is being pushed at once. If the bias is negative, it acts like a heavyweight. Equal, and momentum is removed but the boxes move like a lightweight. Greater, and they act like lightweights.
  • Marbles (○●◉), when pushed, gain momentum in that direction. Marbles move one step in the direction of their momentum, and follow similar actor pushing logic as the boxes.
  • Springs (◇◆◈) reciprocate a force that an actor applies on it.
    • The lightweight variant () will apply a force in every direction, including back to the actor.
    • The heavyweight variant () will only apply a force in the direction the actor was traveling, stopping the actor as a result.
    • The elastic variant () will act like a lightweight where a bias would be greater than one, but acts like a heavyweight once it is zero, and no further in the negatives.

Examples

1 →□□□□
2   □□□□
1 →■■■■
2  ■■■ ■

1 →○ ○ ○
2   ○○ ○
3    ○○○
4     ○○○
5      ○○○
⋮
1 →● ● ●
2   ●● ●
3   ● ●●
4   ● ● ●
5   ● ●  ●
⋮

1     →○ ▣▣▣
2       ○▣▣▣
3       ○▣▣ ▣
1   →○○○ ▣▣▣
2     ○○○▣▣▣
3     ○○○ ▣▣▣
1 →○○○○○ ▣▣▣
2   ○○○○○▣▣▣
3    ○○○○○▣▣▣
4     ○○○○○▣▣▣
5      ○○○○○▣▣▣
⋮

1 →○  ◇○
2   ○ ◇○
3    ○◇○
4   ○ ◇ ○
5  ○  ◇  ○
⋮
1 →○  ◆○
2   ○ ◆○
3    ○◆○
4    ○◆ ○
5    ○◆  ○
⋮

1 →○○○ ◈◈◈◈◈
└      ○○○○○
2   ○○○◈◈◈◈◈
└      ○○○○○
3  ○○○ ◈◈◈◈◈
│        ○○○ 
└      ○○
4 ○○○  ◈◈◈◈◈
│        ○○○ 
│
└      ○○
⋮

1 ⇒○  ◇● ←
2 ⇒ ○ ◇● ←
3 ⇒  ○◇● ←
4 ⇒ ○ ◇ ●←
5 ⇒○  ◇●
6 ⇒ ○ ◇●
7 ⇒  ○◇●
8 ⇒ ○ ◇ ●
9 ⇒○  ◇  ●
⋮