示例#1
0
        private void ManageLastPiece()
        {
            List <string> dadosWs = new List <string>();

            dadosWs.Add(this.idGame);
            string result = RequisicoesRestWS.CustodiaRequisicao(WsUrlManager.GetUrl("/get-last-played-piece"), dadosWs);

            if (String.IsNullOrEmpty(result))
            {
                ShowMsg("Não foi possível pegar a última peça! Tente novamente, mais tarde!");
                return;
            }

            PieceObject po = JsonConvert.DeserializeObject <PieceObject>(result);

            dadosWs = new List <string>();
            dadosWs.Add(this.idGame);
            result = RequisicoesRestWS.CustodiaRequisicao(WsUrlManager.GetUrl("/get-last-extreme-side"), dadosWs);

            if (String.IsNullOrEmpty(result))
            {
                ShowMsg("Não foi possível pegar o último lado! Tente novamente, mais tarde!");
                return;
            }

            this.AddBodyGame(po, result);
        }
示例#2
0
        /*
         * Retorna 0 se a partida está em andamento,
         *  1 se você ganhou,
         *  2 se o adversário ganhou,
         *  3 se deu erro!
         */
        private int GetWinnerGame()
        {
            List <string> dadosWs = new List <string>();

            dadosWs.Add(idGame);
            dadosWs.Add(idPlayer);
            string result = RequisicoesRestWS.CustodiaRequisicao(WsUrlManager.GetUrl("/is-winner"), dadosWs);

            if (String.IsNullOrEmpty(result))
            {
                ShowMsg("Falha ao obter o Ganhador, vc!");
                return(3);
            }

            if (Convert.ToBoolean(result))
            {
                dadosWs = new List <string>();
                dadosWs.Add(idGame);
                result = RequisicoesRestWS.CustodiaRequisicao(WsUrlManager.GetUrl("/endgame"), dadosWs);

                if (String.IsNullOrEmpty(result))
                {
                    ShowMsg("Falha ao fechar o Jogo!");
                    return(3);
                }

                if (!Convert.ToBoolean(result))
                {
                    ShowMsg("Não foi possível fechar o jogo!");
                }

                return(1);
            }
            else
            {
                dadosWs = new List <string>();
                dadosWs.Add(idGame);
                dadosWs.Add(idPlayer);
                result = RequisicoesRestWS.CustodiaRequisicao(WsUrlManager.GetUrl("/is-winner"), dadosWs);

                if (String.IsNullOrEmpty(result))
                {
                    ShowMsg("Falha ao obter o Ganhador, ele(a)!");
                    return(3);
                }

                if (Convert.ToBoolean(result))
                {
                    return(2);
                }
                else
                {
                    return(0);
                }
            }
        }
示例#3
0
        private void LoadAllData()
        {
            string result = RequisicoesRestWS.CustodiaRequisicao(WsUrlManager.GetUrl("/get-all-rankings"));

            if (String.IsNullOrEmpty(result))
            {
                MessageBox.Show("Opa! Não foi possível carregar os dados de Ranking! Tente mais tarde novamente!");
                return;
            }

            List <RankingObject> l = JsonConvert.DeserializeObject <List <RankingObject> >(result);

            if (l.Count() == 0)
            {
                MessageBox.Show("Sem rankings disponíveis!");
                return;
            }

            DataTable  rankingTable = new DataTable("Ranking");
            DataColumn c0           = new DataColumn("Ranking");
            DataColumn c1           = new DataColumn("Nome");
            DataColumn c2           = new DataColumn("E-mail");
            DataColumn c3           = new DataColumn("Vitórias");
            DataColumn c4           = new DataColumn("Partidas Jogadas");

            rankingTable.Columns.Add(c0);
            rankingTable.Columns.Add(c1);
            rankingTable.Columns.Add(c2);
            rankingTable.Columns.Add(c3);
            rankingTable.Columns.Add(c4);

            int rankingPos = 1;

            foreach (RankingObject ro in l)
            {
                DataRow row = rankingTable.NewRow();
                row["Ranking"] = rankingPos;

                row["Nome"]             = this.GetPlayerName(ro.player);
                row["E-mail"]           = this.GetPlayerEmail(ro.player);
                row["Vitórias"]         = ro.vitorias;
                row["Partidas Jogadas"] = ro.partidas_jogadas;
                rankingTable.Rows.Add(row);
                rankingPos++;
            }

            dataGridView1.DataSource = rankingTable;
        }
