예제 #1
0
        private void ProcessLobby()
        {
            Console.WriteLine("================================================");
            Console.WriteLine("직업을 선택하세요");
            Console.WriteLine("[1] 기사");
            Console.WriteLine("[2] 궁수");
            Console.WriteLine("[3] 법사");

            Int32 input = Convert.ToInt32(Console.ReadLine());

            switch (input)
            {
            case 1:
            {
                player = new Knight();
                mode   = eGameMode.Town;
            }
            break;

            case 2:
            {
                player = new Archer();
                mode   = eGameMode.Town;
            }
            break;

            case 3:
            {
                player = new Mage();
                mode   = eGameMode.Town;
            }
            break;
            }
        }
 public CheckersGame(string i_player1Name, string i_player2Name, int i_gameBoardSize, eGameMode i_gameMode)
 {
     m_GameStatus = eGameStatus.ActiveGame;
     m_GameMode   = i_gameMode;
     m_GameBoard  = new Board(i_gameBoardSize);
     InitializeTeams(i_player1Name, i_player2Name, i_gameMode);
 }
예제 #3
0
 public void OnOptionOpen()
 {
     _gameBoardTrans.localPosition = new Vector3(10000, 0, 0);
     _optionManager.gameObject.SetActive(true);
     _gamePhase = eGamePhase.NONE;
     _mode      = eGameMode.OPTION;
 }
예제 #4
0
    void Awake()
    {
        instance = this;
        //if (instance == null)
        //{
        //}
        //else if (instance != this)
        //{
        //    //Destroy this - singleton pattern, there can only ever be one instance of GameManager
        //    Destroy(gameObject);
        //}

        GameMode = eGameMode.MatchStart;
        Stage    = eStage.Stage1;
        if (Stage == eStage.Stage1)
        {
            maxTime   = TimerStage1;
            countdown = TimerStage1;
        }

        else if (Stage == eStage.Stage2)
        {
            maxTime   = TimerStage1;
            countdown = TimerStage2;
        }
    }
예제 #5
0
        public GameLogic(int i_Rows, int i_Cols, eGameMode i_NewGameMode, string i_Name1, string i_Name2)
        {
            m_Player1 = new Player(i_Name1);
            if (i_Name2 != null)
            {
                m_Player2 = new Player(i_Name2);
            }
            else
            {
                m_Player2 = new Player("PC");
            }

            m_Data = new Node[i_Rows, i_Cols];

            for (int i = 0; i < i_Rows; i++)
            {
                for (int j = 0; j < i_Cols; j++)
                {
                    m_Data[i, j] = new Node();
                }
            }

            resetArray(i_Rows, i_Cols);
            m_Turn     = 0;
            m_GameMode = i_NewGameMode;
        }
예제 #6
0
 public void configureGameSettings(Board.eBoardSize i_BoardSize, eGameMode i_GameMode)
 {
     // this method is configuring the game settings
     m_GameBoard = new Board(i_BoardSize);
     m_GameMode  = i_GameMode;
     setGameParticipants();
 }
예제 #7
0
        public static void Setup(
            GameControlsState controlsState,
            eCellType[] fieldMatrix,
            Position head,
            Position tail,
            ref eDirectionType currentDirection,
            int randomValue,
            ref eGameMode gameMode,
            ref byte baseColor)
        {
            // seed initial state
            FieldMatrix.Seed(fieldMatrix, head, tail);
            currentDirection = eDirectionType.None;

            switch (controlsState.keyCode)
            {
            case KeypadKeyCode.GO:
                FieldMatrix.PlaceNextPiece(fieldMatrix, randomValue);
                gameMode = eGameMode.Play;
                break;

            case KeypadKeyCode.D2:
                baseColor = (byte)(baseColor < 10 ? baseColor + 1 : baseColor);
                break;

            case KeypadKeyCode.D8:
                baseColor = (byte)(baseColor > 1 ? baseColor - 1 : baseColor);
                break;
            }
        }
예제 #8
0
 public GameLogicManager(int i_BoardSize, eGameMode i_GameMode, Player i_PlayerOne, Player i_PlayerTwo)
 {
     r_GameBoard = new Board(i_BoardSize);
     r_GameMode  = i_GameMode;
     r_PlayerOne = i_PlayerOne;
     r_PlayerTwo = i_PlayerTwo;
 }
