this post was submitted on 02 May 2026
44 points (100.0% liked)

Chapotraphouse

14379 readers
506 users here now

Banned? DM Wmill to appeal.

No anti-nautilism posts. See: Eco-fascism Primer

Slop posts go in c/slop. Don't post low-hanging fruit here.

founded 5 years ago
MODERATORS
 

On this day in 1968, the May 68 Rebellion, the largest general strike in French history, began when school officials shut down the University of Paris after months of student protests, escalating to nationwide unrest.

In mid-March, leftist students had occupied an administration building there, although they left peacefully after their demands were published. On May 6th, more than 20,000 students, teachers, and supporters engaged in a protest march. The march was attacked by police and devolved into a riot.

The state repression of protesters caused two major left union federations, the Confédération Générale du Travail (CGT) and the Force Ouvrière (CGT-FO), to call a one-day general strike on May 13th. More than one million people demonstrated that day.

By the middle of May, demonstrations had extended to factories, though their demands were different from the students'. Across France, students occupied university structures and up to one-third of the country's workforce was on strike.

The protests were so widespread and energetic that many political leaders feared civil war or revolution. President Charles de Gaulle secretly fled France to Germany at one point, and the national government at times ceased to function.

Revolution was averted when de Gaulle dissolved the National Assembly and scheduled an election that the left dissidents agreed to participate in. Revolutionary fervor subsided and the government banned a number of leftist organizations in the following months.

In the election, de Gaulle's party won the greatest victory in French parliamentary history, taking 353 of 486 seats versus the Communists' 34 and the Socialists' 57.

How Beautiful It Was - Jacobin https://jacobin.com/2018/05/how-beautiful-it-was/

Megathreads and spaces to hang out:

reminders:

  • 💚 You nerds can join specific comms to see posts about all sorts of topics
  • 💙 Hexbear’s algorithm prioritizes comments over upbears
  • 💜 Sorting by new you nerd
  • 🐶 Join the unofficial Hexbear-adjacent Mastodon instance toots.matapacos.dog

Links To Resources (Aid and Theory):

Aid:

Theory:

Financial Support to the Bearsite

you are viewing a single comment's thread
view the rest of the comments
[–] Carl@hexbear.net 2 points 1 month ago* (last edited 1 month ago) (1 children)

it's still pretty bare bones but it works!

edit: just realized you can hear me listening to beige frequency's review of Steve-O's comedy specials in the background lmao

[–] lelkins@lemmygrad.ml 1 points 1 month ago* (last edited 1 month ago) (1 children)

the smooth movement implies that you can have centimeter-wide pockets. saw in the code (i am no programmer so idk how this works) that this tetris is gridless so i kinda got concerned. to demonstrate, i drew this that doesn't explain what i mean much but you get the picture

so imagine accidentally shifting your tetrominos 1cm too far from the already placed tetrominos and you can't tell why your double isn't a double so you are permanently stuck with a layer that is invalid. actyually this drawing won't even make sense, just imagine a layer where it's too narrow to be unable to shove an i-shaped mino in

[–] Carl@hexbear.net 3 points 1 month ago* (last edited 1 month ago) (1 children)

I did consider this potential problem!

  1. the grid_movement leg isn't moving smoothly, it's moving in discrete 18 pixel steps (18 pixels being the side length of each simulated grid square). As long as all of the different psuedogrid components are configured to the same size, they should all stay in sync without issues.

  2. the line_clear_monitor checks the points that the tetromino bricks move to, which are in the center of each brick. So a tiny gap in between them wouldn't mess up line detection unless for some reason you were using bricks under half the size of the grid and you weren't placing them in the middle of the simulated grid square.

With tetris being a relatively small 10 x 20 game board though, everything seems to be staying in sync as expected. I call this "gridless tetris" because my previous version (and basically all versions of tetris) did math on a 2D array, which is MUCH faster than making squares and checking for collision, but the advantage of doing it this way is that my tetrominos can more easily interact with the other stuff in my game collection, which is heavily focused on "remixing" classic games together in novel ways, not just recreating them.

[–] lelkins@lemmygrad.ml 1 points 1 month ago (1 children)

oh thank golly

please check if you can do tspins cause i find those fun, but it's fine if you want to have the nes version of tetris set up sicne tspins are a new thing. also what algorithm is used to choose the tetrominoes in the queue? there are multiple and they can be found in the harddrop wiki in the randomizer category and ensures that games are fair in terms of what minos you get

https://harddrop.com/wiki/Random_Generator

[–] Carl@hexbear.net 3 points 1 month ago* (last edited 1 month ago) (1 children)

Tspins are implemented! I have all of the modern Tetris features implemented as toggles, so for my collection you can turn them on and off to get modern Tetris, Nintendo Tetris, Soviet Tetris, or anything in between.

The default random algorithm is the "bag" algo, where every piece must be drawn before the next one appears. You could turn this off and switch to true random if you wanted to. I didn't bother implementing the Nintendo-specific one with the "generate two and then pick" semi-randomness.

here's a vid showing off some of the features like ghosting and holding (this is still very much "in progress")

[–] lelkins@lemmygrad.ml 1 points 1 month ago

thank you so much, holy fucking shit i'd play this then lmao

unnamed foss game thing may include this, had an idea brewing in my head for ages