[HN Gopher] Analog Chess
___________________________________________________________________
Analog Chess
Author : amichail
Score : 340 points
Date : 2023-01-13 16:55 UTC (6 hours ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| bo1024 wrote:
| How much space do pieces take up? I.e. how close do their centers
| have to be for them to intersect and block or be captured?
| adrianmonk wrote:
| Now somebody make a chess engine to play this.
|
| I bet it's possible to use the same approach as chess engines for
| traditional chess. You might run into problems with the search
| space being a tiny bit larger, though.
| tromp wrote:
| There's no mention of promotion. Is it not available, or when are
| pawns considered to have reached the final rank?
| squeaky-clean wrote:
| Looking at the code it looks like it supports promotion, a pawn
| is considered on the final rank when it's entire radius is on
| that rank.
| luxuryballs wrote:
| if it were me I'd make it so the piece has to be touching the
| far edge of the board, to follow with the theme
| rm999 wrote:
| If I am reading this correctly, a pawn past row 7 will
| automatically be replaced by a Queen:
|
| https://github.com/ehulinsky/AnalogChess/blob/main/analogche...
| birracerveza wrote:
| Interesting! /r/anarchychess will love this.
|
| > One interesting side effect of this is that you can capture
| multiple pieces at once. :)
|
| Wouldn't it make more sense if it moved until it touched another
| piece and thus capture it without overlapping?
| MaceOutWindu wrote:
| "I am in Electrical Engineering and I like writing shitty code to
| piss off my Computer Science friends."
|
| lol
| [deleted]
| scarmig wrote:
| With optimal play, is there ever a reason to make a move that's
| not an integral value?
|
| Also, to the extent there is a benefit, does the full set of
| floating points (presumably) get more advantage than just the
| positions located midway between regular adjacent positions? And
| how big an advantage does it offer? Could someone with access to
| the floats beat someone ranked 500 points higher who doesn't?
| britneybitch wrote:
| I imagine it's pretty powerful to put your queen on the corner
| of 4 squares so it can capture along two ranks and two files.
| fsckboy wrote:
| good point for sure, but in terms of relative power it's
| probably the same, as it could then _be captured_ along two
| ranks, files, diagonals, and a fair number of knight, and
| even some pawn positions.
| kvdveer wrote:
| Yes, for example to capture two pieces at once, or threaten two
| adjacent pieces.
| Shared404 wrote:
| Indeed, or to bypass a piece which is threatening a space by
| moving into a different part of that space.
| qsort wrote:
| Any position where you'd be in zugzwang is a good example.
|
| A more interesting question is how do you search the infinite
| state space. Intuitively, many states that are formally
| different aren't meaningfully different from each other and can
| be assimilated.
|
| Any bisimulation expert on HN? :D
| kofejnik wrote:
| Now we need Hikaru to stream it
| alanbernstein wrote:
| One thing that seems to be lost here is the color of the bishops.
| I wonder if there is some constraint you could add for their
| movement to get a sort of equivalent concept?
| notmysql_ wrote:
| Cool project! If the pieces don't render for you try installing
| the SegoeUISymbol font from the internet
| dragontamer wrote:
| There seems to be a whole slew of "analog" games coming out for
| classic discrete games.
|
| For example, "Not Tetris" is an analog-Tetris.
| https://stabyourself.net/nottetris2/
|
| I certainly enjoy these games. So hopefully more people are
| inspired to find analog-versions of other discrete or turn-based
| games, lol.
|
| I guess a more "serious" version of analog Tetris is perhaps
| Tricky Towers, which is an excellent party game.
| https://www.trickytowers.com/
| Y_Y wrote:
| I'm trying to go the other way and discretize golf
| OisinMoran wrote:
| Please say more! Very interested in this category in general.
| Would love a version of basketball where the points are a
| continuous function of distance from the basket rather than
| discrete 2 & 3 pointers.
| itcrowd wrote:
| ... so that's what they meant by disc golf in college!
| naet wrote:
| Tricky towers was great fun when I played it a while back.
| zabzonk wrote:
| sad to see this was not chess on an analog computer. now, that
| would be impressive!
|
| one of my late mentors, dr mick bazin (university of london,
| 1980s), used to demonstrate programming bacterial population
| dynamics on an analog machine - plug-boards, dials and god knows
| what. as a pretty good digital computing person, i found it all
| baffling.
|
| but nowt to do with the post, i guess.
| osrec wrote:
| "nowt"
|
| From Yorkshire or a typo?
| zabzonk wrote:
| born in halifax
| Eduard wrote:
| > sad
|
| > that would be impressive
|
| :(
| albertzeyer wrote:
| And now make it also realtime...
| birracerveza wrote:
| With killstreaks, abilities and ultimates.
| heystefan wrote:
| Can anyone please ELI5 for us with the cheap seats and/or
| cognitive disabilities. What's exactly different from regular
| chess?
| [deleted]
| aaroninsf wrote:
| In chess, piece locations are defined in terms of squares on
| the 8x8 grid.
|
| In this analog version, locations are defined continuously, the
| checkerboard they move over is meaningful only to establish
| starting positions, and then is purely aesthetic.
| mkaic wrote:
| Regular chess is played on an 8x8 grid of squares, and pieces
| occupy one square at a time. They move along grid lines and
| diagonals and there's no such thing as being "halfway" between
| two squares. Every piece on the board has an X-coordinate
| between A and H, and a Y-coordinate between 1 and 8.
|
| In this version, the pieces are no longer constrained to having
| integer coordinates. A pawn can be "halfway" between, say A2
| and A3, or a queen could be sitting roughly in-between several
| squares at once. In regular chess, pieces are captured when an
| enemy piece moves to the same square as them. In this version,
| since the grid doesn't exist any more, pieces are captured when
| an enemy piece physically overlaps them.
|
| It's kinda like normal chess is a low-resolution game with only
| 64 possible locations, and this is a higher resolution version
| of it where you aren't limited to just those 64 locations and
| can slide continuously all across the board.
| percentcer wrote:
| [I know this isn't the main feature of the project, but] I think
| if more chess clients offered the "view squares that are under
| attack" overlay then the world would be a better place. So many
| interesting, low-level casual games are destroyed by blunders.
| cauthon wrote:
| Seeing attacks and tactics _is_ playing chess. That's like
| saying more FPS games need to offer aimbots because low-level
| casual games are destroyed by missing headshots.
|
| Both chess.com and lichess allow you to view attacks in the
| analysis, but I don't think it should be available in-game.
| Low-level or casual play in any setting is going to be
| characterized by blunders, that's what makes it low-level and
| casual.
| mikebenfield wrote:
| Since that feature isn't available on an actual board, it would
| really hamper your development as a player to use it when
| playing online.
| franknstein wrote:
| Maybe it would actually help to develop internal vision and
| improve your chess.
| alar44 wrote:
| No, it does the exact opposite. It's like spell check. I
| can't spell for shit anymore.
| Shared404 wrote:
| I could see that varying from individual to individual.
|
| For me, I'm quite confident it would negatively impact my
| skills as I would naturally start trying to offload that
| mental load to the computer and forget how to do it.
| soperj wrote:
| "Do not expect the code to be stable under any modifications, but
| you can try if you want I guess. Also there are barely any
| comments sorry. I am in Electrical Engineering and I like writing
| shitty code to piss off my Computer Science friends."
|
| I love this.
| ThisIsTheWay wrote:
| The few comments that are in there are kinda funny too:
|
| > #fucking awful global variable that is is changed by the
| confirm() function of the pieces
|
| > #math shit
|
| > #i don't know what im doing
| Aaronstotle wrote:
| That and "run the latest .py file because I can't be bothered
| to actually use version control" made me laugh
| doodpants wrote:
| This makes no sense to me. I mean, it's already on GitHub,
| which is a version control system. So he's doing more work by
| committing each version as a separate file, rather than
| making modifications in place?
| jfoutz wrote:
| sometimes, especially when I'm trying to figure out
| something new, I like keeping the old exploratory code so I
| can grep through it or easily compare different approaches.
| It's less cognitive load than dealing with tags or branches
| or versions.
|
| usually I end up with old/try1 old/try2 ... old/tryn
|
| once I've worked out the way I really want to go, then I
| nuke old.
| OkayPhysicist wrote:
| git checkout 0110deadbeef -- file.py >
| new_name_for_temp_file.py
| quantaseed wrote:
| He probably bothered to learn "git add" "git commit -am"
| "git push" and nothing else.
|
| Or maybe his CS friends helped put it on github.
|
| Or maybe he's just to piss us off :)
| [deleted]
| aaroninsf wrote:
| I appreciate the humor and tone for sure,
|
| but I am perplexed by the assertion that confirming or checking-
| for `check` (as opposed to mate) is difficult.
|
| Why is it not simply checking the attack surface of each piece
| from its current position? I understand there is occlusion, but
| that should be well-defined for collision-checking for taking
| already.
|
| I.e. is this not the rule: "if none of the opposing 16 positions
| has the king's [prospective] position in their range of attack,
| the position is clear." Where range-of-attack are already
| defined.
|
| If there is a problem with determining if a given range is subset
| by occlusion, that would seem to make preclude determining
| capture?
|
| I must be missing something...
| luxuryballs wrote:
| would prefer to see this without the squares, just one giant
| square
| SilasX wrote:
| >Sadly en passant (the funny move) is not implemented yet because
| I have no idea how it would work.
|
| That's ... straighforward enough, I think? En passant exists
| because it feels unfair that a pawn could use its double-move
| (here, >1.0 move) to bypass another pawn's capture.
|
| So, in analog chess, the en passant rule would be "if a pawn move
| of >1.0 passes through the capture zone of the other side's pawn,
| that pawn retains the right to capture (on the next move) as if
| it (the former pawn) had moved to a point within the capture
| zone".
|
| Still don't see why analog chess would be interest rather than
| just frustratingly complex?
| gliptic wrote:
| Similarily, it should not be too hard to implement checkmate.
| If, on your move, any of the opponent pieces can capture your
| king and this remains true wherever the king moves, you're
| mated. Should only require overlap detection between linear and
| circular swept discs. EDIT: Ok, a bit more complex than that,
| but still doable I think. Find a point on the king movement
| lines that are at least one radius away from the union of the
| capture areas.
|
| You would also not be allowed to move the king anywhere where
| the opponent can capture it.
| [deleted]
| [deleted]
| AnotherGoodName wrote:
| To make it more concrete: When a pawn moves more than distance
| 1 it could leave behind a shadow at distance 1. Capturing that
| shadow with a pawn captures that pawn.
|
| It's effectively how you explain en passant to a new player.
| MaceOutWindu wrote:
| yeah in analog chess you could just check if the other pawns
| near it collide in trajectories when doing the double move and
| if they do then en passant is in effect.
| huevosabio wrote:
| I never thought of en passant like that! This makes a lot more
| sense now, and feels less like a vestigial rule from some
| version of chess.
| korroziya wrote:
| "Do not expect the code to be stable under any modifications, but
| you can try if you want I guess"
|
| Challenge accepted.
| sireat wrote:
| Lot of fun chess variants.
|
| Reading about Lloyd Shapley (2nd in Game Theory after von
| Neumann) I discovered that he was supposed to be master at:
|
| https://en.wikipedia.org/wiki/Kriegspiel_(chess)
|
| Basically chess with Fog of War.
| mdtrooper wrote:
| This remembers me to an oldie web but nice is:
| https://www.chessvariants.com/
| andrewfromx wrote:
| "To win, you simply need to capture the opponent's king. This is
| mainly because stalemate is basically impossible, as the king can
| always move an infintesimal amount, and also because implementing
| check/checkmate would destroy the last ounce of sanity I have
| left."
| logicallee wrote:
| In chess, you win when you are "about to" capture the
| opponent's king on your next move, which is called putting them
| in check, and there's no way for the other side to avoid it
| (block or move out of check).
|
| So I've always found it very bizarre that if it's a player's
| move, but any possible move would put their own king in check,
| then it is a draw (rather than a loss).
|
| This leads to a situation where one side can have almost no
| pieces left, perhaps only the king, but still somehow draw
| since the king can't move anywhere where it wouldn't be
| captured.
|
| I imagine a king all by himself peeping his head out out for a
| place to move, but everywhere is covered by snipers, so, since
| he can't move anywhere without getting captured, despite being
| overwhelmed by enemy forces he yells out a la monte Python "So
| we'll call it a draw then!"
| pbhjpbhj wrote:
| Maybe if you think of it in terms of the opposition falling
| to put you in check despite you only having a king left? Your
| army chased the opposing king to the forest but failed to
| defeat him, be gets to live out his days as a hermit. You are
| denied 'satisfaction'.
|
| ?
|
| In my family, against my children, it's a running joke that
| I'll almost always fail to win, and stalemate them.
| hgsgm wrote:
| It's because chess was invented by programmers, and stalemate
| means "the game is broken because there are no legal moves so
| it's impossible to continue", so we call it a draw.
| a_cardboard_box wrote:
| You can also tell it's made by programmers because of the
| _en passant_ "feature", which clearly only exists due to
| the programmers' incomplete implementation of the 2-square
| first move.
| bspammer wrote:
| > the king can always move an infintesimal amount
|
| I don't think this is true, it should be perfectly possible to
| cover the opponent's king's entire movement area with your
| pieces.
|
| I'd love to see a version of this game that actually implements
| this :D
| gmoot wrote:
| Then it's checkmate, not stalemate. For a stalemate you need
| a situation where the king is not in check, but there are no
| legal moves. It seems impossible in practice, if not in
| theory.
| timerol wrote:
| "Warning: This code is fucking awful.
|
| Do not expect the code to be stable under any modifications,
| but you can try if you want I guess. Also there are barely any
| comments sorry. I am in Electrical Engineering and I like
| writing shitty code to piss off my Computer Science friends."
|
| I appreciate this README's sense of humor
| bunnie wrote:
| I can relate to this!
| knodi123 wrote:
| lol, "Run the .py file with the highest number, because I
| can't figure out version control." Says the guy who posted it
| to github.
| bertil wrote:
| There's something profound here about how the very natural
| conventions in Chess ("If you did that, you'd lose, so I'd
| rather we continue playing") have redefined "valid" in a way
| that is surprisingly hard to re-implement with code.
| gmiller123456 wrote:
| You can make illegal moves in over the board chess, and
| sometimes it's advantageous to do so. E.g. In blitz chess an
| invalid move is an immediate loss. So, if you're going to
| lose anyway, you can make an invalid move hoping your
| opponent doesn't take the time to notice. One common one is
| to move your king next to your opponent's king, putting their
| king in check, if they don't call you on it, and don't move
| their king out of check, they lose. Unofficially, this is
| considered part of the game in blitz, but is considered
| unsportsmanlike in long games (where it's not an immediate
| loss).
| distortedsignal wrote:
| Is that... true? Are there tournament rules that say that?
| I'm not much of an OTB player, but this strikes me as
| somewhat against the spirit of the game. I will freely
| admit that I don't play blitz unless it's on a computer (I
| hate chess clocks) and computers don't allow illegal moves,
| but I would be very surprised if tournaments operated like
| this. Even small, local tournaments.
| kanzenryu2 wrote:
| I remember reading about a serious tournament game where
| somebody castled twice. Nobody noticed during the game. I
| wonder how many computer databases allow that game to be
| entered.
| crdrost wrote:
| Longer games go by FIDE's "Laws of Chess" which has a
| section 7 called "Irregularities" that indeed specifies
| the behavior if you accidentally knock over pieces or the
| game board falls over or you make an illegal move (moving
| away a piece that was keeping you from check etc).
|
| Resolving irregularities does require your opponent to
| notice the irregularity and bring it to the attention of
| the referee.
|
| Not sure about Blitz.
| [deleted]
| kanzenryu2 wrote:
| From memory it wasn't so long ago that the laws of chess
| "allowed" you to play an illegal move to cause a checkmate
| (e.g. Qd1xf7 mate). Your opponent would say "hey that's an
| illegal move, take it back". You could then say "according
| to this rule, taking back illegal moves can only be done
| during a game, and according to this other rule, checkmate
| immediately ends the game".
|
| Note that it can be discovered during a game that a move
| several turns ago was actually illegal, and the board
| should be returned to that position (and times adjusted). I
| had this happen to me once.
| shuntress wrote:
| The "checkmate immediately ends the game" rule gets
| really weird in 3-chess.
| AstixAndBelix wrote:
| you can't represent the real plane on a computer. you can
| only have a limited amount of precision that effectively
| results in very dense grid, but a grid nonetheless
| jakear wrote:
| are you able to represent it some place else?
| AstixAndBelix wrote:
| what does this mean?
| bspammer wrote:
| I don't think it can even be called a grid, as the gaps
| between points aren't the same length.
| AstixAndBelix wrote:
| depends on your choice of floating point standard, you're
| right for the current IEEE one
| ErikCorry wrote:
| If the gaps are all the same size, isn't it fixed point
| rather than floating point?
| cmeacham98 wrote:
| It is very easy to implement with code. Chess computers are
| some of the first well-known computer programs (see, for
| example, Deep Blue).
|
| What is difficult is adapting chess's rules to this analog
| environment. It would be similarly difficult if you played
| this way with a real chess set in the real world, has nothing
| to do with code.
| masswerk wrote:
| Chess meets Tablut / Hnefatafl...
|
| (I guess, Vikings would appreciate the constraints arising from
| infinitesimal granularity movement.)
| usgroup wrote:
| I could imagine myself thinking through what a continuous version
| of chess might look like, but actually having enough give--
| a-f__ck to implement it is other worldly to me.
|
| What drives you internet stranger?
| dragontamer wrote:
| > Pawn: May move 0-2 squares on it's first move, 0-1 otherwise.
| Can only attack diagonally. Sadly en passant (the funny move) is
| not implemented yet because I have no idea how it would work.
|
| Just "enlarge" the Pawn whenever it moves more than 1 square.
|
| Ex: if the pawn moves 2 squares, it is now a 2x1 piece. It will
| return to size 1x1 after its next move. If you wanna be "only"
| Pawns participating, ensure that the enlarged region can only be
| affected by other pawns.
|
| Ex2: If the pawn moves 1.5 squares, it is now a 1.5x1 piece.
| rcme wrote:
| That would allow any piece to capture a pawn on the adjacent
| file after a 2 square move. That would make 2 square moves bad,
| which would slow the game down.
| dragontamer wrote:
| That's literally the point of en-passant. To "punish" players
| who do a 2-square move.
|
| It shouldn't be too hard to have Pawns only be able to
| capture in this manner. And if you wanted to "reset the size"
| at the beginning of each player's turn. (Ex: White's pawns
| reset from 1.5x1 size into 1x1 size at the start of White's
| turn), then that basically covers en-passant.
| operator-name wrote:
| What rcme seems to be pointing out is that in normal chess
| only pawns can en passant, whereas if you grew the size of
| the pawn non-pawn prices would also be able to take it.
| dragontamer wrote:
| > It shouldn't be too hard to have Pawns only be able to
| capture in this manner.
|
| So you have two regions. The 1x1 region of the pawn, and
| the 1.5 x 1 "en passant" region of a pawn that moved 1.5
| squares as its first thrust. The 1.5x1 region can only be
| targetted by enemy pawns. If an enemy bishop lands in the
| 1.5x1 region, it still needs to check if its the 1x1
| "original pawn" region to have the pawn captured.
| pprotas wrote:
| It is not the point to punish a player for a 2-square move.
|
| The rule only punishes players that use the 2-square move
| to "block" an advancing pawn. This is a very specific
| situation!
| dragontamer wrote:
| > The rule only punishes players that use the 2-square
| move to "block" an advancing pawn
|
| I think you need to study En Passant a bit more. E2 to E4
| is _not_ captured by the E5 black pawn, but instead by
| the D4 or F4 black pawn.
|
| The E-black pawn is meaningless in regards to the En
| Passant rule. All that matters is that E2 (original
| location of white pawn) "passes through E3" on its way to
| E4, so F4 and D4 black pawns have an opportunity to kill
| it.
| toast0 wrote:
| Need to make the pawn elongate only for move checking with
| other pawns. A little tricky, because now you need a shadow
| board, but shouldn't be too bad?
| panki27 wrote:
| I love the versioning approach here - use git but still create
| fileV1.py, fileV2.py...
| FpUser wrote:
| I did not look at their particular code but I had files named
| like this in my projects: api_v1, api_v2. Reason being that the
| software V2 still supported v1 api so both were present and
| needed.
| actinium226 wrote:
| A reasonable approach but from the README:
|
| "To run the code you will need to install Python and the
| PyGame library, and then run the latest .py file because I
| can't be bothered to actually use version control."
| ChildOfEru wrote:
| I'm just reminded of the last line of the README.md
|
| "I am in Electrical Engineering and I like writing shitty
| code to piss off my Computer Science friends." -- https://g
| ithub.com/ehulinsky/AnalogChess/blob/main/README.md...
| The_Colonel wrote:
| It's a relatively common approach in e.g. web services, but
| not in standalone games.
| TheRealNGenius wrote:
| [dead]
| jdlyga wrote:
| This reminds of switching from Disgaea, a grid-based tactical
| RPG, to Phantom Brave, which ditched the grid and handled combat
| using distances.
| LoveMortuus wrote:
| I love Disgaea, especially the freedom it gives you to grind
| and build your character (singular, because all the others will
| betray you :P).
| jtolmar wrote:
| Hilarious idea, very nice.
|
| A dumb thing I found - If you move the knight's pawn, it's just
| barely possible to, over the course of many moves, slip your rook
| diagonally through to that pawn's former space.
| Shared404 wrote:
| Saw en passant so googled it...
|
| holy hell.
| tspike wrote:
| It's pretty fun surprising someone who is not familiar with it,
| in a sadistic sort of way.
| ssl-3 wrote:
| It used to be a potential invitation for a fist-fight before
| we had pocket computers with which the aggrieved (and
| unaware) player could verify the move's legality.
| qsort wrote:
| Also true for some other little rules people often forget,
| like underpromotion, castling through/out of check,
| stalemate, perpetual, 50 moves, etc.
|
| Plus the general topic of how to use clocks.
|
| Chess is so popular that most people first learn to play from
| parents, relatives, etc., so they might not have learned the
| full rules if they aren't interested in learning the game
| more seriously.
| unsafecast wrote:
| You say underpromotion, but something people are surprised
| by is making a second queen ime. People sometimes assume
| promotion is actually "taking a captured piece back".
| Shared404 wrote:
| This is true.
|
| I've taken to asking players who are unfamiliar with the game
| if their familiar with it on occasion, at least ones who I
| expect will be more frustrated than amused.
| function_seven wrote:
| One modification to this game I'd like to make is adding the
| missing knook piece.
|
| But sadly I don't think I'm up for it: _Do not expect the code
| to be stable under any modifications, but you can try if you
| want I guess._
| newaccount74 wrote:
| What's a knook? A mix between knight and rook? How would it
| work?
| coeneedell wrote:
| Looking at the code adding another piece should be doable
| since I don't think any pieces call other pieces attributes,
| and the pieces at game start are just objects in a list...
| Shared404 wrote:
| Build the board out of bricks and it's both stable amd you
| get easy access for bricking online!
| jimhi wrote:
| If you want to play in the browser instead of setting this up
| locally I made a replit:
| https://replit.com/@jamespsteinberg/AnalogChess-1
| mzs wrote:
| All the pieces are simply labeled with rectangles as if the
| font is not present for me. Any ideas? Also thanks!
| ddalex wrote:
| Do you have web font blocking setup in the browser?
| anamexis wrote:
| I don't, and I see squares. This is Safari on iOS
| Eduard wrote:
| Same for me. Kinda feels like Stratego :)
| HALtheWise wrote:
| https://replit.com/@EricMiller8/AnalogChess-fixed-icons?v=1
| should have working icons. There's still some weird issue for
| me with the cursor not displaying in fullscreen.
| hammock wrote:
| Sweet thanks. The board takes up more space than the window.
| How do I zoom out?
| jimhi wrote:
| There's a button with two diagonal arrows that lets you enter
| fullscreen mode although you might have to scroll a bit to
| get it to show. Otherwise, you might have to fork the replit
| and make an account. It's free.
| Eduard wrote:
| On Pixel 4a Android / mobile / touch-only, even when
| clicking the diagonal arrows, the board is clipped; both in
| Chrome Android's default mode as well as when activating
| "Desktopwebsite" mode
| brofallon wrote:
| There's a special place in my heart for any project in which the
| Readme says "Warning: The code is fucking awful"
| shrx wrote:
| It did not disappoint :)
| revskill wrote:
| The code is readable, and at the same time, unmaintainable. Good
| job.
| dtech wrote:
| Bit weird to call it analog while continuous is meant. Any chess
| on a physical board is analog.
| dragontamer wrote:
| Analog is the study of continuous circuits.
|
| Digital is the study of (usually) binary circuits.
|
| --------
|
| Ex: an OpAmp is called an analog computer sometimes, because
| you can do things like Add, Subtract, Multiply, Divide,
| exponent, differentiate, or integrate voltages. (ex: 0.543V +
| 1.1V == 1.643V output). This is troublesome in practice because
| a bit of noise (ex: +.05V error) propagates.
|
| This is in contrast to a digital computer, which encodes data
| into 0 or 1. There are things like PAM4 which encodes data as
| 0, 1, 2, or 3 (2-bits per signal), or other such "discrete
| steps". But the overall concept of "snapping" data to specific
| voltage levels allows you to fix noise issues.
| RaoulP wrote:
| Agreed. But I suppose the creator (an electrical engineering
| student) thinks of continuous vs. discrete in terms of analog
| vs. digital signals.
| actinium226 wrote:
| I know what you mean, but I guess analog electronics are
| continuous? The author notes at the end of the README that he's
| an electrical engineer so maybe that's where it's coming from.
| actinium226 wrote:
| This readme is :fire: XD XD XD
| somethingAlex wrote:
| I don't think the knight should be allowed to move in a full
| circle. It should be disjointed - four arches. Allowing a knight
| to move two squares orthogonally kind of makes it a completely
| different piece.
| hgsgm wrote:
| It's like a completely different game, analog/continuous
| instead, of digital/discrete.
| a_cardboard_box wrote:
| It's not moving 2 squares orthogonally. It's moving sqrt(5)
| squares orthogonally. In normal chess, the knight can move to
| any square which is exactly sqrt(5) units away.
| whimsicalism wrote:
| If the knight can move in a full circle, the bishop by the same
| principle should be able to move anywhere on the board.
| aidenn0 wrote:
| The bishop can, with two moves, move anywhere on the board
| (unlike in traditional chess).
| mikepurvis wrote:
| I wondered about this too. I think I resolved it in my mind by
| seeing the game as granting every piece _one_ degree of freedom
| that goes from discrete to continuous: for most of the pieces,
| it 's distance from the origin, since they move in straight
| lines. But knights are already more constrained than that
| anyway, so for knights, the continuous DoF is axial instead.
|
| This also makes sense when you put any given piece in the
| middle of an empty board and plot all of its potential moves--
| for every piece but the knight, "joining up" their possible
| landing sites gives continuous distances from the starting
| point, but if you join up a knight's landing sites, you get a
| circle of r=[?]5.
|
| So in short, I agree with the OP's decision on how to handle
| knights.
| c3534l wrote:
| Edit: nevermind. I guess I didn't have enough coffee because I
| completely misinterpreted this.
| NeoTar wrote:
| In regular chess you can only move discrete distances (1, 2, 3
| squares, etc.) - this is analogue in the sense that pieces can
| move continuous distances.
| [deleted]
| nabogh wrote:
| I don't see how this is a donut topology. If it were you could
| move off the sides and end up on the other side of the screen.
| Like Pac-Man or Asteroids.
|
| It's analog because you can move any continuous distance. Not
| just a discrete number of tiles.
___________________________________________________________________
(page generated 2023-01-13 23:00 UTC)