News for hackers. Stuff that matters.

self_refactor

Show HN: Sortaballs v2 – logical game with 10 modes and over 1000 puzzles

https://sortaballs.vercel.app

I built a browser ball-sort puzzler where levels are ordered by difficulty, starting from the easiest.I experimented with several alternative modes with the aim to have similar complexity in other environments. Each mode has its own restrictions, which gives additional challenge for each user to find its favorite mode.Features:- 10 different game modes; over 1000 levels combined- near-win...

( Read More... | no comments | on HN )

Show HN: Sortaballs – alternative modes for classic sort ball puzzle

https://sortaballs.vercel.app

More than 1000 puzzle levels over 10 different modes. 8 modes are alternative to the classic versions with change of number of colors and height of plates.- dynamic hints about hardest and easiest color - very helpful on hard modes - levels are sorted by difficulty starting with easiest ones - drag'n'drop support for faster gaming

( Read More... | no comments | on HN )
I built a browser ball-sort puzzler where levels are ordered by difficulty, starting from the easiest.

I experimented with several alternative modes with the aim to have similar complexity in other environments. Each mode has its own restrictions, which gives additional challenge for each user to find its favorite mode.

I personally play a lot of Queen's Game (https://www.playqueensgame.com) and wanted to build something with a comparable challenge in a different genre.

Features:

- 10 different game modes

- over 1000 levels combined

- no ads, no registrations

- hints — ask for the next correct move when a puzzle is too hard

- undo, restart, per-puzzle progress saved in your browser

- near-win finish — preemptively calculates win conditions to skip redundant endgame moves

- dark/light themes

Modes:

- 10 colors - 10 colors × 5 balls with 10 filled and 2 empty plates

- 8 colors - 8 colors × 5 balls with 8 filled and 2 empty plates(easiest game mode)

- 4 colors - 4 colors × 10 balls with 8 short and 2 tall plates

- 3 colors - 3 colors × 16 balls with 6 short and 4 tall plates

- 2 colors - 2 colors × 30 balls with 6 short and 6 tall plates

- spread - uneven distribution of balls on the plates

- high - plates have height of 6, 8 colors × 6 balls with 8 filled and 2 empty plates

- high-spread - combination of `high` and `spread` mode

- 11 plates - 10 colors × 5 balls with 6 short and 5 tall plates

- 9 plates - 8 colors × 5 balls with 4 short and 5 tall plates

This isn't a new genre — I learned a lot from existing takes like [Gridmino's Ball Tubes](https://gridmino.com/play/balltubes) and [Puzzleship's Ball Sort](https://www.puzzleship.com/puzzles/ball-sort). What I wanted to add mainly was the hints, but I explored the idea of different modes, I played it and I saw the potential.

I hope you enjoy the game and I appreciate any feedback that you have.

Re: on Friday August 19, 2022 @06:15AM (#32519263)
Lists with repo links for various JS libraries. The list contains Github repos that depend on these libraries.
Re:Ask HN: Who wants to be hired? (February 2018) on Sunday February 11, 2018 @09:22AM (#16352780)
Location:Levski,Bulgaria

Remote:Yes

Willing to relocate:only to Germany or Austria

Technologies:Node.js,Typescript,Javascript,React.js,Redux,Redux-observable,Redux-saga,SEO,Docker,HTML,CSS,LESS

Résumé/CV: http://bit.ly/2G3omT0

Email: [email protected]

Re:Ask HN: What would you change about JavaScript if you could? on Wednesday September 13, 2017 @07:07AM (#15237138)
Remove the need of parentheses on if else statements

if foo === 'FOO' && bar > 7 {

  console.log(bar)

  return true
}else if typeof foo === 'string'{

  return false
}

return null

Partial paste from https://survivejs.com/blog/rambda-interview/#how-does-rambda... ---

The main reason for the better performance is that Rambda methods only need to take care for currying and execution, while Ramda methods cover more use cases. Therefore Ramda have more elaborate boilerplate around the actual execution, which results in slower performance.

We can see an illustration of that in the code of `find` method of Ramda and Rambda.

Ramda:

var _curry2 = require('./internal/_curry2');

var _dispatchable = require('./internal/_dispatchable');

var _xfind = require('./internal/_xfind');

module.exports = _curry2(_dispatchable(['find'], _xfind, function find(fn, list) {

  var idx = 0;

  var len = list.length;

  while (idx < len) {

    if (fn(list[idx])) {

      return list[idx];

    }

    idx += 1;

  }
}));

Rambda:

function find(fn, arr){

  if (arr === undefined) {

    return holder => find(fn, holder)

  }

  return arr.find(fn)
}