예제 #1
0
        public static void Game()
        {
            try
            {
                PrintMessage.Message(Messages.Welcome);
                PrintMessage.Message(Messages.Intro);

                PlayAgain : PrintMessage.Message(Messages.GameRules);

                int containerNumber = GenerateRandomNumber.RandomNumber();

                PrintMessage.Message(Messages.Containers);
                PrintMessage.Message(Messages.EnterGuess);

                int playerGuess = CheckInput.CheckIfContainerNumberIsValid();

                CheckWonOrLost.WonOrLost(playerGuess, containerNumber);
                bool playAgain = CheckToStartAgainOrNot.StartAgainOrNot();

                if (playAgain)
                {
                    goto PlayAgain;
                }
            }
            catch (Exception e)
            {
                PrintMessage.Message(e);
            }
        }
예제 #2
0
        /// <summary>
        /// Проверяет значение на тип
        /// </summary>
        /// <param name="str">Строка, в которой осуществляется поиск</param>
        /// <param name="startPos">Начальная позиция, для поиска</param>
        /// <param name="endPos">Конечная позиция, для поиска</param>
        /// <param name="splittedWords"></param>
        /// <returns></returns>
        public int IsThisNumber(string str, int startPos, int endPos, Queue <Word> splittedWords)
        {
            //Проверка булевых переменных
            if (str.Substring(startPos, endPos + 1 - startPos) == " true" ||
                str.Substring(startPos, endPos + 1 - startPos) == " false")
            {
                splittedWords.Enqueue(new Word(17, str.Substring(startPos, endPos + 1 - startPos)));
                return(1);
            }
            //Проверка на число
            if (IsNumber(str, "0123456789", startPos))
            {
                int srchLength = 0;
                for (var i = startPos; i < endPos; i++)
                {
                    if (IsNumber(str, "0123456789.Ee-", i))
                    {
                        srchLength = srchLength + 1;
                    }
                }
                if (srchLength == endPos - startPos)
                {
                    splittedWords.Enqueue(new Word(17, str.Substring(startPos, endPos + 1 - startPos)));

                    return(1);
                }
                PrintMessage.Invoke(@"Нужно вводить вещественные" + '\n' + @" числа с порядком!" + '\r' +
                                    @"Ошибка --> " + str.Substring(startPos, endPos + 1 - startPos));
                return(-1);
            }
            return(0);
        }
예제 #3
0
        static void Main(string[] args)
        {
            PrintMessage dogPrint, catPrint;

            Animal dog = new Animal();
            Animal cat = new Animal();

            dogPrint = new PrintMessage(dog.SayHi);
            catPrint = new PrintMessage(cat.SayHi);

            dogPrint("wawawawa");
            catPrint("miaomiaomiaomiao!!!!");

            Console.WriteLine("Hello World!");

            EventHandler eventHandler = new EventHandler(new Animal().HandlerEventDemo);

            eventHandler(null, EventArgs.Empty);

            eventHandler = new Animal().HandlerEventDemo;
            eventHandler(null, EventArgs.Empty);

            eventHandler = delegate(object sender, EventArgs e)
            {
                Console.WriteLine("Handler anonymously");
            };

            eventHandler = delegate
            {
                Console.WriteLine("Handler anonymously!");
            };
        }
예제 #4
0
        public void Start()
        {
            NumberPuttedIn1 += new PrintMessage(NumberIsEven);
            NumberPuttedIn2 += new PrintMessage(NumberIsDivisableByThree);
            NumberPuttedIn3 += new PrintMessage(NumberIsPrime);

            AnalyzeNumber isEven             = NumberFilter.IsEven;
            AnalyzeNumber isDivisableByThree = NumberFilter.IsDivisableByThree;
            AnalyzeNumber isPrimeNumber      = NumberFilter.IsPrimeNumber;

            input = InputController();
            if (isEven(input))
            {
                NumberPuttedIn1?.Invoke();
            }
            if (isDivisableByThree(input))
            {
                NumberPuttedIn2?.Invoke();
            }
            if (isPrimeNumber(input))
            {
                NumberPuttedIn3?.Invoke();
            }
            else
            {
                Console.WriteLine("Nothing");
            }
        }
