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
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 Aug 20 '20 at 21:14
  • 37
    I guess "a" means "yes to all", like in many cli utilites (e.g. powershell) – enkryptor Aug 20 '20 at 21:25
  • 11
    @enkryptor Considering also the line of source code mentioned, my guess would be that it stands for "auto(matic)". – Will Aug 20 '20 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 Aug 21 '20 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 Aug 21 '20 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 Aug 20 '20 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 Aug 21 '20 at 19:59
  • The a stands for "always". – Trevoke Aug 23 '20 at 17:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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