示例#4
0
        private void ManageNumTilesEnemy()
        {
            List <string> dadosWs = new List <string>();

            dadosWs.Add(idGame);
            dadosWs.Add(idPlayer);
            string result = RequisicoesRestWS.CustodiaRequisicao(WsUrlManager.GetUrl("/get-num-tiles-enemy"), dadosWs);

            if (String.IsNullOrEmpty(result))
            {
                ShowMsg("Falha ao obter o número de peças do adversário!");
                return;
            }

            lblPecaAdvers.Text = result;
        }
示例#5
0
        private Boolean CanPlayBuying()
        {
            List <string> dadosWs = new List <string>();

            dadosWs.Add(this.idGame);
            dadosWs.Add(this.idPlayer);
            string result = RequisicoesRestWS.CustodiaRequisicao(WsUrlManager.GetUrl("/can-play-buying"), dadosWs);

            if (String.IsNullOrEmpty(result))
            {
                ShowMsg("Não foi possível ver se posso jogar comprando peças!");
                return(false);
            }

            return(Convert.ToBoolean(result));
        }
示例#6
0
        private void SetPieces()
        {
            List <string> dadosWs = new List <string>();

            dadosWs.Add(this.idGame);
            dadosWs.Add(this.idPlayer);
            string result = RequisicoesRestWS.CustodiaRequisicao(WsUrlManager.GetUrl("/get-pieces"), dadosWs);

            if (String.IsNullOrEmpty(result))
            {
                MessageBox.Show("Não foi possível pegar as suas peças! Tente novamente, mais tarde!");
                return;
            }

            lista = JsonConvert.DeserializeObject <List <PieceObject> >(result);
        }
示例#7
0
        private void btnlogin_Click(object sender, EventArgs e)
        {
            using (var db = new dominoeng3Entities())
            {
                var query = from u in db.players
                            where u.Nome == txtuser.Text && u.Senha == txtpass.Text
                            select u;

                if (query.Count() == 1)
                {
                    List <string> dadosWs = new List <string>();
                    dadosWs.Add(Convert.ToString(query.First().ID));
                    dadosWs.Add(query.First().Email);
                    dadosWs.Add(txtuser.Text);
                    string idJogador = Convert.ToString(query.First().ID);
                    string result    = RequisicoesRestWS.CustodiaRequisicao(WsUrlManager.GetUrl("/connect"), dadosWs);

                    if (String.IsNullOrEmpty(result))
                    {
                        MessageBox.Show("Não foi possível logar-se! Tente novamente, mais tarde!");
                        return;
                    }

                    if (Convert.ToBoolean(result))
                    {
                        MessageBox.Show("O id do seu jogador é: " + idJogador);
                        FormMainScreen ms = new FormMainScreen(idJogador);
                        ms.ShowDialog();
                        txtpass.Text = "";
                        txtuser.Text = "";
                        this.Show();
                    }
                    else
                    {
                        MessageBox.Show("O Web Service retornou um resultado inválido! Abortando a operação de login!");
                    }
                }
                else
                {
                    MessageBox.Show("Nome e senha de usuário inválidos!");
                }
            }
        }
示例#8
0
        private void btnBuyPiece_Click(object sender, EventArgs e)
        {
            if (!CanPlayAlone() && CanPlayBuying())
            {
                List <string> dadosWs = new List <string>();
                dadosWs.Add(this.idGame);
                dadosWs.Add(this.idPlayer);
                string result = RequisicoesRestWS.CustodiaRequisicao(WsUrlManager.GetUrl("/buy"), dadosWs);

                if (String.IsNullOrEmpty(result))
                {
                    ShowMsg("Não foi possível comprar uma nova peça!");
                    return;
                }

                MessageBox.Show("Peça comprada com sucesso!");
                PieceObject po = JsonConvert.DeserializeObject <PieceObject>(result);
                this.AddPieceToPlayer(po);
            }
            else
            {
                MessageBox.Show("Ação não permitida!");
            }
        }
