Пример #1
0
 public Form2(ucGame uc)
 {
     InitializeComponent();
     currentUcGame = uc;
     this.Text     = "משחק";
     this.Controls.Add(uc);
     //this.pnlPlayer1.Controls.Add(uc.playersBoards[0]);
     //uc.playersBoards[0].Location = new Point(103, 551);
     uc.playersBoards[uc.turn].Location = new Point(113, 551);
     uc.playersBoards[uc.turn].Name     = "ucPlayerBoard" + (uc.turn + 1).ToString();
     lblPlayerName.Text = currentUcGame.playersBoards[currentUcGame.turn].name;
     // uc.playersBoards[0].Name = "ucPlayerBoard1";
     this.Controls.Add(uc.playersBoards[uc.turn]);
     //  this.pnlPlayer2.Controls.Add(uc.playersBoards[1]);
     //labelnmp1.Text = uc.playersBoards[0].name;
     //labelnp2.Text = uc.playersBoards[1].name;
     if (uc.playersBoards.Count() > 2)
     {
         pnlPlayer3.Visible = true;
         // this.pnlPlayer3.Controls.Add(uc.playersBoards[2]);
     }
     if (uc.playersBoards.Count() > 3)
     {
         pnlPlayer4.Visible = true;
         // this.pnlPlayer4.Controls.Add(uc.playersBoards[3]);
     }
 }