예제 #5
0
        /// <summary>
        /// Writes a message to the center of the screen, accepts a delegate object,
        /// redirecting execution to the appropriate method for printing the text
        /// in an appropriate colour.
        /// </summary>
        /// <param name="message">The message to be printed to the screen.</param>
        /// <param name="printText">The function that will actually print the message to the screen</param>
        public static void PrintMessageCenter(string message, PrintMessage printText)
        {
            // If the message is multi-line, split it into a string array and call self to print
            // message to the center to the screen.
            if (message.Contains("\n"))
            {
                // Lines to print
                string[] lines = Regex.Split(message, "\n");

                // Call self to print lines.
                foreach (string line in lines)
                {
                    PrintMessageCenter(line, printText);
                }

                // Early exit
                return;
            }

            // Obtain the left side/left edge of the text we are going to write.
            int consolePointer = (Console.WindowWidth - message.Length) / 2;

            // Check/resolve text overflow possibilities.
            if (consolePointer < 0)
            {
                consolePointer = 0;
            }

            // Set the cursor position to our new left edge, print and restore.
            Console.SetCursorPosition(consolePointer, Console.CursorTop);
            printText(message);
            Console.SetCursorPosition(0, Console.CursorTop);
        }
        public void Start()
        {
            ItemManager manager = new ItemManager();

            WrongInput += new PrintMessage(WrongInputErrorMessage);

            while (true)
            {
                Console.Clear();
                UserMenus.MainMenu();
                var input = Console.ReadKey(true).Key;

                switch (input)
                {
                case ConsoleKey.D1:
                    FilterMethod(manager);
                    break;

                case ConsoleKey.D2:
                    manager.AddNewProduct(this);
                    break;

                case ConsoleKey.D3:
                    Environment.Exit(0);
                    break;

                default: OnWrongInput("Not a valid input.");
                    break;
                }
            }
        }
예제 #7
0
파일: Runtime.cs 프로젝트: Pelsen85/OOP
        public void Start()
        {
            #region TicTacToe event example
            //GameDraw += (sender, e) =>
            //{
            //    DrawMessage();
            //};

            //GameWon += (sender, e) =>
            //{
            //    WinMessage();
            //};

            //// Check for win or draw
            //bool isDraw = false;
            //bool isWin = true;

            //if (isWin)
            //{
            //    OnGameWin(this, EventArgs.Empty);
            //}
            //else if (isDraw)
            //{
            //    OnGameDraw(this, EventArgs.Empty);
            //}
            #endregion

            ApplicationStarted += new PrintMessage(Message1);
            ApplicationStarted += new PrintMessage(Message2);

            //OnApplicationStarted();
            ApplicationStarted?.Invoke();
        }
예제 #8
0
        public PrintMessage EndGame(int gameId)
        {
            lock (gameLock)
            {
                // Set Game to inactive
                var game = _context.Games.Where(x => x.Id == gameId).FirstOrDefault();
                game.IsActive = false;
                _context.Games.Update(game);
                _context.SaveChanges();

                // Prepare Print Message meta-data
                PrintMessage printMessage = new PrintMessage();
                printMessage.ThreadTs = game.ThreadTimeStamp;
                printMessage.IsReply  = true;

                // Find winner and players that played
                var winningEntry = GetWinningEntry(gameId);
                if (winningEntry != null)
                {
                    var playerIds = _context.GameEntries.Where(x => x.GameId == gameId).Select(x => x.UserId).ToList();
                    foreach (var playerId in playerIds)
                    {
                        IncrementPlayerEntryCount(playerId);
                    }
                    IncrementPlayerWinCount(winningEntry.UserId);
                    // Return Winning String
                    printMessage.MessageText = $"Game ended! {winningEntry.UserName} wins with {winningEntry.LinkCount} click long entry of \"{winningEntry.RawText}\"";
                }
                else
                {
                    printMessage.MessageText = "Game Canceled";
                }
                return(printMessage);
            }
        }