示例#9
0
        private void FormNewGame_Load(object sender, EventArgs e)
        {
            string result = RequisicoesRestWS.CustodiaRequisicao(WsUrlManager.GetUrl("/get-free-players/"));

            if (String.IsNullOrEmpty(result))
            {
                MessageBox.Show("Opa! Não foi possível carregar os dados de jogadores disponíveis para um novo jogo! Tente mais tarde novamente!");
                if (String.IsNullOrEmpty(previousResult))
                {
                    return;
                }

                result = previousResult;
                MessageBox.Show("Mostrando resultados previamente salvos...!");
            }

            if (String.IsNullOrEmpty(previousResult))
            {
                previousResult = result;
            }

            Dictionary <int, PlayerObject> dic = JsonConvert.DeserializeObject <Dictionary <int, PlayerObject> >(result);

            if (dic.ContainsKey(Convert.ToInt32(this.idPlayer)))
            {
                dic.Remove(Convert.ToInt32(this.idPlayer));
            }

            if (dic.Count() > 0)
            {
                poDic = dic;

                DataTable  user = new DataTable("User");
                DataColumn c0   = new DataColumn("Nome");
                DataColumn c1   = new DataColumn("E-mail");
                user.Columns.Add(c0);
                user.Columns.Add(c1);

                foreach (var x in dic)
                {
                    PlayerObject po = x.Value;

                    DataRow row = user.NewRow();
                    row["Nome"]   = po.name;
                    row["E-mail"] = po.email;
                    user.Rows.Add(row);
                }

                dataGridView1.DataSource = user;

                labelOponentes.Text = "Existem jogadores disponíveis!";
            }
            else
            {
                DataTable  user = new DataTable("User");
                DataColumn c0   = new DataColumn("Nome");
                DataColumn c1   = new DataColumn("E-mail");
                user.Columns.Add(c0);
                user.Columns.Add(c1);

                dataGridView1.DataSource = user;

                labelOponentes.Text = "Sem jogadores disponíveis!";
            }
        }
示例#10
0
        private void PlayMethod()
        {
            using (var db = new dominoeng3Entities())
            {
                var query = from u in db.partidas
                            where (u.estado == 3 && u.player2 == idPlayer)
                            select u;

                if (query.Count() > 0)
                {
                    DialogResult res = MessageBox.Show("Você quer jogar agora, assim como o Jogador 1?", "Confirmation", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);

                    if (res == DialogResult.OK)
                    {
                        int     idGame;
                        partida p = query.First();
                        idGame   = p.ID;
                        p.estado = p.estado + 1;
                        db.SaveChanges();
                        MessageBox.Show("Você decidiu jogar agora!");
                        HoldNewGameState4(idGame);
                    }
                    else if (res == DialogResult.Cancel)
                    {
                        partida p = query.First();
                        p.estado = 7;
                        db.SaveChanges();
                        MessageBox.Show("Você decidiu não jogar agora!");
                    }
                }
                else
                {
                    query = from u in db.partidas
                            where (u.estado == 4 && (u.player1 == idPlayer || u.player2 == idPlayer))
                            select u;

                    if (query.Count() > 0)
                    {
                        partida p = query.First();

                        idGame = Convert.ToString(p.ID);
                        string idPlayer1 = Convert.ToString(p.player1);
                        string idPlayer2 = Convert.ToString(p.player2);

                        DialogResult res = MessageBox.Show("O jogo pode ser iniciado agora, mesmo?", "Confirmation", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);
                        if (res == DialogResult.OK)
                        {
                            p.estado = p.estado + 1;
                            db.SaveChanges();

                            List <string> dadosWs = new List <string>();
                            dadosWs.Add(idGame);
                            dadosWs.Add(idPlayer1);
                            dadosWs.Add(idPlayer2);

                            string result = RequisicoesRestWS.CustodiaRequisicao(WsUrlManager.GetUrl("/newgame"), dadosWs);

                            if (String.IsNullOrEmpty(result))
                            {
                                MessageBox.Show("Não foi possível logar-se! Tente novamente, mais tarde!");
                                return;
                            }

                            if (Convert.ToBoolean(result))
                            {
                                string idOpponent;

                                if (idPlayer1.Equals(this.idPlayer))
                                {
                                    idOpponent = idPlayer2;
                                }
                                else
                                {
                                    idOpponent = idPlayer1;
                                }

                                fmdomino fd = new fmdomino(idGame, Convert.ToString(this.idPlayer), idOpponent);
                                fd.ShowDialog();
                            }
                            else
                            {
                                MessageBox.Show("O Web Service retornou um resultado inválido! Abortando a operação de inicio de jogo!");
                            }
                        }
                        else if (res == DialogResult.Cancel)
                        {
                            this.playIt = false;
                            MessageBox.Show("Você decidiu não jogar agora!");
                        }
                    }
                }
            }
        }
