Advertisement
Guest User

Untitled

a guest
Mar 29th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.18 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace func.brainfuck
  6. {
  7. public class BrainfuckBasicCommands
  8. {
  9. public static void RegisterTo(IVirtualMachine vm, Func<int> read, Action<char> write)
  10. {
  11. // var res = Convert.ToChar(vm.Memory[vm.MemoryPointer]);
  12. char[] chars = "QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890".ToCharArray();
  13. vm.RegisterCommand('.', b => { write(Convert.ToChar(vm.Memory[vm.MemoryPointer])); });
  14. vm.RegisterCommand('+', b => { vm.Memory[vm.MemoryPointer]= (byte)((vm.Memory[vm.MemoryPointer]+1)%256); });
  15. vm.RegisterCommand('-', b => { vm.Memory[vm.MemoryPointer] = vm.Memory[vm.MemoryPointer] == 0 ? vm.Memory[vm.MemoryPointer] = 255
  16. : (byte)(vm.Memory[vm.MemoryPointer] - 1); });
  17. vm.RegisterCommand(',', b => { vm.Memory[vm.MemoryPointer] = (byte)read(); });
  18. vm.RegisterCommand('>', b => { vm.MemoryPointer++; });
  19. vm.RegisterCommand('<', b => { vm.MemoryPointer--; });
  20.  
  21. foreach (var char1 in chars)
  22. vm.RegisterCommand(char1, b => { vm.Memory[vm.MemoryPointer] = (byte)char1; });
  23. }
  24. }
  25. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement