18
最小的NetHack
NetHack是一款类似流氓的游戏,玩家必须从地牢的最低级别取回Yendor的护身符。通常通过telnet进行游戏,整个游戏均以ASCII图形表示。游戏非常具有挑战性,需要许多游戏技巧的知识才能成功。 出于此挑战的目的,假定整个地牢是一个单独的级别,并且只有5×16个字符。此外,假设这是一个“安全”地牢,或者您只是在实现一个原型-不会有怪物,对饥饿的担忧等。实际上,您只能跟踪角色,护身符和游戏的位置当玩家到达护身符的相同位置时,将有效结束。 挑战要求 将有一个5×16的地牢(单层)。 给玩家一个开始的位置(可以选择随机),而护身符一个单独的随机(每次运行该程序都不同)在地牢内的开始位置。即,不允许护身符与玩家在同一方块上开始。 接受四个输入键,这些输入键可一次将玩家移动一个方块(四个基本方向)。允许读取/处理其他输入(需要按下“ enter”等的readline()函数)。 禁止在地牢范围内旅行。例如,如果玩家在地牢的右边缘,则按向右不应该执行任何操作。 在初始生成之后和每次移动之后,请打印游戏的状态。由于这是代码打法,并且打印相当无趣,因此假设状态没有变化,请忽略打印函数和函数调用的字符数。空单元格应显示为句点(.),护身符应显示为双引号("),字符应显示为符号(@)。 当玩家“发现”护身符时游戏结束(到达同一方块) 获奖 这是高尔夫挑战赛的代码,从今天起一周内满足要求的最短代码将被宣布为获胜者。 例 这是C#(无溶剂)的示例解决方案,以显示基本要求和示例输出。 using System; namespace nh { class Program { static Random random = new Random(); // player x/y, amulet x/y static int px, py, ax, ay; static void Main(string[] args) { px = random.Next(0, 16); py = …
64
code-golf