예제 #9
0
        public void configureGameSettings(HumanPlayer i_WhiteHumanPlayer, HumanPlayer i_BlackHumanPlayer, PcPlayer i_BlackPCPlayer)
        {
            // this method is configuring thte game settings
            string whitePlayerName, blackPlayerName;

            GameManager.eGameMode userGameModeChoice;
            Board.eBoardSize      userBoardSizeChoice;

            i_WhiteHumanPlayer.Active = true;
            whitePlayerName           = UI.AskUserForUserName();
            i_WhiteHumanPlayer.Name   = whitePlayerName;
            userGameModeChoice        = UI.AskUserForGameMode();
            m_GameMode = userGameModeChoice;
            if (userGameModeChoice == eGameMode.HumanVsHuman)
            {
                i_BlackHumanPlayer.Active = true;
                blackPlayerName           = UI.AskUserForUserName();
                i_BlackHumanPlayer.Name   = blackPlayerName;
            }
            else
            {
                i_BlackPCPlayer.Active = true;
            }

            userBoardSizeChoice = UI.AskUserForBoardSize();
            m_GameBoard         = new Board(userBoardSizeChoice);
        }
예제 #10
0
 // constructor
 public GameState(Board i_Board, eGameMode i_Mode)
 {
     this.m_Board           = i_Board;
     this.m_CurrentGameMode = i_Mode;
     this.m_CurrentTeam     = eTeam.Black;
     this.m_PieceCountBlack = this.m_PieceCountRed = (byte)(((byte)i_Board.BoardSize / 2) * (((byte)i_Board.BoardSize / 2) - 1)); // initialize piece count for both sides
 }
예제 #11
0
 public void EnterRestart()
 {
     EventSystem.current.SetSelectedGameObject(gameObject); // 커서 위치가 남아서 엔터 누르면 같은걸 찍어주는걸 방지하기 위해 이 윈도우로 포커스를 옮김
     gameMode = eGameMode.Opening;
     OpeningPanel.SetActive(true);
     MainPanel.SetActive(false);
     ClearPanel.SetActive(false);
 }
 public CheckersGame(string i_Player1Name, string i_Player2Name, int i_GameBoardSize, eGameMode i_GameMode)
 {
     m_GameStatus = eGameStatus.ActiveGame;
     m_GameMode   = i_GameMode;
     m_GameBoard  = new Board(i_GameBoardSize);
     initializeTeams(i_Player1Name, i_Player2Name, i_GameMode);
     CreateNewRound();
 }
예제 #13
0
 public void NextMatch()
 {
     Player1.GetComponent <Player>().hitPoints = maxHitpoints1;
     Player2.GetComponent <Player>().hitPoints = maxHitpoints2;
     Player1.transform.position = P1Respawn.position;
     Player2.transform.position = P2Respawn.position;
     GameMode = eGameMode.Running;
 }
예제 #14
0
 public void EnterDifficulty()
 {
     EventSystem.current.SetSelectedGameObject(gameObject); // 커서 위치가 남아서 엔터 누르면 같은걸 찍어주는걸 방지하기 위해 이 윈도우로 포커스를 옮김
     gameMode = eGameMode.Main;
     OpeningPanel.SetActive(false);
     MainPanel.SetActive(true);
     ClearPanel.SetActive(false);
     InitializeGame();
 }
예제 #15
0
 public GameManager()
 {
     isEndOfGame = false;
        UserInterface.ShowWelcomeMessage();
        m_CurrentPlayerNumber = 0;
        m_GameMode = (eGameMode)UserInterface.ChooseGameMode(); //the user picks the game mode
        initGameByMode();        //initialization according the chosen game mode
        startGame();
 }
예제 #16
0
 public MemoryGameLogic(Player[] i_Players, Position i_BoardSize, eGameMode i_GameMode)
 {
     r_TotalPlayers      = i_Players.Length;
     m_BoardSize         = i_BoardSize;
     r_Players           = i_Players;
     r_GameMode          = i_GameMode;
     m_NumberOfCardsLeft = GetNumbersOfCards();
     r_Memory            = new List <Memory <TCard> >(GetNumbersOfCards());
 }
예제 #17
0
 public GameForm(GameModel i_GameModel, eGameMode i_GameMode)
 {
     InitializeComponent();
     m_GameModel             = i_GameModel;
     m_GameMode              = i_GameMode;
     r_ColumnInsertButtonArr = new List <Button>(m_GameModel.GameBoard.BoardColumns);
     r_ButtonsMat            = new Button[m_GameModel.GameBoard.BoardRows, m_GameModel.GameBoard.BoardColumns];
     setSettings();
     m_GameModel.CurrentPlayer = GameModel.FirstPlayer;
 }
예제 #18
0
 internal Game(string i_Player1Name, string i_Player2Name, int i_BoardSize, eGameMode i_GameMode)
 {
     m_Player1   = new Player(i_Player1Name, false);
     m_Player2   = new Player(i_Player2Name, i_GameMode == eGameMode.SinglePlayer ? true : false);
     m_GameBoard = new Board(i_BoardSize);
     m_IsPlayer1 = true;
     m_GameOver  = false;
     m_GameMode  = i_GameMode;
     PlaceFirstCells();
 }
