Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.javascript > #38682

Re: Allowed moves database chessboard, knight to many entries....

Newsgroups comp.lang.javascript
Subject Re: Allowed moves database chessboard, knight to many entries....
From "Evertjan." <exxjxw.hannivoort@inter.nl.net>
References <73e9271a-a86d-4eb6-9927-9c84d60c9cc6o@googlegroups.com> <XnsAC0995916183eejj99@194.109.6.166> <19bd3446-2d76-4e6d-a131-ee4a9834c331o@googlegroups.com>
Date 2020-08-06 19:01 +0200
Message-ID <XnsAC11C18F2E942eejj99@194.109.6.166> (permalink)

Show all headers | View raw


=?UTF-8?Q?Jonas_Th=C3=B6rnvall?= <jonas.thornvall@gmail.com> wrote on 06
Aug 2020 in comp.lang.javascript: 

> Den onsdag 29 juli 2020 kl. 00:55:42 UTC+2 skrev Evertjan.:
>> <jonas.thornvall@gmail.com> wrote on 28 Jul 2020 in
>> comp.lang.javascript: 
>  
>> 
>> > Anyone have a good idea how i can ***autogenerate them*** 
>> > in followin format. 
>> 
>> Well, not your format, but standard notation:
>> 
>> <script>
>> 
>> const jumps = [[ 1, 2, 2, 1,-1,-2, -2,-1], [-2,-1, 1, 2, 2, 1, -1,-2]];
>> 
>> const knightLegalMoves = (from) => {
>>      const fromPos = from.split('');
>>      const result = [];
>>      for (let i = 0; i < 8; i++ ) {
>>           knight1Move(fromPos, jumps[0][i], jumps[1][i], result);
>>      };
>>      return result;
>> }
>> 
>> const knight1Move = (fromPos, letJump, numbJump, result) => {
>>      const lettVal = fromPos[0].charCodeAt(0) - 65;
>>      const numbVal = fromPos[1] - 1;
>>      let letValRes = lettVal + letJump;
>>      if (letValRes < 0 || letValRes > 7) return;
>>      let numbValRes = numbVal + numbJump;
>>      if (numbValRes < 0 || numbValRes > 7) return;
>>      result.push( String.fromCharCode(letValRes + 65) + (numbValRes +
>>      1) ); 
>> };
>> 
>> console.log( knightLegalMoves('E4') );
>>      // (8) ["F2", "G3", "G5", "F6", "D6", "C5", "C3", "D2"]
>> 
>> console.log( knightLegalMoves('G1') );
>>      // (3) ["H3", "F3", "E2"] 
>> 
>> console.log( knightLegalMoves('A1') );
>>      // (2) ["C2", "B3"]
>> 
>> console.log( knightLegalMoves('H8') );
>>      // (2) ["F7", "G6"]
>> 
>> </script>
>> 
>> 
>> -- 
>> Evertjan.
>> The Netherlands.
>> (Please change the x'es to dots in my emailaddress)
> 
> Hello Evertjan i am not sure how the above distinguish the moves inside
> from the ones outside, i guess it somehow translate positions to rows
> and columns and i checks is if the new value within range of column and
> row after you add or subtract values. I decided to go for a dumb lookup
> table for knights afterall.

No need for that. 
The resulting rows and columns must have a "primitive number" between 0 and 
7 inclusieve. Otherwise they are outside the board. My code checks for that.

> I managed rooks, knights and bishops and started with pawns and knights.
> I guess King is just a queen with single move. The haredest part seem to
> be to check if the king move into a possision in check. Because it seem
> one basicly have to scan thru all opponents pieces possible positions. 

> The standard notation is probably the way to go but a lookup table is
> never wrong "unless you put wrong values into it". 

I would uge you to use "primitive numbering" with 0 to 7 inside all 
routines, and have a standard conversion routine to and from "standard 
notation".
 
> Thanks for refreshing memory had totally forgot about standard notation.



-- 
Evertjan.
The Netherlands.
(Please change the x'es to dots in my emailaddress)

Back to comp.lang.javascript | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Allowed moves database chessboard, knight to many entries.... Jonas Thörnvall <jonas.thornvall@gmail.com> - 2020-07-28 14:31 -0700
  Re: Allowed moves database chessboard, knight to many entries.... Jonas Thörnvall <jonas.thornvall@gmail.com> - 2020-07-28 14:53 -0700
  Re: Allowed moves database chessboard, knight to many entries.... "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2020-07-29 00:55 +0200
    Re: Allowed moves database chessboard, knight to many entries.... Jonas Thörnvall <jonas.thornvall@gmail.com> - 2020-08-06 09:31 -0700
      Re: Allowed moves database chessboard, knight to many entries.... "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2020-08-06 19:01 +0200
        Re: Allowed moves database chessboard, knight to many entries.... Jonas Thörnvall <jonas.thornvall@gmail.com> - 2020-08-08 04:43 -0700
          Re: Allowed moves database chessboard, knight to many entries.... Jonas Thörnvall <jonas.thornvall@gmail.com> - 2020-08-08 04:53 -0700
            Re: Allowed moves database chessboard, knight to many entries.... "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2020-08-08 14:45 +0200
              Re: Allowed moves database chessboard, knight to many entries.... Jonas Thörnvall <jonas.thornvall@gmail.com> - 2020-08-10 02:11 -0700
                Re: Allowed moves database chessboard, knight to many entries.... "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2020-08-10 12:48 +0200
                Re: Allowed moves database chessboard, knight to many entries.... Jonas Thörnvall <jonas.thornvall@gmail.com> - 2020-08-11 11:24 -0700
                Re: Allowed moves database chessboard, knight to many entries.... "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2020-08-11 23:33 +0200
                Re: Allowed moves database chessboard, knight to many entries.... Jonas Thörnvall <jonas.thornvall@gmail.com> - 2020-08-11 14:40 -0700
                Re: Allowed moves database chessboard, knight to many entries.... luserdroog <luser.droog@gmail.com> - 2020-08-11 15:57 -0700
                Re: Allowed moves database chessboard, knight to many entries.... Jonas Thörnvall <jonas.thornvall@gmail.com> - 2020-08-12 00:40 -0700
                Re: Allowed moves database chessboard, knight to many entries.... Jonas Thörnvall <jonas.thornvall@gmail.com> - 2020-08-12 00:42 -0700
                Re: Allowed moves database chessboard, knight to many entries.... Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-08-12 12:12 +0100
                Re: Allowed moves database chessboard, knight to many entries.... Jonas Thörnvall <jonas.thornvall@gmail.com> - 2020-08-12 05:13 -0700
                Re: Allowed moves database chessboard, knight to many entries.... luserdroog <luser.droog@gmail.com> - 2020-08-12 10:23 -0700
                Re: Allowed moves database chessboard, knight to many entries.... Jonas Thörnvall <jonas.thornvall@gmail.com> - 2020-08-12 00:50 -0700
                Re: Allowed moves database chessboard, knight to many entries.... Jonas Thörnvall <jonas.thornvall@gmail.com> - 2020-08-12 01:00 -0700
                Re: Allowed moves database chessboard, knight to many entries.... "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2020-08-12 11:58 +0200
                Re: Allowed moves database chessboard, knight to many entries.... Jonas Thörnvall <jonas.thornvall@gmail.com> - 2020-08-12 05:14 -0700
          Re: Allowed moves database chessboard, knight to many entries.... "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2020-08-08 14:44 +0200
          Re: Allowed moves database chessboard, knight to many entries.... Jonas Thörnvall <jonas.thornvall@gmail.com> - 2020-08-22 08:10 -0700
          Re: Allowed moves database chessboard, knight to many entries.... Scott Sauyet <scott@sauyet.com> - 2020-08-25 16:03 -0700
  Re: Allowed moves database chessboard, knight to many entries.... Scott Sauyet <scott@sauyet.com> - 2020-08-25 15:06 -0700

csiph-web