static void Main(string[] args) { string pathToMiniZork = @"..\..\..\minizork.z3"; GameMemory minizork = GameMemory.OpenFile(pathToMiniZork); //ReadDictionaryTillBreak(minizork); DictionaryHelper dictionary = new DictionaryHelper(); Console.WriteLine($"Dictionary is expected to have {dictionary.CountOfEntries(minizork)} entries"); string expectedFirst10EntriesString = "$ve . , #comm #rand #reco #unre \" a about"; string[] expectedFirst10Entries = expectedFirst10EntriesString.Split(' '); List<string> nEntries = new List<string>(); int n = 10; for(int i = 0; i < n; i++ ) { string entry = dictionary.ReadNthEntry(i, minizork).Print; Console.WriteLine($"Expected: {expectedFirst10Entries[i]} but Found: {entry}"); } WordAddress testText = new WordAddress(0xb106); IEnumerable<Zchar> story = Zchar.ReadWordsTillBreak(testText, minizork); char[] toPrint = Zchar.DecodeFromZString(story, minizork).ToArray(); string printMe = new string(toPrint); Console.Write(printMe); TestMemoryBase(); TestReadingAndWritingGameState(); TestReadVersionNumberFromFile(pathToMiniZork); //TestBitTwiddling(); //19 t 0d h 0a e 00 _ 05 ? 05 ? //1e y 14 o 1a u 17 r 00 _ 05 ? ReadFromAbbrTable(pathToMiniZork); Console.WriteLine("Now reading every abbreviation in order"); for(int i = 0; i < 96; i++) { AbbreviationNumber num = new AbbreviationNumber(i); var zchars = Zchar.ReadAbbrevTillBreak(num, minizork); var normalChars = Zchar.DecodeFromZString(zchars, minizork, false) .ToArray(); Console.WriteLine($"Abbrev number {i} : {new string(normalChars)}"); } Console.ReadKey(); }
private static void ReadDictionaryTillBreak(GameMemory zorkFile) { DictionaryHelper dictionary = new DictionaryHelper(); WordAddress startOfEntries = dictionary.GetOffSetOfNthEntry(0, zorkFile); WordAddress ptrFirstEntry = new WordAddress(startOfEntries.Value); var test = Zchar.ReadWordsTillBreak(ptrFirstEntry, zorkFile); char[] result = Zchar.DecodeFromZString(test, zorkFile, permitRecurse: false) .ToArray(); Console.Write(new string(result)); }