예제 #19
0
 public GameLogic(Player i_Player1, Player i_Player2, eGameMode i_GameMode)
 {
     r_Player1               = i_Player1;
     r_Player2               = i_Player2;
     r_GameMode              = i_GameMode;
     m_AI                    = null;
     m_GameStatus            = eGameStatus.InProcess;
     m_CurrentPlayer         = i_Player1;
     m_Board                 = null;
     m_HiddenPairCellsAmount = 0;
 }
예제 #20
0
 private void setGameMode()
 {
     if (m_PlayerTwoCheckBox.Checked)
     {
         m_GameMode = eGameMode.PlayerVsPlayer;
     }
     else
     {
         m_GameMode = m_PlayerTwoComboBox.SelectedIndex == m_PlayerTwoComboBox.Items.IndexOf("AI") ? eGameMode.PlayerVsAi : eGameMode.PlayerVsDumbComputer;
     }
 }
예제 #21
0
        public GameManager(GameSettings i_Settings)
        {
            double numOfCheckers = CalcNumOfCheckers(i_Settings.Size);

            m_Player1          = new Player(i_Settings.PlayerName1, (int)numOfCheckers, true);
            m_Player2          = new Player(i_Settings.PlayerName2, (int)numOfCheckers, false);
            m_GameBoard        = new Board(i_Settings.Size, m_Player1, m_Player2);
            m_GameMode         = i_Settings.GameMode;
            m_GameOver         = false;
            m_LocationToChange = new Location(-1, -1);
        }
예제 #22
0
 // Use this for initialization
 void Start()
 {
     if (instance == null)
     {
         instance = this;
     }
     score        = 0;
     gameMode     = eGameMode.INVALID;
     isEnding     = false;
     isPlayerDead = false;
 }
예제 #23
0
    void Clear()
    {
        ClearNum.text = tryNumber + "번째 시도";

        if (Input.GetKeyDown(KeyCode.Return) || Input.GetKeyDown(KeyCode.Space) || Input.GetKeyDown(KeyCode.KeypadEnter) || Input.GetKeyDown(KeyCode.Escape))
        {
            gameMode = eGameMode.Opening;
            OpeningPanel.SetActive(true);
            MainPanel.SetActive(false);
            ClearPanel.SetActive(false);
        }
    }
 private void initializeTeams(string i_Player1Name, string i_Player2Name, eGameMode i_GameMode)
 {
     m_Player1 = new Team(i_Player1Name, Team.eTeamType.User, Team.eDirectionOfMovement.Up, Team.eTeamSign.X);
     if (i_GameMode == eGameMode.VersusAnotherPlayer)
     {
         m_Player2 = new Team(i_Player2Name, Team.eTeamType.User, Team.eDirectionOfMovement.Down, Team.eTeamSign.O);
     }
     else
     {
         m_Player2 = new Team(i_Player2Name, Team.eTeamType.Computer, Team.eDirectionOfMovement.Down, Team.eTeamSign.O);
     }
 }
예제 #25
0
    // Use this for initialization
    void Start()
    {
        OpeningPanel.SetActive(true);
        MainPanel.SetActive(false);
        ClearPanel.SetActive(false);
        CurrentNumber = 0;
        tryNumber     = 0;

        Difficulty = 4;
        gameMode   = eGameMode.Opening;

        ScreenRate = 800f / (float)Screen.currentResolution.width;
    }
예제 #26
0
        private void TryEscape()
        {
            int randValue = rand.Next(0, 101);

            if (randValue < 33)
            {
                mode = eGameMode.Town;
            }
            else
            {
                ProcessFight();
            }
        }
예제 #27
0
    void Opening()
    {
        if (gameMode != eGameMode.Opening)
        {
            return;
        }

        if (Input.GetKeyDown(KeyCode.Keypad2) || Input.GetKeyDown(KeyCode.Alpha2))
        {
            Difficulty = 2;
        }
        if (Input.GetKeyDown(KeyCode.Keypad3) || Input.GetKeyDown(KeyCode.Alpha3))
        {
            Difficulty = 3;
        }
        if (Input.GetKeyDown(KeyCode.Keypad4) || Input.GetKeyDown(KeyCode.Alpha4))
        {
            Difficulty = 4;
        }
        if (Input.GetKeyDown(KeyCode.Keypad5) || Input.GetKeyDown(KeyCode.Alpha5))
        {
            Difficulty = 5;
        }
        if (Input.GetKeyDown(KeyCode.Keypad6) || Input.GetKeyDown(KeyCode.Alpha6))
        {
            Difficulty = 6;
        }
        if (Input.GetKeyDown(KeyCode.Keypad7) || Input.GetKeyDown(KeyCode.Alpha7))
        {
            Difficulty = 7;
        }

        DifficultyText.text = Difficulty.ToString();

        if (Input.GetKeyDown(KeyCode.Return) || Input.GetKeyDown(KeyCode.Space) || Input.GetKeyDown(KeyCode.KeypadEnter))
        {
            gameMode = eGameMode.Main;
            OpeningPanel.SetActive(false);
            MainPanel.SetActive(true);
            ClearPanel.SetActive(false);
            InitializeGame();
        }


        if (Input.GetKeyDown(KeyCode.Escape))
        {
            Application.Quit();
        }
    }