예제 #9
0
 void Start()
 {
     controller    = new Controller();
     initHand      = false;
     palmPossition = new Vector3[2];
     //initialCubePos = cubeRubick.transform;
     printMessage = FindObjectOfType <PrintMessage>();
 }
예제 #10
0
        public Task Handle(PrintMessage cmd)
        {
            Console.WriteLine(cmd.Message);
            EventLog.WriteEntry("Application", "PrintMessage from Zaz Sample Application. Message: " + cmd.Message);

            return Task.Factory.StartNew(() => {
                Thread.Sleep(10000);
            });
        }
예제 #11
0
    static void Main(string [] args)
    {
        PrintMessage pm = (string message) => {
            Console.WriteLine("The message I received is : " + message);
            Console.WriteLine("This is the end.");
        };

        pm("This is the beginning.");
    }
예제 #12
0
        public override void ReceiveMessage(PrintMessage printMessage, PrintMessageException printMessageException)
        {
            this.printMessage          = printMessage;
            this.printMessageException = printMessageException;

            queueClient = new QueueClient(serviceBusConnectionString, queueName);

            // Register QueueClient's MessageHandler and receive messages in a loop
            RegisterOnMessageHandlerAndReceiveMessages();
        }
        static void Main(string[] args)
        {
            SecretMessage msg1 = new SecretMessage(SayHello);

            msg1();

            PrintMessage pm = new PrintMessage(PrintSomething);

            pm("Delegates are cool!");
        }
예제 #14
0
        /// <summary>
        /// Checking if the player is entered a valid letter (to choose either the game to start again or no)
        /// and if not - loop till it is valid
        /// </summary>
        public static string CheckIfPlayerInputIsValid(string playerInput)
        {
            while (playerInput != "y" && playerInput != "n")
            {
                PrintMessage.Message(Messages.NeedLetter);
                playerInput = Console.ReadLine().ToLower();
            }

            return(playerInput);
        }