示例#11
0
        private void AddPieceToPlayer(PieceObject piece)
        {
            Point newLoc = new Point(top, left);

            top += 55;
            Button b = new Button();

            dic_but_po[b] = piece;

            b.Size     = new Size(30, 40);
            b.Location = newLoc;
            b.Click   += (s, ne) => {
                if (CanPlayAlone())
                {
                    PieceObject po = dic_but_po[b];

                    string result;
                    if (extremoA != -1)
                    {
                        string escolha = this.GetSelectedDirectionComboBoxValue();
                        if (escolha.Equals("Direita"))
                        {
                            List <string> dadosWs = new List <string>();
                            dadosWs.Add(idGame);
                            dadosWs.Add(idPlayer);
                            dadosWs.Add(po.faceA.ToString());
                            dadosWs.Add(po.faceB.ToString());
                            dadosWs.Add("A");
                            result = RequisicoesRestWS.CustodiaRequisicao(WsUrlManager.GetUrl("/play"), dadosWs);

                            if (String.IsNullOrEmpty(result))
                            {
                                MessageBox.Show("Não foi possível jogar-se! Tente novamente, mais tarde!");
                                return;
                            }

                            if (!Convert.ToBoolean(result))
                            {
                                dadosWs = new List <string>();
                                dadosWs.Add(idGame);
                                dadosWs.Add(idPlayer);
                                dadosWs.Add(po.faceB.ToString());
                                dadosWs.Add(po.faceA.ToString());
                                dadosWs.Add("A");
                                result = RequisicoesRestWS.CustodiaRequisicao(WsUrlManager.GetUrl("/play"), dadosWs);
                            }
                        }
                        else if (escolha.Equals("Esquerda"))
                        {
                            List <string> dadosWs = new List <string>();
                            dadosWs.Add(idGame);
                            dadosWs.Add(idPlayer);
                            dadosWs.Add(po.faceA.ToString());
                            dadosWs.Add(po.faceB.ToString());
                            dadosWs.Add("B");
                            result = RequisicoesRestWS.CustodiaRequisicao(WsUrlManager.GetUrl("/play"), dadosWs);

                            if (String.IsNullOrEmpty(result))
                            {
                                MessageBox.Show("Não foi possível jogar-se! Tente novamente, mais tarde!");
                                return;
                            }

                            if (!Convert.ToBoolean(result))
                            {
                                dadosWs = new List <string>();
                                dadosWs.Add(idGame);
                                dadosWs.Add(idPlayer);
                                dadosWs.Add(po.faceB.ToString());
                                dadosWs.Add(po.faceA.ToString());
                                dadosWs.Add("B");
                                result = RequisicoesRestWS.CustodiaRequisicao(WsUrlManager.GetUrl("/play"), dadosWs);
                            }
                        }
                        else
                        {
                            MessageBox.Show("Escolha um sentido: Direita ou Esquerda!");
                            return;
                        }
                    }
                    else
                    {
                        List <string> dadosWs = new List <string>();
                        dadosWs.Add(idGame);
                        dadosWs.Add(idPlayer);
                        dadosWs.Add(po.faceA.ToString());
                        dadosWs.Add(po.faceB.ToString());
                        dadosWs.Add("A");
                        result = RequisicoesRestWS.CustodiaRequisicao(WsUrlManager.GetUrl("/play"), dadosWs);
                    }

                    if (String.IsNullOrEmpty(result))
                    {
                        MessageBox.Show("Não foi possível jogar-se! Tente novamente, mais tarde!");
                        return;
                    }

                    if (Convert.ToBoolean(result))
                    {
                        string escolha = this.GetSelectedDirectionComboBoxValue();
                        if (String.IsNullOrEmpty(escolha))
                        {
                            escolha = "Esquerda";
                        }

                        this.DrawTile(po, escolha);

                        if (!this.initialized)
                        {
                            this.initialized = true;
                        }

                        if (this.InvokeRequired)
                        {
                            this.BeginInvoke((MethodInvoker) delegate()
                            {
                                Controls.Remove(b);
                            });
                        }
                        else
                        {
                            Controls.Remove(b);
                        }

                        btnPieces.Remove(b);

                        if (btnPieces.Count() > 0)
                        {
                            Button lb = btnPieces.Last();
                            lb.Location = b.Location;
                        }
                    }
                }
                else if (CanPlayBuying())
                {
                    MessageBox.Show("Compre novas peças!");
                }
                else
                {
                    MessageBox.Show("Aguarde a sua vez!");
                }
            };

            if (b.Location.X < 850)
            {
                newLoc.Offset(b.Height + 10, 0);
            }
            else
            {
                newLoc = new Point(150, 350);
                newLoc.Offset(0, b.Height + 25);
            }

            byte[]       dadosImg = this.GetImageContent(this.cip.ID, piece.faceA, piece.faceB);
            MemoryStream ms       = new MemoryStream(dadosImg);
            Image        img      = Image.FromStream(ms);

            b.BackgroundImage       = this.ResizeImage(img, b.Size);
            b.BackgroundImageLayout = ImageLayout.Stretch;
            b.ImageAlign            = ContentAlignment.MiddleRight;
            b.TextAlign             = ContentAlignment.MiddleLeft;

            if (this.InvokeRequired)
            {
                this.BeginInvoke((MethodInvoker) delegate()
                {
                    Controls.Add(b);
                });
            }
            else
            {
                Controls.Add(b);
            }

            btnPieces.Add(b);
        }