public void Stage4x4() { currentMenu = "4"; StageSelectButton.SetActive(false); Four.SetActive(true); title.GetComponent <Text> ().text = "4X4"; }
public string GetPresetDataString(GetZoneNameDelegate dGetZoneName = null, bool showIDToo = false) { // Try to get the zone name from the function passed to us if we can. string zoneName = ""; if (dGetZoneName != null) { try { zoneName = dGetZoneName(MapID, showIDToo); } catch { zoneName = "Error retrieving zone name!"; } } // Construct the string. string str = ""; str += "A: " + A.GetWaymarkDataString() + "\r\n"; str += "B: " + B.GetWaymarkDataString() + "\r\n"; str += "C: " + C.GetWaymarkDataString() + "\r\n"; str += "D: " + D.GetWaymarkDataString() + "\r\n"; str += "1: " + One.GetWaymarkDataString() + "\r\n"; str += "2: " + Two.GetWaymarkDataString() + "\r\n"; str += "3: " + Three.GetWaymarkDataString() + "\r\n"; str += "4: " + Four.GetWaymarkDataString() + "\r\n"; str += "Zone: " + zoneName + "\r\n"; str += "Last Modified: " + Time.LocalDateTime.ToString(); return(str); }
private void ParseResult(string[] right) { for (int i = 0; i < right.Length; i++) { var str = right[i]; if (str.Length == One.Length && str.All(b => One.Contains(b))) { ResultArray[i] = 1; } if (str.Length == Four.Length && str.All(b => Four.Contains(b))) { ResultArray[i] = 4; } if (str.Length == Seven.Length && str.All(b => Seven.Contains(b))) { ResultArray[i] = 7; } if (str.Length == Eight.Length && str.All(b => Eight.Contains(b))) { ResultArray[i] = 8; } //Part 2 //6 parts - 0,6,9 if (str.Length == Zero.Length && str.All(b => Zero.Contains(b))) { ResultArray[i] = 0; } if (str.Length == Six.Length && str.All(b => Six.Contains(b))) { ResultArray[i] = 6; } if (str.Length == Nine.Length && str.All(b => Nine.Contains(b))) { ResultArray[i] = 9; } //5 parts - 2,3,5 if (str.Length == Two.Length && str.All(b => Two.Contains(b))) { ResultArray[i] = 2; } if (str.Length == Three.Length && str.All(b => Three.Contains(b))) { ResultArray[i] = 3; } if (str.Length == Five.Length && str.All(b => Five.Contains(b))) { ResultArray[i] = 5; } } if (ResultArray.Any(a => a < 0)) { throw new Exception(); } //Part 2 ResultNumber = Convert.ToInt32(ResultArray[0].ToString() + ResultArray[1].ToString() + ResultArray[2].ToString() + ResultArray[3].ToString()); }
/// <summary>Atualiza os estados das entradas do usuário.</summary> /// <param name="gameTime">Uma instância de GameTime.</param> public void Update(GameTime gameTime) { One.Update(gameTime); Two.Update(gameTime); Three.Update(gameTime); Four.Update(gameTime); Keyboard.Update(gameTime); Mouse.Update(gameTime); }
public void Should_ReturnNumberOfValidNumbersCorrectly(string expected, string input) { _streamReader = StreamHelper.GetStream(input); var result = new Four().Run(_streamReader); Assert.Equal(expected, result); }
/// <summary> /// Use first set of persian characters in unicode ( '\u0660', '\u0661', ... , '\u0669' ) /// </summary> public void UseFirstNumerics() { Zero.SetData('\u0660'); One.SetData('\u0661'); Two.SetData('\u0662'); Three.SetData('\u0663'); Four.SetData('\u0664'); Five.SetData('\u0665'); Six.SetData('\u0666'); Seven.SetData('\u0667'); Eight.SetData('\u0668'); Nine.SetData('\u0669'); }
/// <summary> /// Use second set of persian characters in unicode ( '\u06F0', '\u06F1', ... , '\u06F9' ) /// </summary> public void UseSecondNumerics() { Zero.SetData('\u06F0'); One.SetData('\u06F1'); Two.SetData('\u06F2'); Three.SetData('\u06F3'); Four.SetData('\u06F4'); Five.SetData('\u06F5'); Six.SetData('\u06F6'); Seven.SetData('\u06F7'); Eight.SetData('\u06F8'); Nine.SetData('\u06F9'); }
public TryOutNumbers(Color color) { zero = new Zero(color); one = new One(color); two = new Two(color); three = new Three(color); four = new Four(color); five = new Five(color); six = new Six(color); seven = new Seven(color); eight = new Eight(color); nine = new Nine(color); }
public List <int> GetList(List <int> answer) { One?.GetList(answer); answer.Add(value); Two?.GetList(answer); Three?.GetList(answer); Four?.GetList(answer); Five?.GetList(answer); Six?.GetList(answer); Seven?.GetList(answer); Eight?.GetList(answer); Nine?.GetList(answer); O?.GetList(answer); return(answer); }
public static bool Detect(out Combination combination, Cell input) { combination = new Combination(); if (!input.IsNotNullOrEmpty()) { return(false); } combination.Cells = new Cell[0]; combination.Center = input; combination.Type = input.ChildItem.Type; if (Three.IsCombination(ref combination)) { var three = combination as Three; combination = three; if (Four.IsCombination(ref three)) { var four = three as Four; combination = four; if (Five.IsCombination(ref four)) { var five = four as Five; combination = five; } } three = combination as Three; if (combination.GetType() != typeof(Five) && Angle.IsCombination(ref three)) { var angle = three as Angle; combination = angle; } } var resultName = combination.GetType().Name; if (resultName != "Combination") { Debug.Log(resultName); } var result = combination.GetType() != typeof(Combination); if (!result) { combination = null; } return(result); }
public static void Run() { var one = new One(); Assert.True(one.Test); var two = new Two <object>(); Assert.True(two.Test); var three = new Three(); Assert.False(three.Test); // => interceptors of base class are private! var four = new Four(); Assert.True(four.Test); { var five = new Five <string>(); var strValue = five.StringProp; five.StringProp = "asd"; var intValue = five.IntProp; five.IntProp = 123; var genericValue = five.GenericProp; five.GenericProp = "123"; } { var five = new Five <int>(); var strValue = five.StringProp; five.StringProp = "asd"; var intValue = five.IntProp; five.IntProp = 123; var genericValue = five.GenericProp; five.GenericProp = 123; } }
// Use this for initialization public void Awake() { Save = GameObject.Find("SaveSystem"); Four.SetActive(true); Three.SetActive(true); //fourButton = GameObject.Find ("4x4Button").GetComponent<Button>(); //Three = GameObject.Find ("3x3"); /* * Four = GameObject.Find ("4x4"); * Tutorial = GameObject.Find ("tutorial"); * StageSelectButton = GameObject.Find("ButtonSet"); */ for (int i = 1; i <= 53; i++) { stagePanel.Add(GameObject.Find("Stage (" + i + ")")); } }
public void backButton() { if (currentMenu == "3") { Three.SetActive(false); currentMenu = "mainmenu"; } else if (currentMenu == "4") { Four.SetActive(false); currentMenu = "mainmenu"; } else { SceneManager.LoadScene("StartScreen"); } title.GetComponent <Text> ().text = "STAGE SELECT"; StageSelectButton.SetActive(true); }
private void Parse(string[] left) { One = left.Where(a => a.Count() == 2).FirstOrDefault(); Four = left.Where(a => a.Count() == 4).FirstOrDefault(); Seven = left.Where(a => a.Count() == 3).FirstOrDefault(); Eight = "abcdefg"; //6 parts - 0,6,9 Six = left.Where(a => a.Count() == 6).Single(a => One.All(b => a.Contains(b)) == false); char rightUp = Eight.First(a => Six.Contains(a) == false); string leftUpAndMiddle = string.Concat(Four.Where(a => One.Contains(a) == false)); Nine = left.Where(a => a.Count() == 6).First(a => (a.All(b => Six.Contains(b)) == false) && leftUpAndMiddle.All(b => a.Contains(b))); Zero = left.Where(a => a.Count() == 6).First(a => (a.All(b => Nine.Contains(b)) == false) && (a.All(b => Six.Contains(b)) == false)); //5 parts - 2,3,5 Three = left.Where(a => a.Count() == 5).Single(a => One.All(b => a.Contains(b))); Two = left.Where(a => a.Count() == 5).Single(a => a.Contains(rightUp) && (a.All(b => Three.Contains(b)) == false)); Five = left.Where(a => a.Count() == 5).First(a => (a.All(b => Two.Contains(b)) == false) && (a.All(b => Three.Contains(b)) == false)); }
public static float[,] getControlPointsFor(int start) { switch (start) { case (-1): return(Null.getInstance().getControlPoints()); case 0: return(Zero.getInstance().getControlPoints()); case 1: return(One.getInstance().getControlPoints()); case 2: return(Two.getInstance().getControlPoints()); case 3: return(Three.getInstance().getControlPoints()); case 4: return(Four.getInstance().getControlPoints()); case 5: return(Five.getInstance().getControlPoints()); case 6: return(Six.getInstance().getControlPoints()); case 7: return(Seven.getInstance().getControlPoints()); case 8: return(Eight.getInstance().getControlPoints()); case 9: return(Nine.getInstance().getControlPoints()); default: throw new ArgumentException("Unsupported number requested"); } }
public Form1() { InitializeComponent(); ItemGroupManager = new ToolStripItemGroupManager(toolStripStatusLabel1) { IsLicensed = IsLicensed }; CheckboxItemGroupManager = new ToolStripItemCheckboxGroupManager(toolStripStatusLabel1) { IsLicensed = IsLicensed }; _One = ItemGroupManager.Create <One>(new ToolStripItem[] { oneToolStripMenuItem, toolStripButton1, aToolStripMenuItem }, oneToolStripMenuItem.Image, this); _Two = ItemGroupManager.Create <Two>(new ToolStripItem[] { twoToolStripMenuItem, toolStripSplitButton2, bToolStripMenuItem }); _Three = ItemGroupManager.Create <Three>(new ToolStripItem[] { threeToolStripMenuItem, toolStripButton3, cToolStripMenuItem }); _Four = ItemGroupManager.Create <Four>(new ToolStripItem[] { toolStripButton4, dToolStripMenuItem }); CheckboxItemGroupManager.CreateHome <Left>(new ToolStripItem[] { tsb1, leftToolStripMenuItem }, externalObject: label1).Checked = true; CheckboxItemGroupManager.Create <Center>(new ToolStripItem[] { tsb2, centerToolStripMenuItem }, externalObject: label1); CheckboxItemGroupManager.Create <Right>(new ToolStripItem[] { tsb3, rightToolStripMenuItem }, externalObject: label1); }
public void Start() { currentMenu = "StageSelect"; GameObject go; Four.SetActive(true); Three.SetActive(true); //クリアスタンプをプリント if (!Save.GetComponent <SaveSystem>().noSave) { for (int i = 0; i < Save.GetComponent <SaveSystem>().clearedStage.Count; i++) { Debug.Log(Save.GetComponent <SaveSystem>().clearedStage[i] - 1); go = Instantiate(Resources.Load("Prefabs/clear m")) as GameObject; go.transform.position = stagePanel[Save.GetComponent <SaveSystem>().clearedStage[i] - 4].transform.position; if (Save.GetComponent <SaveSystem>().clearedStage[i] - 1 < 28) { go.transform.parent = Three.transform; } else { go.transform.parent = Four.transform; } go.transform.localScale = new Vector3(6, 6, 6); } } if (Save.GetComponent <SaveSystem>().clearedStage.Count <= 5) { fourButton.interactable = false; } //Four.SetActive(false); //Three.SetActive(false); }
private static Hand isFour(List <Card> cards) { int[] combinations = new int[13]; foreach (Card card in cards) { combinations[card.Hierarchy] += 1; } Pair bestPair = null; Pair secondPair = null; Triple bestTriple = null; Four bestFour = null; for (int i = 12; i >= 0; i--) { switch (combinations[i]) { case 2: if (bestPair == null) { bestPair = new Pair(i); } else if (secondPair == null) { secondPair = new Pair(i); } break; case 3: if (bestTriple == null) { bestTriple = new Triple(i); } break; case 4: if (bestFour == null) { bestFour = new Four(i); } break; default: break; } } if (bestFour != null) { int highest = 0; foreach (Card card in cards) { if (card.Hierarchy != bestFour.CardPower && card.Hierarchy > highest) { highest = card.Hierarchy; } } bestFour.LooseCardPower = highest; return(bestFour); } if (bestTriple != null) { if (bestPair != null) { return(new FullHouse(bestTriple, bestPair)); } else { int[] minorCards = new int[2]; int j = 0; for (int i = 12; i >= 0 && j < 2;) { if (combinations[i] > 0 && i != bestTriple.CardPower) { minorCards[j++] = i; combinations[i]--; } else { i--; } } bestTriple.LooseCardsPower = minorCards; return(bestTriple); } } if (secondPair != null) { int highest = 0; foreach (Card card in cards) { if (card.Hierarchy != bestPair.CardPower && card.Hierarchy != secondPair.CardPower && card.Hierarchy > highest) { highest = card.Hierarchy; } } TwoPairs twoPairs = new TwoPairs(bestPair, secondPair); twoPairs.LooseCardPower = highest; return(twoPairs); } if (bestPair != null) { int[] minorCards = new int[3]; int j = 0; for (int i = 12; i >= 0 && j < 3;) { if (combinations[i] > 0 && i != bestPair.CardPower) { minorCards[j++] = i; combinations[i]--; } else { i--; } } bestPair.LooseCardsPower = minorCards; return(bestPair); } One bestCard = new One(); int[] highestCards = new int[5]; for (int i = 0; i < 5; i++) { highestCards[i] = cards[i].Hierarchy; } return(bestCard); }
public void Should_ComputeIfNumberIsValidCorrectly(bool expected, int number) { var result = new Four().IsValid(number); Assert.Equal(expected, result); }
//OFF /************************************************************* * Obsługa przycisków *************************************************************/ private void Window_KeyDown(object sender, KeyEventArgs e) { if (e.Key == Key.D1 || e.Key == Key.NumPad1) { One.RaiseEvent(new RoutedEventArgs(Button.ClickEvent)); } else if (e.Key == Key.D2 || e.Key == Key.NumPad2) { Two.RaiseEvent(new RoutedEventArgs(Button.ClickEvent)); } else if (e.Key == Key.D3 || e.Key == Key.NumPad3) { Three.RaiseEvent(new RoutedEventArgs(Button.ClickEvent)); } else if (e.Key == Key.D4 || e.Key == Key.NumPad4) { Four.RaiseEvent(new RoutedEventArgs(Button.ClickEvent)); } else if (e.Key == Key.D5 || e.Key == Key.NumPad5) { Five.RaiseEvent(new RoutedEventArgs(Button.ClickEvent)); } else if (e.Key == Key.D6 || e.Key == Key.NumPad6) { Six.RaiseEvent(new RoutedEventArgs(Button.ClickEvent)); } else if (e.Key == Key.D7 || e.Key == Key.NumPad7) { Seven.RaiseEvent(new RoutedEventArgs(Button.ClickEvent)); } else if (e.Key == Key.D8 || e.Key == Key.NumPad8) { if (Keyboard.IsKeyDown(Key.LeftShift)) { Star.RaiseEvent(new RoutedEventArgs(Button.ClickEvent)); } else { Eight.RaiseEvent(new RoutedEventArgs(Button.ClickEvent)); } } else if (e.Key == Key.D9 || e.Key == Key.NumPad9) { Nine.RaiseEvent(new RoutedEventArgs(Button.ClickEvent)); } else if (e.Key == Key.D0 || e.Key == Key.NumPad0) { Zero.RaiseEvent(new RoutedEventArgs(Button.ClickEvent)); } /**********************************************************/ /*else if (e.Key == Key.Enter) * { * Equals.RaiseEvent(new RoutedEventArgs(Button.ClickEvent)); * }*/ else if (e.Key == Key.OemComma || e.Key == Key.OemPeriod || e.Key == Key.Decimal) { Dot.RaiseEvent(new RoutedEventArgs(Button.ClickEvent)); } else if (e.Key == Key.OemMinus || e.Key == Key.Subtract) { Minus.RaiseEvent(new RoutedEventArgs(Button.ClickEvent)); } else if (e.Key == Key.OemPlus || e.Key == Key.Add) { Plus.RaiseEvent(new RoutedEventArgs(Button.ClickEvent)); } else if (e.Key == Key.Delete) { AC.RaiseEvent(new RoutedEventArgs(Button.ClickEvent)); } else if (e.Key == Key.Back) { C.RaiseEvent(new RoutedEventArgs(Button.ClickEvent)); } else if (e.Key == Key.Divide || e.Key == Key.OemBackslash || e.Key == Key.OemQuestion || e.Key == Key.Oem5) { Slash.RaiseEvent(new RoutedEventArgs(Button.ClickEvent)); } else if (e.Key == Key.Multiply) { Star.RaiseEvent(new RoutedEventArgs(Button.ClickEvent)); } else if (e.Key == Key.P) { MP.RaiseEvent(new RoutedEventArgs(Button.ClickEvent)); } else if (e.Key == Key.Escape) { Application.Current.Shutdown(); } Console.WriteLine(e.Key.ToString()); }
void ReleaseDesignerOutlets() { if (Clear != null) { Clear.Dispose(); Clear = null; } if (Decimal != null) { Decimal.Dispose(); Decimal = null; } if (Divise != null) { Divise.Dispose(); Divise = null; } if (Eight != null) { Eight.Dispose(); Eight = null; } if (Equals != null) { Equals.Dispose(); Equals = null; } if (Five != null) { Five.Dispose(); Five = null; } if (Four != null) { Four.Dispose(); Four = null; } if (Minus != null) { Minus.Dispose(); Minus = null; } if (Multiply != null) { Multiply.Dispose(); Multiply = null; } if (Nine != null) { Nine.Dispose(); Nine = null; } if (One != null) { One.Dispose(); One = null; } if (Plus != null) { Plus.Dispose(); Plus = null; } if (ResultField != null) { ResultField.Dispose(); ResultField = null; } if (Seven != null) { Seven.Dispose(); Seven = null; } if (Six != null) { Six.Dispose(); Six = null; } if (Three != null) { Three.Dispose(); Three = null; } if (ToggleSign != null) { ToggleSign.Dispose(); ToggleSign = null; } if (Two != null) { Two.Dispose(); Two = null; } if (Zero != null) { Zero.Dispose(); Zero = null; } }
/*Functionality Added to make the calculator work with Keyboard NumberPad * When the correct Key is detected it will fire off the corresponding button press*/ private void Window_KeyDownPreview(object sender, KeyEventArgs e) { switch (e.Key) { case Key.NumPad0: Zero.RaiseEvent(new RoutedEventArgs(Button.ClickEvent)); break; case Key.NumPad1: One.RaiseEvent(new RoutedEventArgs(Button.ClickEvent)); break; case Key.NumPad2: Two.RaiseEvent(new RoutedEventArgs(Button.ClickEvent)); break; case Key.NumPad3: Three.RaiseEvent(new RoutedEventArgs(Button.ClickEvent)); break; case Key.NumPad4: Four.RaiseEvent(new RoutedEventArgs(Button.ClickEvent)); break; case Key.NumPad5: Five.RaiseEvent(new RoutedEventArgs(Button.ClickEvent)); break; case Key.NumPad6: Six.RaiseEvent(new RoutedEventArgs(Button.ClickEvent)); break; case Key.NumPad7: Seven.RaiseEvent(new RoutedEventArgs(Button.ClickEvent)); break; case Key.NumPad8: Eight.RaiseEvent(new RoutedEventArgs(Button.ClickEvent)); break; case Key.NumPad9: Nine.RaiseEvent(new RoutedEventArgs(Button.ClickEvent)); break; case Key.Add: Plus.RaiseEvent(new RoutedEventArgs(Button.ClickEvent)); break; case Key.Subtract: Minus.RaiseEvent(new RoutedEventArgs(Button.ClickEvent)); break; case Key.Multiply: Multiply.RaiseEvent(new RoutedEventArgs(Button.ClickEvent)); break; case Key.Divide: Divide.RaiseEvent(new RoutedEventArgs(Button.ClickEvent)); break; case Key.Enter: Equals.RaiseEvent(new RoutedEventArgs(Button.ClickEvent)); break; } }
public void Advance() { //advance the program by one cycle //check if reached end of memory; if (pc >= 4095) { Debug.WriteLine("ERR: reached end of memory"); } else if (currentInstruction == "0000") { Debug.WriteLine("ERR: empty opcode"); } //parse current instruction and set it to a variable currentInstruction = String.Format("{0:X2}", memory[pc]) + String.Format("{0:X2}", memory[pc + 1]); byteInstruction = memory[pc]; Debug.WriteLine("Instruction as byte: " + byteInstruction); //parse x x = Convert.ToInt16(Convert.ToString(currentInstruction[1]), 16); //parsy y y = Convert.ToInt16(Convert.ToString(currentInstruction[2]), 16); //parse n n = Convert.ToInt16(Convert.ToString(currentInstruction[3]), 16); //parse kk kk = Convert.ToInt16(currentInstruction.Substring(2), 16); //parse nnn nnn = Convert.ToInt16(currentInstruction.Substring(1), 16); Debug.WriteLine($"\npc={pc}"); Debug.WriteLine($"The current instruction is:{currentInstruction} "); //set drawflag to false by default drawFlag = false; //switch for all possible instructions //TODO: replace this switch (currentInstruction) { case "00E0": Debug.WriteLine("00E0"); if (!usedInstructions.Contains("00E0")) { usedInstructions.Add("00E0"); } Instructions.clr(this); return; case "00EE": Debug.WriteLine("00EE"); if (!usedInstructions.Contains("00EE")) { usedInstructions.Add("00EE"); } Instructions.ret(this); return; case var dummy when One_addr.IsMatch(dummy): Debug.WriteLine("1nnn"); if (!usedInstructions.Contains("1nnn")) { usedInstructions.Add("1nnn"); } Instructions.jmp(this); return; case var dummy when Two_addr.IsMatch(dummy): Debug.WriteLine("2nnn"); if (!usedInstructions.Contains("2nnn")) { usedInstructions.Add("2nnn"); } Instructions.call(this); return; case var dummy when Three.IsMatch(dummy): Debug.WriteLine("3xkk"); if (!usedInstructions.Contains("3xkk")) { usedInstructions.Add("3xkk"); } Instructions.skp_if_kk(this); return; case var dummy when Four.IsMatch(dummy): Debug.WriteLine("4xkk"); if (!usedInstructions.Contains("4xkk")) { usedInstructions.Add("4xkk"); } Instructions.skp_not_kk(this); return; case var dummy when Five.IsMatch(dummy): Debug.WriteLine("5xy0"); if (!usedInstructions.Contains("5xy0")) { usedInstructions.Add("5xy0"); } Instructions.skp_if_x_y(this); return; case var dummy when Six.IsMatch(dummy): Debug.WriteLine("6xkk"); if (!usedInstructions.Contains("6xkk")) { usedInstructions.Add("6xkk"); } Instructions.ld_vx_kk(this); return; case var dummy when Seven.IsMatch(dummy): Debug.WriteLine("7xkk"); if (!usedInstructions.Contains("7xkk")) { usedInstructions.Add("7xkk"); } Instructions.add_vx_kk(this); return; case var dummy when Eight_load.IsMatch(dummy): Debug.WriteLine("8xy0"); if (!usedInstructions.Contains("8xy0")) { usedInstructions.Add("8xy0"); } Instructions.ld_vx_vy(this); return; case var dummy when Eight_or.IsMatch(dummy): Debug.WriteLine("8xy1"); if (!usedInstructions.Contains("8xy1")) { usedInstructions.Add("8xy1"); } Instructions.or_vx_vy(this); return; case var dummy when Eight_and.IsMatch(dummy): Debug.WriteLine("8xy2"); if (!usedInstructions.Contains("8xy2")) { usedInstructions.Add("8xy2"); } Instructions.and_vx_vy(this); return; case var dummy when Eight_xor.IsMatch(dummy): Debug.WriteLine("8xy3"); if (!usedInstructions.Contains("8xy3")) { usedInstructions.Add("8xy3"); } Instructions.xor_vx_vy(this); return; case var dummy when Eight_add.IsMatch(dummy): Debug.WriteLine("8xy4"); if (!usedInstructions.Contains("8xy4")) { usedInstructions.Add("8xy4"); } Instructions.add_vx_vy(this); return; case var dummy when Eight_sub.IsMatch(dummy): Debug.WriteLine("8xy5"); if (!usedInstructions.Contains("8xy5")) { usedInstructions.Add("8xy5"); } Instructions.sub_vx_vy(this); return; case var dummy when Eight_shr.IsMatch(dummy): Debug.WriteLine("8xy6"); if (!usedInstructions.Contains("8xy6")) { usedInstructions.Add("8xy6"); } Instructions.shr_vx_vy(this); return; case var dummy when Eight_subn.IsMatch(dummy): Debug.WriteLine("8xy7"); Instructions.subn_vy_vx(this); return; case var dummy when Eight_shl.IsMatch(dummy): Debug.WriteLine("8xyE"); if (!usedInstructions.Contains("8xyE")) { usedInstructions.Add("8xyE"); } Instructions.shl_vx_vy(this); return; case var dummy when Nine.IsMatch(dummy): Debug.WriteLine("9xy0"); if (!usedInstructions.Contains("9xy0")) { usedInstructions.Add("9xy0"); } Instructions.skp_not_equal(this); return; case var dummy when A_addr.IsMatch(dummy): if (!usedInstructions.Contains("Annn")) { usedInstructions.Add("Annn"); } Debug.WriteLine($"Annn where nnn = {currentInstruction.Substring(1, 3)}"); Instructions.ld_i_nnn(this); return; case var dummy when B_addr.IsMatch(dummy): Debug.WriteLine("Bnnn"); if (!usedInstructions.Contains("Bnnn")) { usedInstructions.Add("Bnnn"); } Instructions.jmp_v0_nnn(this); return; case var dummy when C_addr.IsMatch(dummy): Debug.WriteLine("Cxkk"); if (!usedInstructions.Contains("Cxkk")) { usedInstructions.Add("Cxkk"); } Instructions.ld_vx_rand(this); return; #region draw_func //huomionarvoista: // optimoinnin vuoksi voisi olla fiksua keksiä tapa vähentää type conversioneita // huom. mahdolliset bugit jotka mainittu edellisissä kommenteissa case var dummy when D_addr.IsMatch(dummy): stopwatch.Start(); Debug.WriteLine("Dxyn"); if (!usedInstructions.Contains("Dxyn")) { usedInstructions.Add("Dxyn"); } Instructions.drw(this); stopwatch.Stop(); Debug.WriteLine($"draw function elapsed ms = {stopwatch.ElapsedMilliseconds}"); stopwatch.Reset(); break; #endregion case var dummy when E_skp.IsMatch(dummy): Debug.WriteLine("Ex9E"); if (!usedInstructions.Contains("Ex9E")) { usedInstructions.Add("Ex9E"); } Instructions.skp_vx(this); return; case var dummy when E_sknp.IsMatch(dummy): Debug.WriteLine("ExA1"); if (!usedInstructions.Contains("ExA1")) { usedInstructions.Add("ExA1"); } Instructions.sknp_vx(this); return; case var dummy when F_load_from_dt.IsMatch(dummy): Debug.WriteLine("Fx07"); if (!usedInstructions.Contains("Fx07")) { usedInstructions.Add("Fx07"); } Instructions.ld_vx_dt(this); Debug.WriteLine($"registers[{x}] = {registers[x]}"); return; case var dummy when F_load_key.IsMatch(dummy): Debug.WriteLine("Fx0A"); if (!usedInstructions.Contains("Fx0A")) { usedInstructions.Add("Fx0"); } Instructions.ld_vx_key(this); return; case var dummy when F_load_to_dt.IsMatch(dummy): Debug.WriteLine("Fx15"); if (!usedInstructions.Contains("Fx15")) { usedInstructions.Add("Fx15"); } Instructions.ld_dt_vx(this); Debug.WriteLine($"delayTimer has been set to {delayTimer}"); return; case var dummy when F_load_to_st.IsMatch(dummy): Debug.WriteLine("Fx18"); if (!usedInstructions.Contains("Annn")) { usedInstructions.Add("Annn"); } Instructions.ld_st_vx(this); return; case var dummy when Add_i_vx.IsMatch(dummy): Debug.WriteLine("Fx1E"); if (!usedInstructions.Contains("Fx1E")) { usedInstructions.Add("Fx1E"); } Instructions.add_i_vx(this); return; case var dummy when Load_f_vx.IsMatch(dummy): Debug.WriteLine("Fx29"); if (!usedInstructions.Contains("Fx29")) { usedInstructions.Add("Fx29"); } Instructions.ld_f_vx(this); return; case var dummy when Load_b_vx.IsMatch(dummy): Debug.WriteLine("Fx33"); if (!usedInstructions.Contains("Fx33")) { usedInstructions.Add("Fx33"); } Instructions.ld_bcd(this); return; case var dummy when Load_i_vx.IsMatch(dummy): Debug.WriteLine("Fx55"); if (!usedInstructions.Contains("Fx55")) { usedInstructions.Add("Fx55"); } Instructions.ld_i_vx(this); return; case var dummy when Load_vx_i.IsMatch(dummy): Debug.WriteLine("Fx65"); if (!usedInstructions.Contains("Fx65")) { usedInstructions.Add("Fx65"); } Instructions.ld_vx_i(this); return; default: Debug.WriteLine("Unknown instruction"); pc += 2; return; } }
static void Main(string[] args) { Four.Go(); Console.WriteLine("eh?"); Console.ReadKey(); }