예제 #15
0
 public bool InsertPrintMessageBLL(PrintMessage list)
 {
     if (PMD.InsertPrintMessageDAL(list) > 0)
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
        internal void Start()
        {
            ApplicationStarted += new PrintMessage(Message1);

            OnApplicationStarted();

            Console.WriteLine("Korvlåda");

            ApplicationStarted += new PrintMessage(Message2);
            OnApplicationStarted();
        }
예제 #17
0
        static void Main(string[] args)
        {
            PrintWizard(SayHello);

            PrintWizard((n) => { Console.WriteLine("GoodBye " + n); });

            PrintMessage howdy = (n) => { Console.WriteLine("Howdy Says " + n); };

            howdy("Swabhav");

            Console.ReadKey();
        }
 public void TestInvalidCertificate()
 {
     try
     {
         myCertificate = new X509Certificate2(@"..\..\ClientSecurityStore\client.cer");
         //PrintMessage.Print(string.Format("Valid certificate: {0}", vaProxy.isCertificateValidate(myCertificate)));
     }
     catch
     {
         PrintMessage.Print("Unable to load invalid certificate");
     }
 }
 /// <summary>
 /// Check if the game is won by the player or lost and print corresponding messages.
 /// </summary>
 public static void WonOrLost(int playerGuess, int containerNumber)
 {
     if (playerGuess == containerNumber)
     {
         PrintMessage.Message(Messages.ChoosedContainerFull, playerGuess);
         PrintMessage.Message(Messages.GameWon);
     }
     else
     {
         PrintMessage.Message(Messages.ChoosedContainerEmpty, playerGuess);
         PrintMessage.Message(Messages.GameLost);
     }
 }
예제 #20
0
        static void Main(string[] args)
        {
            PrintMessage pm1 = new PrintMessage(WriteToConsole); //w delegacie ->metoda która wypisuje Wiadomosc: ->nie jest to jeszcze pisane na konsole
            PrintMessage pm2 = new PrintMessage(WriteToFile);

            SendString(pm1);//delegat jest przekazywany do funkcji. W funkcji jest użycie/wywołanie delegata
            SendString(pm2);
            Console.ReadKey();
            // Wynik działania programu
            // Wiadomosc: Witaj Swiecie
            // Oraz proszę spojrzeć na dysk C, został utworzony nowy plik
            // Wewnątrz tekst: Witaj Świecie
        }
예제 #21
0
        public static void CrashReport(D2Profile profile)
        {
            ++profile.Crashed;
            profile.Stop();
            if (profile.Crashed >= 6)
            {
                return;
            }
            PrintMessage pm = new PrintMessage("Window crashed on load! Restarting.", "", "", 0);

            Program.GM.ConsolePrint(pm, (ProfileBase)profile);
            profile.Restart(false);
        }
예제 #22
0
파일: Program.cs 프로젝트: itiscs/Sem2_2021
        static void Main(string[] args)
        {
            int k = 32, l = 200;

            Oper         oper  = new Oper(ArOper.Sum);
            PrintMessage print = new PrintMessage(() => { Console.WriteLine("Hello 1"); });

            print();


            print += () => { Console.WriteLine("Hello 4"); };

            print += ArOper.Print2;
            print += ArOper.Print3;
            print += ArOper.Print3;
            print -= ArOper.Print3;

            if (print != null)
            {
                print.Invoke();
            }


            Console.WriteLine($" {k} + {l} = {oper(k,l)} ");

            oper = ArOper.Minus;


            Console.WriteLine($" {k} - {l} = {oper(k, l)} ");

            oper = (a, b) => a > b? a : b;

            Console.WriteLine($" {k} max {l} = {oper(k, l)} ");


            oper = ArOper.Mult;



            var N = 5;
            var a = new int[N];
            var r = new Random();

            for (int i = 0; i < N; i++)
            {
                a[i] = r.Next(1, 10);
            }

            Console.WriteLine($"{VarOperArray(a, 1, (a,b) => a*b )}");
        }
    private PrintMessage printMessage;          // SubScreen的消息区域

    void Start()
    {
        // 取得player的实例
        player = GameObject.FindGameObjectWithTag("Player");

        // 取得玩家状态的实例
        playerStatus = player.GetComponent <PlayerStatus>();

        // 取得机关炮弹的发射位置信息
        shotPosition = GetComponentInChildren <Transform>().Find("ShotPosition").gameObject;

        // 取得SubScreenMessage的实例
        printMessage = Navi.get().GetPrintMessage();
    }
예제 #24
0
    private PrintMessage printMessage;          // SubScreenのメッセージ領域.

    void Start()
    {
        // playerのインスタンスを取得.
        player = GameObject.FindGameObjectWithTag("Player");

        // プレイヤーステータスのインスタンスを取得.
        playerStatus = player.GetComponent <PlayerStatus>();

        // バルカン弾の発射位置情報を取得.
        shotPosition = GetComponentInChildren <Transform>().Find("ShotPosition").gameObject;

        // PrintMessage のインスタンスを取得.
        printMessage = Navi.get().GetPrintMessage();
    }
예제 #25
0
        public void AddToBasket(int amount, string item)
        {
            var select = list.FirstOrDefault(x => x.Name.ToLower() == item);

            if (select == null)
            {
                PrintMessage.WeDontHave(item);
            }
            else
            {
                select.InBasket = select.InBasket + amount;
                PrintMessage.AddedItem(amount + "x " + select.Name);
            }
        }
        /// <summary>
        /// Check if the player want to play again or no.
        /// </summary>
        public static bool StartAgainOrNot()
        {
            PrintMessage.Message(Messages.PlayAgain);

            string input        = Console.ReadLine();
            string playerAnswer = CheckInput.CheckIfPlayerInputIsValid(input);

            if (playerAnswer.ToLower() == "y")
            {
                return(true);
            }

            return(false);
        }
예제 #27
0
    private float speed   = 0f;                                         // 爆発エフェクト用: スピード.

    void Start()
    {
        // プレイヤーのインスタンスを取得.
        player = GameObject.FindGameObjectWithTag("Player");

        // PrintMessage のインスタンスを取得.
        printMessage = Navi.get().GetPrintMessage();

        // 敵機のTYPE名をセット.
        enemyTypeString = SetEnemyType();

        // 追加の初期化処理.
        StartSub();
    }
    private int invalidInstanceId = -1;                 // 表示lockedOnEnemyIds[] 未被使用的值

    void Start()
    {
        // 锁定敌机
        lockedOnEnemys   = new GameObject[MAX_LOCKON_COUNT];
        lockedOnEnemyIds = new int[MAX_LOCKON_COUNT];
        lockonLaserIds   = new int[MAX_LOCKON_COUNT];
        lockedOnSights   = new GameObject[MAX_LOCKON_COUNT];

        // 获取锁定瞄准器的实例
        lockonSights    = new GameObject[MAX_LOCKON_COUNT];
        lockonSights[0] = lockonSight1;
        lockonSights[1] = lockonSight2;
        lockonSights[2] = lockonSight3;
        lockonSights[3] = lockonSight4;
        lockonSights[4] = lockonSight5;
        lockonSights[5] = lockonSight6;

        // 获取player的实例
        player = GameObject.FindGameObjectWithTag("Player");

        // 获取索敌激光的碰撞补间
        scoutingLaserMesh = GameObject.FindGameObjectWithTag("ScoutingLaserMesh");

        // 获取索敌激光前方线的实例
        scoutingLaserLine = GameObject.FindGameObjectWithTag("ScoutingLaserLine").GetComponent <MeshRenderer>();

        // 锁定瞄准器的初始化
        this.GetComponent <TrailRenderer>().enabled = isScanOn;
        scoutingLaserLine.enabled = isScanOn;

        // 获取LockBonus的实例
        lockBonus = Navi.get().GetLockBonus();

        // 获取LockSlot的实例
        lockSlot = Navi.get().GetLockSlot();

        // 获取PrintMessage 的实例
        printMessage = Navi.get().GetPrintMessage();

        // 表示lockedOnEnemyIds[] 未被使用时的值
        // 自身不会被锁定
        invalidInstanceId = this.gameObject.GetInstanceID();

        for (int i = 0; i < lockedOnEnemyIds.Length; i++)
        {
            lockedOnEnemyIds[i] = invalidInstanceId;
            lockonLaserIds[i]   = invalidInstanceId;
        }
    }
예제 #29
0
    private int invalidInstanceId = -1;                                 // lockedOnEnemyIds[] が未使用であることを表す値.

    void Start()
    {
        // ロックオン敵機.
        lockedOnEnemys   = new GameObject[MAX_LOCKON_COUNT];
        lockedOnEnemyIds = new int[MAX_LOCKON_COUNT];
        lockonLaserIds   = new int[MAX_LOCKON_COUNT];
        lockedOnSights   = new GameObject[MAX_LOCKON_COUNT];

        // ロックオンサイトのインスタンスを取得.
        lockonSights    = new GameObject[MAX_LOCKON_COUNT];
        lockonSights[0] = lockonSight1;
        lockonSights[1] = lockonSight2;
        lockonSights[2] = lockonSight3;
        lockonSights[3] = lockonSight4;
        lockonSights[4] = lockonSight5;
        lockonSights[5] = lockonSight6;

        // playerのインスタンスを取得.
        player = GameObject.FindGameObjectWithTag("Player");

        // 索敵レーザーのコリジョン補間を取得.
        scoutingLaserMesh = GameObject.FindGameObjectWithTag("ScoutingLaserMesh");

        // 索敵レーザーの前方への線のインスタンスを取得.
        scoutingLaserLine = GameObject.FindGameObjectWithTag("ScoutingLaserLine").GetComponent <MeshRenderer>();

        // ロックオンサイトの初期化.
        this.GetComponent <TrailRenderer>().enabled = isScanOn;
        scoutingLaserLine.enabled = isScanOn;

        // LockBonusのインスタンスを取得.
        lockBonus = Navi.get().GetLockBonus();

        // LockSlotのインスタンスを取得.
        lockSlot = Navi.get().GetLockSlot();

        // PrintMessage のインスタンスを取得.
        printMessage = Navi.get().GetPrintMessage();

        // lockedOnEnemyIds[] が未使用であることを表す値.
        // 自分自身はロックオンされることはないので.
        invalidInstanceId = this.gameObject.GetInstanceID();

        for (int i = 0; i < lockedOnEnemyIds.Length; i++)
        {
            lockedOnEnemyIds[i] = invalidInstanceId;
            lockonLaserIds[i]   = invalidInstanceId;
        }
    }
예제 #30
0
        /// <summary>
        /// Simply executes a delegate
        /// </summary>
        /// <param name="printDelegate">Print delegate</param>
        public void Simple(PrintMessage printDelegate)
        {
            WriteLine("--UsingDelegates.Simple--");
            var myMessage = $"Message printed at {DateTime.Now:MM-dd-yyyy HH:mm:ss.fff}";

            //consider checking for null
            if (printDelegate != null)
            {
                printDelegate.Invoke(message: myMessage);
            }

            //OR reduce 2 lines of code into 1 with the nullable reference operator '?'
            //very commonly used with delegates and events
            printDelegate?.Invoke(message: myMessage);
        }
        public bool Pay(byte[] message)
        {
            string      sessionId = OperationContext.Current.SessionId;
            SessionData sd        = GetSession(sessionId);

            if (sd != null)
            {
                PrintMessage.Print(string.Format("From: {0}, message: {1}", sd.Address, System.Text.Encoding.UTF8.GetString(sd.AesAlgorithm.Decrypt(message))));
                return(true);
            }
            else
            {
                return(false);
            }
        }
        public void DisplayMessage()
        {
            PrintMessage message = new PrintMessage(Console.WriteLine);
            //message(Name);
            //message(Address);
            //message(Id.ToString());
            //message.Invoke(Name);

            PrintMessage message2 = (Log);
            //message2(Name);
            //message2(Address);
            //message2(Id.ToString());

            Console.WriteLine("Adding delegats");
            PrintMessage message3 = message + message2;

            message3(Name);
            message3(Address);
            message3(Id.ToString());
        }
        public void Should_successfully_send_all_commands_and_recieve_the_result()
        {
            const int concurrentCalls = 20;

            var allTasks = new List<Task>();

            for (var i = 0; i < concurrentCalls; i++)
            {
                var local = i;
                var task = Task.Factory.StartNew(() =>
                {
                    var client = new ZazClient(URL);
                    var cmd = new PrintMessage { Message = "Hello world #" + (local + 1) };
                    var result = client.PostAsync(cmd, new[] { "Tag1" }).Result;
                    return result;
                });

                allTasks.Add(task);
            }

            var allTasksArray = allTasks.ToArray();
            Task.WaitAll(allTasksArray, TimeSpan.FromMinutes(5));

            var counters = new
            {
                RanToCompletion = allTasks.Count(task => task.Status == TaskStatus.RanToCompletion),
                Canceled = allTasks.Count(task => task.Status == TaskStatus.Canceled),
                Created = allTasks.Count(task => task.Status == TaskStatus.Created),
                Faulted = allTasks.Count(task => task.Status == TaskStatus.Faulted),
                Running = allTasks.Count(task => task.Status == TaskStatus.Running),
                WaitingForActivation = allTasks.Count(task => task.Status == TaskStatus.WaitingForActivation),
                WaitingForChildrenToComplete = allTasks.Count(task => task.Status == TaskStatus.WaitingForChildrenToComplete),
                WaitingToRun = allTasks.Count(task => task.Status == TaskStatus.WaitingToRun),
            };

            counters.RanToCompletion.Should().Be(concurrentCalls, "All tasks should be completed in reasonable period of time", counters);
        }