public void Compute() { //int iX = InputX.Get2sComplement(), iY = InputY.Get2sComplement(); int iX = InputX.GetValue(), iY = InputY.GetValue(); if (ZeroX.Value == 1) { iX = 0; } if (ZeroY.Value == 1) { iY = 0; } if (NotX.Value == 1) { iX = ~iX; } if (NotY.Value == 1) { iY = ~iY; } int iResult = 0; if (F.Value == 0) { iResult = iX & iY; } else { iResult = iX + iY; } if (NotOutput.Value == 1) { iResult = ~iResult; } Output.SetValue(iResult); //Output.Set2sComplement(iResult); if (iResult == 0) { Zero.Value = 1; } else { Zero.Value = 0; } if (Output.GetValue() < 0) { Negative.Value = 1; } else { Negative.Value = 0; } //Console.WriteLine("ALU state: " + ToString()); }
public void OnClickBtn6() { Demo.displayText = "\n " + "<color=red>" + "开始运动至期望位姿" + "</color>"; Demo.flag2 = true; Demo.pose[0] = System.Convert.ToDouble(InputX.text); InputX.text = ""; Demo.pose[1] = System.Convert.ToDouble(InputY.text); InputY.text = ""; Demo.pose[2] = System.Convert.ToDouble(InputZ.text); InputZ.text = ""; Demo.pose[3] = System.Convert.ToDouble(InputQ1.text); InputQ1.text = ""; Demo.pose[4] = System.Convert.ToDouble(InputQ2.text); InputQ2.text = ""; Demo.pose[5] = System.Convert.ToDouble(InputQ3.text); InputQ3.text = ""; Demo.pose[6] = System.Convert.ToDouble(InputQ4.text); InputQ4.text = ""; InputX.ActivateInputField(); InputY.ActivateInputField(); InputZ.ActivateInputField(); InputQ1.ActivateInputField(); InputQ2.ActivateInputField(); InputQ3.ActivateInputField(); InputQ4.ActivateInputField(); }
public override void Move(CharacterController controller, Transform transform) { rotateDirection.Set(InputRotateX.SetFloat(), InputRotateY.SetFloat(), InputRotateZ.SetFloat()); transform.Rotate(rotateDirection); moveDirection.Set(InputX.SetFloat(), InputY.SetFloat(), InputZ.SetFloat()); //changed y from InputY.SetFloat() if (!controller.isGrounded) { moveDirection.y -= gravity * Time.deltaTime; // Debug.Log("Gravity!" + moveDirection.y); } moveDirection = transform.TransformDirection(moveDirection); if (moveSpeedMultiplier != null) { moveDirection *= speed * moveSpeedMultiplier.FloatValue; } else { moveDirection *= speed; } if (JumpInput.SetFloat() != 0) { moveDirection.y = JumpInput.SetFloat(); } //Debug.Log(moveDirection); controller.Move(moveDirection * Time.deltaTime); }
public override bool TestGate() { InputX.Set2sComplement(5); InputY.Set2sComplement(5); ZeroX.Value = 1; NotX.Value = 1; ZeroY.Value = 0; NotY.Value = 0; F.Value = 0; NotOutput.Value = 1; Console.WriteLine("Case 1: " + Output.Get2sComplement()); Console.WriteLine("Negative?: " + Negative.Value); Console.WriteLine("Zero?: " + Zero.Value); Console.WriteLine(""); InputX.Set2sComplement(5); InputY.Set2sComplement(5); ZeroX.Value = 0; NotX.Value = 0; ZeroY.Value = 1; NotY.Value = 1; F.Value = 0; NotOutput.Value = 0; Console.WriteLine("Case 2: " + Output.Get2sComplement()); Console.WriteLine("Negative?: " + Negative.Value); Console.WriteLine("Zero?: " + Zero.Value); Console.WriteLine(""); InputX.SetValue(6); InputY.SetValue(5); ZeroX.Value = 0; NotX.Value = 0; ZeroY.Value = 1; NotY.Value = 1; F.Value = 0; NotOutput.Value = 1; if (Output.Get2sComplement() != -7 || Zero.Value != 0 || Negative.Value != 1) { return(false); } ZeroX.Value = 1; ZeroY.Value = 1; NotX.Value = 0; NotY.Value = 0; F.Value = 1; NotOutput.Value = 0; if (Output.Get2sComplement() != 0 || Zero.Value != 1 || Negative.Value != 0) { return(false); } return(true); }
public override void Move(CharacterController controller, Transform transform) { if (controller.isGrounded) { moveDirection.Set(InputX.SetFloat(), InputY.SetFloat(), InputZ.SetFloat()); moveDirection = transform.TransformDirection(moveDirection); moveDirection *= speed; //moveDirection.y = JumpInput.SetFloat(); } moveDirection.y -= gravity * Time.deltaTime; controller.Move(moveDirection * Time.deltaTime); }
public void Move(CharacterController controller, Transform transform) { if (controller.isGrounded) { moveDirection.x = InputX.SetFloat(); moveDirection.y = InputY.SetFloat(); moveDirection.z = InputZ.SetFloat(); moveDirection = transform.TransformDirection(moveDirection); moveDirection *= speed; if (Input.GetButton("Jump")) { moveDirection.y = jumpSpeed; } } moveDirection.y -= gravity * Time.deltaTime; controller.Move(moveDirection * Time.deltaTime); }
public override bool TestGate() { int wordBitsFilter = WordBitsFilter(); var wsFlags = new WireSet(6); int inputPermutationsCount = (int)Math.Pow(2, Size); int flagsPermutationsCount = (int)Math.Pow(2, wsFlags.Size); for (int i = 0; i < inputPermutationsCount; i++) { InputX.SetValue(i); for (int j = 0; j < inputPermutationsCount; j++) { InputY.SetValue(j); for (int k = 0; k < flagsPermutationsCount; k++) { wsFlags.SetValue(k); SetFlags(wsFlags); bool test = Test( wordBitsFilter, InputX.Get2sComplement(), InputY.Get2sComplement(), ZeroX.Value, NotX.Value, ZeroY.Value, NotY.Value, F.Value, NotOutput.Value ); if (!test) { return(false); } } } } return(true); }
public override void Move(CharacterController controller, Transform transform) { if (!controller.isGrounded) { moveDirection.y -= gravity * Time.deltaTime; } rotateDirection.Set(InputRotateX.SetFloat(), InputRotateY.SetFloat(), InputRotateZ.SetFloat()); transform.Rotate(rotateDirection); moveDirection.Set(InputX.SetFloat(), InputY.SetFloat(), InputZ.SetFloat()); moveDirection = transform.TransformDirection(moveDirection); moveDirection *= speed; if (JumpInput.SetFloat() != 0) { moveDirection.y = JumpInput.SetFloat(); } //Debug.Log(moveDirection); controller.Move(moveDirection * Time.deltaTime); }
private bool TestNumbers(int iX, int iY) { InputX.SetValue(iX); InputY.SetValue(iY); SetControlBits(1, 0, 1, 0, 1, 0); if (Output.GetValue() != 0) { return(false); } SetControlBits(1, 1, 1, 1, 1, 1); if (Output.GetValue() != 1) { return(false); } SetControlBits(1, 1, 1, 0, 1, 0); if (Output.GetValue() != -1) { return(false); } SetControlBits(0, 0, 1, 1, 0, 0); if (Output.GetValue() != iX) { return(false); } SetControlBits(1, 1, 0, 0, 0, 0); if (Output.GetValue() != iY) { return(false); } SetControlBits(0, 0, 1, 1, 0, 1); if (iX > 0 && Output.GetValue() != ~iX) { return(false); } SetControlBits(1, 1, 0, 0, 0, 1); if (iY > 0 && Output.GetValue() != ~iY) { return(false); } SetControlBits(0, 1, 1, 1, 1, 1); if (Output.GetValue() != iX + 1) { return(false); } SetControlBits(1, 1, 0, 1, 1, 1); if (Output.GetValue() != iY + 1) { return(false); } SetControlBits(0, 0, 1, 1, 1, 0); if (Output.GetValue() != iX - 1) { return(false); } SetControlBits(1, 1, 0, 0, 1, 0); if (Output.GetValue() != iY - 1) { return(false); } SetControlBits(0, 0, 0, 0, 1, 0); if (Output.GetValue() != iX + iY) { return(false); } SetControlBits(0, 1, 0, 0, 1, 1); if (Output.GetValue() != iX - iY) { return(false); } SetControlBits(0, 0, 0, 1, 1, 1); if (Output.GetValue() != iY - iX) { return(false); } SetControlBits(0, 0, 0, 0, 0, 0); if (Output.GetValue() != (iY & iX)) { return(false); } SetControlBits(0, 1, 0, 1, 0, 1); if (Output.GetValue() != (iY | iX)) { return(false); } return(true); }
private void ChangeToolHeader(InputY input) { routineActive = false; if (input == InputY.Up) { --ActiveToolHeader; setToolActivityMaterials(); } else { ++ActiveToolHeader; setToolActivityMaterials(); } void setToolActivityMaterials() { switch (ActiveToolHeader) { case ToolHeader.numParts: { routineActive = true; AllTxtInactive(); txtNumParts.material = activeFont; break; } case ToolHeader.partType: { AllTxtInactive(); txtPartType.material = activeFont; PartType.ToggleSelected(true); break; } case ToolHeader.ruleFilter: { AllTxtInactive(); txtRuleFilter.material = activeFont; RuleFilter.ToggleSelected(true); break; } case ToolHeader.placeType: { AllTxtInactive(); txtPlaceType.material = activeFont; PlacementType.ToggleSelected(true); break; } case ToolHeader.saveLoad: { AllTxtInactive(); txtSaveLoad.material = activeFont; SaveLoad.ToggleSelected(true); break; } case ToolHeader.simStat: { AllTxtInactive(); txtSimStat.material = activeFont; break; } } } void AllTxtInactive() { txtNumParts.material = inactiveFont; txtPartType.material = inactiveFont; txtRuleFilter.material = inactiveFont; txtPlaceType.material = inactiveFont; txtSaveLoad.material = inactiveFont; txtSimStat.material = inactiveFont; PartType.ToggleSelected(false); RuleFilter.ToggleSelected(false); PlacementType.ToggleSelected(false); SaveLoad.ToggleSelected(false); SaveLoad.Initialize(); } }
public override bool TestGate() { Console.WriteLine("TESTING FOR X=5, Y=3"); //1 InputX.Set2sComplement(5); InputY.Set2sComplement(5); ZeroX.Value = 1; NotX.Value = 0; ZeroY.Value = 1; NotY.Value = 0; F.Value = 1; NotOutput.Value = 0; Console.WriteLine("Case 1: " + Output.Get2sComplement()); Console.WriteLine("Negative?: " + Negative.Value); Console.WriteLine("Zero?: " + Zero.Value); Console.WriteLine(""); //2 InputX.Set2sComplement(5); InputY.Set2sComplement(5); ZeroX.Value = 1; NotX.Value = 1; ZeroY.Value = 1; NotY.Value = 1; F.Value = 1; NotOutput.Value = 1; Console.WriteLine("Case 2: " + Output.Get2sComplement()); Console.WriteLine("Negative?: " + Negative.Value); Console.WriteLine("Zero?: " + Zero.Value); Console.WriteLine(""); //3 InputX.Set2sComplement(5); InputY.Set2sComplement(5); ZeroX.Value = 1; NotX.Value = 1; ZeroY.Value = 1; NotY.Value = 0; F.Value = 1; NotOutput.Value = 0; Console.WriteLine("Case 3: " + Output.Get2sComplement()); Console.WriteLine("Negative?: " + Negative.Value); Console.WriteLine("Zero?: " + Zero.Value); Console.WriteLine(""); //4 InputX.Set2sComplement(5); InputY.Set2sComplement(5); ZeroX.Value = 0; NotX.Value = 0; ZeroY.Value = 1; NotY.Value = 1; F.Value = 0; NotOutput.Value = 0; Console.WriteLine("Case 4: " + Output.Get2sComplement()); Console.WriteLine("Negative?: " + Negative.Value); Console.WriteLine("Zero?: " + Zero.Value); Console.WriteLine(""); //5 InputX.Set2sComplement(5); InputY.Set2sComplement(5); ZeroX.Value = 1; NotX.Value = 1; ZeroY.Value = 0; NotY.Value = 0; F.Value = 0; NotOutput.Value = 0; Console.WriteLine("Case 5: " + Output.Get2sComplement()); Console.WriteLine("Negative?: " + Negative.Value); Console.WriteLine("Zero?: " + Zero.Value); Console.WriteLine(""); //6 InputX.Set2sComplement(5); InputY.Set2sComplement(5); ZeroX.Value = 0; NotX.Value = 0; ZeroY.Value = 1; NotY.Value = 1; F.Value = 0; NotOutput.Value = 1; Console.WriteLine("Case 6: " + Output.Get2sComplement()); Console.WriteLine("Negative?: " + Negative.Value); Console.WriteLine("Zero?: " + Zero.Value); Console.WriteLine(""); //7 InputX.Set2sComplement(5); InputY.Set2sComplement(5); ZeroX.Value = 1; NotX.Value = 1; ZeroY.Value = 0; NotY.Value = 0; F.Value = 0; NotOutput.Value = 1; Console.WriteLine("Case 7: " + Output.Get2sComplement()); Console.WriteLine("Negative?: " + Negative.Value); Console.WriteLine("Zero?: " + Zero.Value); Console.WriteLine(""); //8 InputX.Set2sComplement(5); InputY.Set2sComplement(5); ZeroX.Value = 0; NotX.Value = 0; ZeroY.Value = 1; NotY.Value = 1; F.Value = 1; NotOutput.Value = 1; Console.WriteLine("Case 8: " + Output.Get2sComplement()); Console.WriteLine("Negative?: " + Negative.Value); Console.WriteLine("Zero?: " + Zero.Value); Console.WriteLine(""); //9 InputX.Set2sComplement(5); InputY.Set2sComplement(5); ZeroX.Value = 1; NotX.Value = 1; ZeroY.Value = 0; NotY.Value = 0; F.Value = 1; NotOutput.Value = 1; Console.WriteLine("Case 9: " + Output.Get2sComplement()); Console.WriteLine("Negative?: " + Negative.Value); Console.WriteLine("Zero?: " + Zero.Value); Console.WriteLine(""); //10 InputX.Set2sComplement(5); InputY.Set2sComplement(5); ZeroX.Value = 0; NotX.Value = 1; ZeroY.Value = 1; NotY.Value = 1; F.Value = 1; NotOutput.Value = 1; Console.WriteLine("Case 10: " + Output.Get2sComplement()); Console.WriteLine("Negative?: " + Negative.Value); Console.WriteLine("Zero?: " + Zero.Value); Console.WriteLine(""); //11 InputX.Set2sComplement(5); InputY.Set2sComplement(5); ZeroX.Value = 1; NotX.Value = 1; ZeroY.Value = 0; NotY.Value = 1; F.Value = 1; NotOutput.Value = 1; Console.WriteLine("Case 11: " + Output.Get2sComplement()); Console.WriteLine("Negative?: " + Negative.Value); Console.WriteLine("Zero?: " + Zero.Value); Console.WriteLine(""); //12 InputX.Set2sComplement(5); InputY.Set2sComplement(5); ZeroX.Value = 0; NotX.Value = 0; ZeroY.Value = 1; NotY.Value = 1; F.Value = 1; NotOutput.Value = 0; Console.WriteLine("Case 12: " + Output.Get2sComplement()); Console.WriteLine("Negative?: " + Negative.Value); Console.WriteLine("Zero?: " + Zero.Value); Console.WriteLine(""); //13 InputX.Set2sComplement(5); InputY.Set2sComplement(5); ZeroX.Value = 1; NotX.Value = 1; ZeroY.Value = 0; NotY.Value = 0; F.Value = 1; NotOutput.Value = 0; Console.WriteLine("Case 13: " + Output.Get2sComplement()); Console.WriteLine("Negative?: " + Negative.Value); Console.WriteLine("Zero?: " + Zero.Value); Console.WriteLine(""); //14 InputX.Set2sComplement(5); InputY.Set2sComplement(5); ZeroX.Value = 0; NotX.Value = 0; ZeroY.Value = 0; NotY.Value = 0; F.Value = 1; NotOutput.Value = 0; Console.WriteLine("Case 14: " + Output.Get2sComplement()); Console.WriteLine("Negative?: " + Negative.Value); Console.WriteLine("Zero?: " + Zero.Value); Console.WriteLine(""); //15 InputX.Set2sComplement(5); InputY.Set2sComplement(5); ZeroX.Value = 0; NotX.Value = 1; ZeroY.Value = 0; NotY.Value = 0; F.Value = 1; NotOutput.Value = 1; Console.WriteLine("Case 15: " + Output.Get2sComplement()); Console.WriteLine("Negative?: " + Negative.Value); Console.WriteLine("Zero?: " + Zero.Value); Console.WriteLine(""); //16 InputX.Set2sComplement(5); InputY.Set2sComplement(5); ZeroX.Value = 0; NotX.Value = 0; ZeroY.Value = 0; NotY.Value = 1; F.Value = 1; NotOutput.Value = 1; Console.WriteLine("Case 16: " + Output.Get2sComplement()); Console.WriteLine("Negative?: " + Negative.Value); Console.WriteLine("Zero?: " + Zero.Value); Console.WriteLine(""); //17 InputX.Set2sComplement(5); InputY.Set2sComplement(5); ZeroX.Value = 0; NotX.Value = 0; ZeroY.Value = 0; NotY.Value = 0; F.Value = 0; NotOutput.Value = 0; Console.WriteLine("Case 17: " + Output.Get2sComplement()); Console.WriteLine("Negative?: " + Negative.Value); Console.WriteLine("Zero?: " + Zero.Value); Console.WriteLine(""); //18 InputX.Set2sComplement(5); InputY.Set2sComplement(5); ZeroX.Value = 0; NotX.Value = 1; ZeroY.Value = 0; NotY.Value = 1; F.Value = 0; NotOutput.Value = 1; Console.WriteLine("Case 18: " + Output.Get2sComplement()); Console.WriteLine("Negative?: " + Negative.Value); Console.WriteLine("Zero?: " + Zero.Value); Console.WriteLine(""); return(true); // throw new NotImplementedException(); }
public override bool TestGate() { InputX.SetValue(6); InputY.SetValue(5); //setting ALU bit settings ZeroX.Value = 1; ZeroY.Value = 1; NotX.Value = 0; NotY.Value = 0; F.Value = 1; NotOutput.Value = 0; // if (Output.Get2sComplement() != 0 || Zero.Value != 1 || Negative.Value != 0) { return(false); } //setting ALU bit settings ZeroX.Value = 1; ZeroY.Value = 1; NotX.Value = 1; NotY.Value = 1; F.Value = 1; NotOutput.Value = 1; // if (Output.Get2sComplement() != 1 || Zero.Value != 0 || Negative.Value != 0) { return(false); } //setting ALU bit settings ZeroX.Value = 1; ZeroY.Value = 1; NotX.Value = 1; NotY.Value = 0; F.Value = 1; NotOutput.Value = 0; // if (Output.Get2sComplement() != -1 || Zero.Value != 0 || Negative.Value != 1) { return(false); } //setting ALU bit settings ZeroX.Value = 0; ZeroY.Value = 1; NotX.Value = 0; NotY.Value = 1; F.Value = 0; NotOutput.Value = 0; // if (Output.Get2sComplement() != 6 || Zero.Value != 0 || Negative.Value != 0) { return(false); } //setting ALU bit settings ZeroX.Value = 1; NotX.Value = 1; ZeroY.Value = 0; NotY.Value = 0; F.Value = 0; NotOutput.Value = 0; // if (Output.Get2sComplement() != 5 || Zero.Value != 0 || Negative.Value != 0) { return(false); } //setting ALU bit settings ZeroX.Value = 0; NotX.Value = 0; ZeroY.Value = 1; NotY.Value = 1; F.Value = 0; NotOutput.Value = 1; // if (Output.Get2sComplement() != -7 || Zero.Value != 0 || Negative.Value != 1) { return(false); } //setting ALU bit settings ZeroX.Value = 1; NotX.Value = 1; ZeroY.Value = 0; NotY.Value = 0; F.Value = 0; NotOutput.Value = 1; // if (Output.Get2sComplement() != -6 || Zero.Value != 0 || Negative.Value != 1) { return(false); } //setting ALU bit settings ZeroX.Value = 0; NotX.Value = 0; ZeroY.Value = 1; NotY.Value = 1; F.Value = 1; NotOutput.Value = 1; // if (Output.Get2sComplement() != -6 || Zero.Value != 0 || Negative.Value != 1) { return(false); } //setting ALU bit settings ZeroX.Value = 1; NotX.Value = 1; ZeroY.Value = 0; NotY.Value = 0; F.Value = 1; NotOutput.Value = 1; // if (Output.Get2sComplement() != -5 || Zero.Value != 0 || Negative.Value != 1) { return(false); } //setting ALU bit settings ZeroX.Value = 0; NotX.Value = 1; ZeroY.Value = 1; NotY.Value = 1; F.Value = 1; NotOutput.Value = 1; // if (Output.Get2sComplement() != 7 || Zero.Value != 0 || Negative.Value != 0) { return(false); } //setting ALU bit settings ZeroX.Value = 1; NotX.Value = 1; ZeroY.Value = 0; NotY.Value = 1; F.Value = 1; NotOutput.Value = 1; // if (Output.Get2sComplement() != 6 || Zero.Value != 0 || Negative.Value != 0) { return(false); } //setting ALU bit settings ZeroX.Value = 0; NotX.Value = 0; ZeroY.Value = 1; NotY.Value = 1; F.Value = 1; NotOutput.Value = 0; // if (Output.Get2sComplement() != 5 || Zero.Value != 0 || Negative.Value != 0) { return(false); } //setting ALU bit settings ZeroX.Value = 1; NotX.Value = 1; ZeroY.Value = 0; NotY.Value = 0; F.Value = 1; NotOutput.Value = 0; // if (Output.Get2sComplement() != 4 || Zero.Value != 0 || Negative.Value != 0) { return(false); } //setting ALU bit settings ZeroX.Value = 0; NotX.Value = 0; ZeroY.Value = 0; NotY.Value = 0; F.Value = 1; NotOutput.Value = 0; // if (Output.Get2sComplement() != -5 || Zero.Value != 0 || Negative.Value != 1) { return(false); } //setting ALU bit settings ZeroX.Value = 0; NotX.Value = 1; ZeroY.Value = 0; NotY.Value = 0; F.Value = 1; NotOutput.Value = 1; // if (Output.Get2sComplement() != 1 || Zero.Value != 0 || Negative.Value != 0) { return(false); } //setting ALU bit settings ZeroX.Value = 0; NotX.Value = 0; ZeroY.Value = 0; NotY.Value = 1; F.Value = 1; NotOutput.Value = 1; // if (Output.Get2sComplement() != -1 || Zero.Value != 0 || Negative.Value != 1) { return(false); } return(true); }