Пример #2
0
        private void btnOkNamesKinds_Click(object sender, EventArgs e)
        {
            //חיבים לוודא שכל השדות מולאו


            // try
            {
                //אתחול רשימת השמות
                List <string> names = new List <string>();
                names.Add(txtNamePlayer1.Text);
                names.Add(txtNamePlayer2.Text);
                if (numOfPlayers.Value > 2)
                {
                    names.Add(txtNamePlayer3.Text);
                }
                if (numOfPlayers.Value > 3)
                {
                    names.Add(txtNamePlayer4.Text);
                }

                //אתחול רשימת סוגי שחקנים
                List <bool> kinds = new List <bool>();

                kinds.Add(cbKindPlayer1.SelectedItem.ToString() == "מחשב" ? true : false);
                kinds.Add(cbKindPlayer2.SelectedItem.ToString() == "מחשב" ? true : false);
                if (numOfPlayers.Value > 2)
                {
                    kinds.Add(cbKindPlayer3.SelectedItem.ToString() == "מחשב" ? true : false);
                }
                if (numOfPlayers.Value > 3)
                {
                    kinds.Add(cbKindPlayer4.SelectedItem.ToString() == "מחשב" ? true : false);
                }
                ucGame ucg = new ucGame((int)numOfPlayers.Value, names, kinds);
                //names.Add("אני");
                //names.Add("Rutty");
                //kinds.Add(false);
                //kinds.Add(false);
                //ucGame ucg = new ucGame(2, names, kinds);

                f2 = new Form2(ucg);
                f2.Show();
            }

            //catch (Exception ex)
            //{
            //    if(ex.GetType().Name=="NullReferenceException")
            //        MessageBox.Show("!!חובה למלא את שמות וסוגי השחקנים");
            //}
            //this.Close();
        }
        private void timer2_Tick(object sender, EventArgs e)
        {
            try
            {
                //if (File.Exists(path + txtNamePlayer1.Text + cbJoinersNames.Text+".xml"))
                //if (File.Exists(path + txtNamePlayer1.Text + cbJoinersNames.Text + ".xml"))
                if (File.Exists(path + cbJoinersNames.Text + txtNamePlayer1.Text + ".xml"))
                {
                    // 10.6.2011- לקרוא לטעינת המשחק  מקובץ ה-XML ולשלוף ממנו
                    timer2.Stop();
                    File.Delete(path + cbJoinersNames.Text + ".rom");
                    //חיבים לוודא שכל השדות מולאו
                    try
                    {
                        a.Play(RammyCube.Properties.Resources.chimes, Microsoft.VisualBasic.AudioPlayMode.Background);
                        //InitializNamesAttrib();
                        names.Reverse(0, 2);
                        ucg = new ucGame((int)numOfPlayers.Value, names, kinds, networkGame, mainForm.userName);
                        FormGame fGame;
                        fGame             = new FormGame(ucg, mainForm);
                        fGame.MdiParent   = mainForm;
                        fGame.WindowState = FormWindowState.Maximized;
                        fGame.Show();
                        this.Close();
                    }

                    catch (Exception ex)
                    {
                        if (ex.GetType().Name == "NullReferenceException")
                        {
                            MessageBox.Show("!!חובה למלא את שמות וסוגי השחקנים");
                        }
                    }
                    MessageBox.Show("Game start", "Rammi", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    //stRead.Close();
                    ucg.startPlayNetwork(ucg.turn);
                }
                //stRead.Close();
            }

            catch (Exception ex) { MessageBox.Show(ex.Message); }
        }
        private void timer1_Tick(object sender, EventArgs e)
        {
            try
            {
                stRead = File.OpenText(path + txtNamePlayer1.Text + ".rom");
                string player = stRead.ReadLine();
                if (player == "2")
                {
                    nameplay2 = stRead.ReadLine();
                    stRead.Close();
                    File.Delete(path + txtNamePlayer1.Text + ".rom");
                    timer1.Stop();
                    MessageBox.Show("!" + nameplay2 + " join for you", "Rammi", MessageBoxButtons.OK, MessageBoxIcon.Information);

                    //חיבים לוודא שכל השדות מולאו
                    try
                    {
                        a.Play(RammyCube.Properties.Resources.chimes, Microsoft.VisualBasic.AudioPlayMode.Background);
                        InitializNamesAttrib();
                        ucg = new ucGame((int)numOfPlayers.Value, names, kinds, networkGame, mainForm.userName);
                        FormGame fGame;
                        fGame             = new FormGame(ucg, mainForm);
                        fGame.MdiParent   = mainForm;
                        fGame.WindowState = FormWindowState.Maximized;
                        fGame.Show();
                        this.Close();
                    }

                    catch (Exception ex)
                    {
                        if (ex.GetType().Name == "NullReferenceException")
                        {
                            MessageBox.Show("!!חובה למלא את שמות וסוגי השחקנים");
                        }
                    }
                }
                stRead.Close();
            }
            catch (Exception ex) { }
        }
Пример #5
0
        public FormGame(ucGame uc, MDIParent1 mdi)
        {
            InitializeComponent();
            mainForm      = mdi;
            currentUcGame = uc;
            //רישום לאירוע
            currentUcGame.eComputerFinished += new dComputerFinishedEventHandler(currentUcGame_eComputerFinished);

            currentUcGame.eLoadChangesFinished += new dLoadChangesFinishedEventHandler(currentUcGame_eLoadChangesFinished);//@@

            this.Text = "משחק";

            if (mainForm.isNetworkGame)
            {
                if (currentUcGame.playersBoards[0].name == mainForm.userName)
                {
                    indCurrPlayer = 0;
                }
                else
                {
                    indCurrPlayer = 1;
                }

                uc.playersBoards[indCurrPlayer].Location = new Point(pnlMainPlayBoard.Location.X + 100, pnlMainPlayBoard.Location.Y + pnlMainPlayBoard.Height + 5);
                uc.playersBoards[indCurrPlayer].Name     = "ucPlayerBoard1";
            }

            else
            {
                //this.pnlPlayer1.Controls.Add(uc.playersBoards[0]);
                //uc.playersBoards[0].Location = new Point(103, 551);
                uc.playersBoards[uc.turn].Location = new Point(pnlMainPlayBoard.Location.X + 100, pnlMainPlayBoard.Location.Y + pnlMainPlayBoard.Height + 5);
                uc.playersBoards[uc.turn].Name     = "ucPlayerBoard" + (uc.turn + 1).ToString();
            }

            #region network//@@
            if (currentUcGame.netWorkGame)
            {
                if (currentUcGame.turn == 0)
                {
                    if (mainForm.userName == currentUcGame.playersBoards[0].name)
                    {
                        lblPlayerName.Text = currentUcGame.playersBoards[0].name;
                    }
                    else
                    {
                        lblPlayerName.Text = currentUcGame.playersBoards[1].name;
                    }
                }
                else
                {
                    if (mainForm.userName == currentUcGame.playersBoards[1].name)
                    {
                        lblPlayerName.Text = currentUcGame.playersBoards[1].name;
                    }
                    else
                    {
                        lblPlayerName.Text = currentUcGame.playersBoards[0].name;
                    }
                }
                currentUcGame.setCurrentName(mainForm.userName);
            }
            else
            {
                lblPlayerName.Text = currentUcGame.playersBoards[currentUcGame.turn].name;
            }
            #endregion
            // uc.playersBoards[0].Name = "ucPlayerBoard1";
            if (mainForm.isNetworkGame)
            {
                this.Controls.Add(uc.playersBoards[indCurrPlayer]);
            }
            else
            {
                this.Controls.Add(uc.playersBoards[uc.turn]);
            }
            //  this.pnlPlayer2.Controls.Add(uc.playersBoards[1]);
            //labelnmp1.Text = uc.playersBoards[0].name;
            //labelnp2.Text = uc.playersBoards[1].name;
            if (uc.playersBoards.Count() > 2)
            {
                this.BackgroundImage = global::RammyCube.Properties.Resources._2;
                //pnlPlayer3.Visible = true;//כשמוסיפיפ תמונה- למחק
                // this.pnlPlayer3.Controls.Add(uc.playersBoards[2]);
            }
            if (uc.playersBoards.Count() > 3)
            {
                this.BackgroundImage = global::RammyCube.Properties.Resources._3;
                // pnlPlayer4.Visible = true;//כשמוסיפיפ תמונה- למחק
                // this.pnlPlayer4.Controls.Add(uc.playersBoards[3]);
            }
            if (mainForm.isOpenSaveGame)
            {
                LoadSerias("SavedGame");
            }
        }
        private void btnOkNamesKinds_Click(object sender, EventArgs e)
        {
            if (rbNetwork.Checked == true)
            {
                if (rbNew.Checked == true)
                {
                    int drive = Microsoft.VisualBasic.FileIO.FileSystem.Drives.Count;
                    int i;
                    for (i = 0; i < drive; i++)
                    {
                        if (Microsoft.VisualBasic.FileIO.FileSystem.Drives[i].DriveType == DriveType.Removable)
                        {
                            path = Microsoft.VisualBasic.FileIO.FileSystem.Drives[i].Name;
                            break;
                        }
                    }
                    stWrite = File.CreateText(txtNamePlayer1.Text + ".rom");
                    stWrite.WriteLine("1");
                    stWrite.WriteLine(txtNamePlayer1.Text);
                    stWrite.Close();
                    timer1.Start();
                    MessageBox.Show("wait for joiner", "Rammy", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                    progressBar1.Visible = true;
                }
                else if (rbJoiner.Checked == true)
                {
                    if (cbJoinersNames.Text == "")
                    {
                        MessageBox.Show("fill name of player", "Rammi", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                        cbJoinersNames.Focus();
                    }
                    else
                    {
                        InitializNamesAttrib();
                        //stWrite = File.CreateText(path + txtNamePlayer1.Text + ".rom");
                        stWrite = File.CreateText(path + cbJoinersNames.Text + ".rom");
                        stWrite.WriteLine("2");
                        //stWrite.WriteLine(cbJoinersNames.Text);
                        stWrite.WriteLine(txtNamePlayer1.Text);
                        stWrite.Close();
                        timer2.Start();
                        MessageBox.Show("wait for ok that someone join for you", "Rammi", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                        progressBar1.Visible = true;
                    }
                }
            }
            else
            {
                //חיבים לוודא שכל השדות מולאו
                try
                {
                    //@@ TODO: להוציא מהערה כשמעתיקים
                    a.Play(RammyCube.Properties.Resources.chimes, Microsoft.VisualBasic.AudioPlayMode.Background);
                    InitializNamesAttrib();

                    if (mainForm.isOpenSaveGame)
                    {
                        LoadUcGame();
                    }
                    else
                    {
                        ucg = new ucGame((int)numOfPlayers.Value, names, kinds, false, mainForm.userName);
                    }

                    FormGame fGame;
                    fGame             = new FormGame(ucg, mainForm);
                    fGame.MdiParent   = mainForm;
                    fGame.WindowState = FormWindowState.Maximized;
                    fGame.Show();
                    this.Close();
                }

                catch (Exception ex)
                {
                    if (ex.GetType().Name == "NullReferenceException")
                    {
                        MessageBox.Show("you must fill the names and the kinds of players");
                    }
                }
            }
        }
        public void LoadUcGame()
        {
            ucg = new ucGame();
            try
            {
                eColor        tmpec = new eColor();
                eStatus       tmpes = new eStatus();
                string        curName;
                bool          curKind;
                List <ccCard> curCards = new List <ccCard> {
                };
                //InitializNamesAttrib();
                XDocument doc  = XDocument.Load("SavedGame.xml");
                var       prop = doc.Element("properties");
                //שליפת מספר השחקנים
                ucg.numOfPlayers = (int)prop.Attribute("numOfPlayers");
                // שליפת התור הנוכחי
                ucg.turn          = (int)prop.Attribute("turn");
                ucg.playersBoards = new ucPlayerBoard[ucg.numOfPlayers];
                // שליפת מאפייני השחקנים ואבניהם
                for (int i = 0; i < ucg.numOfPlayers; i++)
                {
                    curName = (string)prop.Element("player" + (i + 1)).Attribute("name");
                    curKind = (bool)prop.Element("player" + (i + 1)).Attribute("computer");
                    var curPlyr = prop.Element("player" + (i + 1));
                    //ריקון רשימת הקלפים של השחקן כדי לאתחלה לפי המשחק השמור
                    //ucg.playersBoards[i].listCards.Clear();
                    curCards.Clear();
                    for (int j = 0; j < (int)curPlyr.Attribute("cntCard"); j++)
                    {
                        int    curNum   = (int)curPlyr.Element("card" + (j + 1)).Attribute("number");
                        string curColor = (string)curPlyr.Element("card" + (j + 1)).Attribute("color");
                        tmpec = ucg.ToEColor(curColor);
                        curCards.Add(new ccCard((byte)curNum, tmpec));
                    }
                    ucg.playersBoards[i] = new ucPlayerBoard(curCards.ToList(), curName, curKind);
                }
                // שליפת אבני הקופה
                ucg.box.Clear();  //ריקון אבני הקופה כדי לאתחלה לפי המשחק השמור
                foreach (XElement crd in prop.Element("box").Elements())
                {
                    int    curNum   = (int)crd.Attribute("number");
                    string curColor = (string)crd.Attribute("color");
                    string stt      = (string)crd.Attribute("status");
                    tmpec = ucg.ToEColor(curColor);
                    tmpes = ucg.ToEStatus(stt);
                    ucg.box.Add(new ccCard((byte)curNum, tmpec, tmpes));
                }

                // שליפת לוח המשחק
                if (ucg.mainBoard.Count > 0)
                {
                    ucg.mainBoard.Clear(); //ריקון לוח המשחק כדי לאתחלה לפי המשחק השמור
                }
                else
                {
                    ucg.mainBoard = new List <List <ccCard> > {
                    }
                };
                foreach (XElement seria in prop.Element("mainBoard").Elements())
                {
                    List <ccCard> tmp = new List <ccCard> {
                    };
                    int i             = 0;

                    foreach (XElement crd in seria.Elements())
                    {
                        int    curNum   = (int)crd.Attribute("number");
                        string curColor = (string)crd.Attribute("color");
                        string stt      = (string)crd.Attribute("status");
                        tmpec = ucg.ToEColor(curColor);
                        tmpes = ucg.ToEStatus(stt);
                        tmp.Add(new ccCard((byte)curNum, tmpec, tmpes));
                    }
                    ucg.mainBoard.Add(tmp);
                    i++;
                }
                ucg.Show_Cards(ucg.turn);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
            }
        }