21

I am new to Nethack, English is not my first language, and the first game screen shows:

NetHack, Copyright 1985-2018
         By Stichting Mathematisch Centrum and M. Stephenson.
         Version 3.6.1 Unix, revised Sep 16 16:35:42 2018.
         See license for details.


Shall I pick a character's race, role, gender and alignment for you? [ynaq] 

Looking at each letter in the option list, I presume that they mean:

  • y: yes
  • n: no
  • a: unknown
  • q: quit or exit

What does the "a" option do?

0

2 Answers 2

27

Choosing a means no takebacks are allowed for this choice.

The explanation can be found in the game's code. For example, lines 544 through 548 of /win/tty/wintty.c (windows version, console menu) state:

    /* this prompt string ends in "[ynaq]?":
       y - game picks role,&c then asks player to confirm;
       n - player manually chooses via menu selections;
       a - like 'y', but skips confirmation and starts game;
       q - quit
     */

so it appears that choosing the a option does the same as choosing the y option (randomize your role), but does not allow you to confirm or cancel if you got a combination you don't want to play, instead it will immediately start the game.

Looking a bit further at line 950:

getconfirmation = (picksomething && pick4u != 'a' && !flags.randomall);

The boolean getconfirmation is always false if pick4u (containing the player's choice) is set to a. Thus the program will not run the code asking for confirmation, instead leaving the function and presumably going on to setup the game.

8
  • 21
    I don't know if I'd call that "ironman mode" so much as "I'm feeling lucky mode." In my experience, "ironman" usually means the game's difficulty is increased by changing game mechanics.
    – scohe001
    Commented Aug 20, 2020 at 21:14
  • 39
    I guess "a" means "yes to all", like in many cli utilites (e.g. powershell)
    – enkryptor
    Commented Aug 20, 2020 at 21:25
  • 11
    @enkryptor Considering also the line of source code mentioned, my guess would be that it stands for "auto(matic)".
    – Will
    Commented Aug 20, 2020 at 21:28
  • 4
    @scohe001I only know "Ironman" to mean "You can't save/load except when quitting, so no takebacks". But I guess there's multiple meanings to it :)
    – Erik
    Commented Aug 21, 2020 at 6:38
  • 1
    Echoing @enkryptor here: considering Nethack’s origins and its native environment, it’s almost-certainly echoing various *nix utilities that use the same options. In addition to vim that chepner mentions, git comes to mind immediately, though the --patch option in git that uses ynaq has quite a few other options besides those four.
    – KRyan
    Commented Aug 21, 2020 at 19:58
18

It's hard to find information on this, and I've often wondered it myself, but it seems to stand for "all". Even the Nethack Wiki doesn't define "ynaq".

In the case of item accumulation:

  • Typing y picks up that item, and displays the next.
  • Typing n displays the next item.
  • Typing a picks up that item, and all remaining items of the named types. The program will not allow the player to pick up any item which is too heavy.
  • Typing q aborts the command.

In the case of starting a new game, it would make all relevant choices for you so the game can begin in earnest.

Do note that when pressing q your character will be deleted. It's best to save instead using Shift+S.

References:

https://thekill08.wordpress.com/2008/03/15/hack-and-nethack-the-software-distillery/ ftp://ftp.cuhk.edu.hk/pub/oldies/apple2/unsorted/Hack.txt

3
  • 5
    It seems to me that "a" probably stands for "auto" (as in "automatic"), which fits the context you describe somewhat better than "all".
    – Will
    Commented Aug 20, 2020 at 21:23
  • 6
    @Will It’s definitely “all,” since this usage is common in the *nix world and is equivalent to simply using y in response to all prompts.
    – KRyan
    Commented Aug 21, 2020 at 19:59
  • The a stands for "always".
    – Trevoke
    Commented Aug 23, 2020 at 17:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.