public void Seed(ProtoState state) { for (var i = 0; i < _many; ++i) { state.Seed(i); } }
/// <summary> /// Publish and subscribe a dealcards -message. /// </summary> public void DealCards() { state = ProtoState.DealCard; if (IsMaster()) { opponentsCards = App.CardModel.SuffleCards(); Message msg = new Message(Message.TypeEnum.EDealCards); msg.CardIds = opponentsCards; // Construct and serialize a dealcards -message. MemoryStream mstream = _nfcMessage.SerializeMessage(msg); var dataWriter = new Windows.Storage.Streams.DataWriter(); dataWriter.WriteBytes(mstream.GetBuffer()); // Publish the message _publishedMsgId = _proximityDevice.PublishBinaryMessage("Windows.CarTrumps", dataWriter.DetachBuffer(), NfcWriteCallback); } else { // subscribe for a reply _subscribedMsgId = _proximityDevice.SubscribeForMessage("Windows.CarTrumps", NfcMessageReceived); } }
/// <summary> /// Publish and subscribe a showcard -message. /// </summary> public void ShowCard() { state = ProtoState.ShowCard; StopAll(); // Construct and serialize a showcard -message. Message msg = new Message(Message.TypeEnum.EShowCard); msg.CardId = (ushort)App.CardModel.ActiveCard.CardId; msg.SelectedCardProperty = App.CardModel.SelectedCardPropertyName; MemoryStream mstream = _nfcMessage.SerializeMessage(msg); var dataWriter = new Windows.Storage.Streams.DataWriter(); dataWriter.WriteBytes(mstream.GetBuffer()); // Publish the message _publishedMsgId = _proximityDevice.PublishBinaryMessage("Windows.CarTrumps", dataWriter.DetachBuffer(), NfcWriteCallback); // and subscribe for a reply _subscribedMsgId = _proximityDevice.SubscribeForMessage("Windows.CarTrumps", NfcMessageReceived); }
public static ProtoState MakeOneOrMore(ProtoState body) => Loop(body, atLeastOnce: true);
public static ProtoState MakeZeroOrMore(ProtoState body) => Loop(body);
public static ProtoState MakeZeroOrOne(ProtoState body) => Branch(body, Zero);
public static ProtoState MakeAlternation(ProtoState left, ProtoState right) => Branch(left, right);
public static ProtoState Loop(ProtoState body, bool atLeastOnce = false) => exit => { IState?_body = null; var loop = new Split(() => _body, exit); _body = body(loop); return(atLeastOnce ? _body : loop); };
public static ProtoState Branch(ProtoState left, ProtoState right) => exit => new Split(left(exit), right(exit));
public static ProtoState Connect(ProtoState first, ProtoState second) => exit => first(second(exit));
/// <summary> /// Publish and subscribe a dealcards -message. /// </summary> public void DealCards() { state = ProtoState.DealCard; if (IsMaster()) { opponentsCards = App.CardModel.SuffleCards(); Message msg = new Message(Message.TypeEnum.EDealCards); msg.CardIds = opponentsCards; // Construct and serialize a dealcards -message. MemoryStream mstream = _nfcMessage.SerializeMessage(msg); var dataWriter = new Windows.Storage.Streams.DataWriter(); dataWriter.WriteBytes(mstream.GetBuffer()); // Publish the message _publishedMsgId = _proximityDevice.PublishBinaryMessage("Windows.CarTrumps", dataWriter.DetachBuffer(), NfcWriteCallback); } else { // subscribe for a reply _subscribedMsgId = _proximityDevice.SubscribeForMessage("Windows.CarTrumps", NfcMessageReceived); } }
/// <summary> /// Publish and subscribe a showcard -message. /// </summary> public void ShowCard() { state = ProtoState.ShowCard; StopAll(); // Construct and serialize a showcard -message. Message msg = new Message(Message.TypeEnum.EShowCard); msg.CardId = (ushort)App.CardModel.ActiveCard.CardId; msg.SelectedCardProperty = App.CardModel.SelectedCardPropertyName; MemoryStream mstream = _nfcMessage.SerializeMessage(msg); var dataWriter = new Windows.Storage.Streams.DataWriter(); dataWriter.WriteBytes(mstream.GetBuffer()); // Publish the message _publishedMsgId = _proximityDevice.PublishBinaryMessage("Windows.CarTrumps", dataWriter.DetachBuffer(), NfcWriteCallback); // and subscribe for a reply _subscribedMsgId = _proximityDevice.SubscribeForMessage("Windows.CarTrumps", NfcMessageReceived); }
public void ProtocolInit(NfcInitiationMessage.NotifyNfcReady notify) { StopAll(); state = ProtoState.NotReady; _nfcInitMsg.PingAdversary(_proximityDevice, notify); }
public void Seed(ProtoState state) { state.Seed(0); }
public void ProtocolInit(NfcInitiationMessage.NotifyNfcReady notify) { StopAll(); state = ProtoState.NotReady; _nfcInitMsg.PingAdversary(_proximityDevice, notify); }