예제 #28
0
    public void SpawnGameMode(eGameMode p_newMode)
    {
        ChangeState(p_newMode);
        if (activeGameMode != null)
        {
            Destroy(activeGameMode);
        }

        activeGameMode = Instantiate(allGameModeRef[(int)p_newMode], Vector3.zero, Quaternion.identity);
        activeGameMode.Init(gameObject);

        if (GameManager.gameState != eGameState.IN_GAME)
        {
            GameManager.ChangeState(eGameState.IN_GAME);
        }
    }
예제 #29
0
 public ReverseTicTacToe(int i_BoardDimension, eGameMode i_GameMode)
 {
     m_BoardDimension = IsInRange(i_BoardDimension, k_MinimumGameBoardDimension, k_MaximumGameBoardDimension)
                            ? i_BoardDimension
                            : k_DefaultBoardDimension;
     m_GameMode      = i_GameMode;
     m_Player1Char   = k_DefaultPlayer1Char;
     m_Player2Char   = k_DefaultPlayer2Char;
     m_CurrentTurn   = k_DefaultFirstTurn;
     m_EmptySlotChar = k_DefaultEmptySlotChar;
     m_GameBoard     = new char[m_BoardDimension, m_BoardDimension];
     clearBoard();
     m_Player1    = new Player(k_DefaultPlayer1Name);
     m_Player2    = m_GameMode == eGameMode.PvP ? new Player(k_DefaultPlayer2Name) : new Player(k_DefaultPCPlayerName);
     m_GameStatus = eGameStatus.Ongoing;
 }
예제 #30
0
        public static Shape CreateRandom(eGameMode gameMode)
        {
            switch (gameMode)
            {
            case eGameMode.Normal:
                return(Create((eShape)Maths.RandomNr(1, 7)));

            case eGameMode.Extended:
                return(Create((eShape)Maths.RandomNr(1, 10)));

            case eGameMode.Insane:
                return(Create((eShape)Maths.RandomNr(1, 12)));

            default:
                throw new CaseStatementMissingException();
            }
        }
예제 #31
0
        public Game(int io_BoardSize, string io_FirstName, string io_SecondName, bool i_IsComputerMode)
        {
            m_FirstPlayer  = new Player(io_BoardSize, Checkers.eCheckerGroup.X, io_FirstName);
            m_SecondPlayer = new Player(io_BoardSize, Checkers.eCheckerGroup.O, io_SecondName);
            if (i_IsComputerMode)
            {
                m_GameMode = eGameMode.SingleMode;
            }
            else
            {
                m_GameMode = eGameMode.MultiMode;
            }

            m_Board = new Board(io_BoardSize);
            m_Board.BuildBoard(m_FirstPlayer, m_SecondPlayer);
            m_LastPlayerThatPlayed = m_FirstPlayer;
        }
예제 #32
0
 public OthelloGame(eGameMode i_GameMode, byte i_MatrixSize)
 {
     GameBoardSize = i_MatrixSize;
     m_GameMode = i_GameMode;
 }
예제 #33
0
        public static BaseSceneGame GetRandomGame(eGameMode type)
        {
            BaseSceneGame game = null;
            _locker.AcquireReaderLock();
            try
            {
                int rand = ThreadSafeRandom.NextStatic(200);
                for (int i = rand; i < _games.Length + rand; i++)
                {
                    BaseSceneGame g = _games[i % _games.Length];
                    if (g.GameState == eGameState.FREE && g.Count > 0 && g.Pwd == "" && g.Count + g.CloseTotal() < 8 && type == g.GameMode
                        && g.GameClass != eGameClass.CONSORTIA)
                    {
                        game = g;
                        break;
                    }
                }

                //for (int i = 0; i < _games.Length; i++)
                //{
                //    BaseSceneGame g = _games[i];
                //    if (g.GameState == eGameState.FREE && g.Count > 0 && g.Pwd == "" && g.Count + g.CloseTotal() < 8 && type == g.GameMode
                //        && g.GameClass != eGameClass.CONSORTIA)
                //    {
                //        game = g;
                //        break;
                //    }
                //}
            }
            finally
            {
                _locker.ReleaseReaderLock();
            }
            return game;
        }