コード例 #1
0
        public MainWindow()
        {
            InitializeComponent();
            InitializeCommands();
            this.DataContext = this;

            CloseSave();
            Igra.PrikaziTablu();
            Igra.StopericaPublic.Start1();
            Igra.NadjiNajboljiPotez();
        }
コード例 #2
0
        private void InitializeCommands()
        {
            //Nova igra
            this.New = new RelayCommand
                       (
                delegate(object o)
            {
                if (MessageBox.Show("Zelite li da sacuvate partiju?", "Nova igra", MessageBoxButton.OKCancel, MessageBoxImage.Exclamation) == MessageBoxResult.OK)
                {
                    SaveFileDialog save = new SaveFileDialog();
                    save.Filter         = "Chess Sharp file (*.csf)|*.csf";
                    if (save.ShowDialog() ?? false == true)
                    {
                        using (FileStream stream = File.Open(save.FileName, FileMode.Create))
                        {
                            BinaryFormatter formatter = new BinaryFormatter();
                            formatter.Serialize(stream, this.Igra);
                            //formatter.Serialize(stream, this.Stoperica);
                        }
                        //this.Igra = new Igra();
                        NovaIgra();
                        Igra.PrikaziTablu();
                        Igra.StopericaPublic.Reset1();
                        Igra.StopericaPublic.Reset2();
                        Igra.PrikaziTablu();
                    }
                }
                else
                {
                    NovaIgraDialog newDialog = new NovaIgraDialog(Igra, Igra.StopericaPublic);
                    newDialog.ShowDialog();

                    if (newDialog.DialogResult == true)
                    {
                        NovaIgra();
                        Igra.PrikaziTablu();
                        Igra.StopericaPublic.Reset1();
                    }
                }
            },
                o => true
                       );
            this.Open = new RelayCommand
                        (
                delegate(object o)
            {
                OpenFileDialog load = new OpenFileDialog();
                load.Filter         = "Chess Sharp file (*.csf)|*.csf";
                if (load.ShowDialog() ?? false == true)
                {
                    using (FileStream stream = File.OpenRead(load.FileName))
                    {
                        BinaryFormatter formatter = new BinaryFormatter();
                        this.Igra = formatter.Deserialize(stream) as Igra;
                        //this.Stoperica = formatter.Deserialize(stream) as Stoperica;
                    }
                    Igra.PrikaziTablu();
                    Igra.StopericaPublic.Start1();
                }
            },
                o => true
                        );
            this.Opcije = new RelayCommand
                          (
                delegate(object o)
            {
                OpcijeDijalog opcijeD = new OpcijeDijalog(Igra);
                opcijeD.ShowDialog();
            },
                o => true
                          );
            this.Undo = new RelayCommand
                        (
                delegate(object o)
            {
                MovePosStack mps = Igra.CBoard.MovePosStack;
                if (Igra.CBoard.MovePosStack.PositionInList >= 0)
                {
                    if (mps.CurrentMove.Move.Type == Move.TypeE.PieceEaten)
                    {
                        for (int i = 0; i < Igra.KonteinerCrniPublic.Count; i++)
                        {
                            Igra.KonteinerCrniPublic.Move(Igra.KonteinerCrniPublic.Count - 1, i);
                        }
                        Igra.KonteinerCrniPublic.RemoveAt(0);
                        for (int i = 0; i < Igra.KonteinerCrniPublic.Count; i++)
                        {
                            Igra.KonteinerCrniPublic.Move(Igra.KonteinerCrniPublic.Count - 1, i);
                        }
                    }
                    Igra.CBoard.UndoMove();
                    if (mps.CurrentMove.Move.Type == Move.TypeE.PieceEaten)
                    {
                        for (int i = 0; i < Igra.KonteinerBeliPublic.Count; i++)
                        {
                            Igra.KonteinerBeliPublic.Move(Igra.KonteinerBeliPublic.Count - 1, i);
                        }
                        Igra.KonteinerBeliPublic.RemoveAt(0);
                        for (int i = 0; i < Igra.KonteinerBeliPublic.Count; i++)
                        {
                            Igra.KonteinerBeliPublic.Move(Igra.KonteinerBeliPublic.Count - 1, i);
                        }
                    }
                    Igra.CBoard.UndoMove();
                    Igra.ListePotezaPublic.Remove(Igra.ListePotezaPublic.Last());
                    Igra.ListePotezaPublic.Remove(Igra.ListePotezaPublic.Last());
                }
                Igra.PrikaziTablu();
            },
                o => true
                        );
            this.About = new RelayCommand
                         (
                delegate(object o)
            {
                AboutDialog about = new AboutDialog();
                about.ShowDialog();
            },
                o => true
                         );
        }
コード例 #3
0
        //Dogadjaj pozvan spustanjem na mis
        private void Image_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
            if (e.LeftButton == MouseButtonState.Released)
            {
                Point trenutnaPozicijaMisa = e.GetPosition(null);
                this.sahovkaFigura = selektovanaFigura.Tag as SahovskeFigurice;

                if (sahovkaFigura.Pozicija.X < 0.6)
                {
                    sahovkaFigura.Pozicija = new Point(0, sahovkaFigura.Pozicija.Y);
                    CentarY();
                }
                else if (sahovkaFigura.Pozicija.X < 1 || sahovkaFigura.Pozicija.X < 1.6)
                {
                    sahovkaFigura.Pozicija = new Point(1, sahovkaFigura.Pozicija.Y);
                    CentarY();
                }
                else if (sahovkaFigura.Pozicija.X < 2 || sahovkaFigura.Pozicija.X < 2.6)
                {
                    sahovkaFigura.Pozicija = new Point(2, sahovkaFigura.Pozicija.Y);
                    CentarY();
                }
                else if (sahovkaFigura.Pozicija.X < 3 || sahovkaFigura.Pozicija.X < 3.6)
                {
                    sahovkaFigura.Pozicija = new Point(3, sahovkaFigura.Pozicija.Y);
                    CentarY();
                }
                else if (sahovkaFigura.Pozicija.X < 4 || sahovkaFigura.Pozicija.X < 4.6)
                {
                    sahovkaFigura.Pozicija = new Point(4, sahovkaFigura.Pozicija.Y);
                    CentarY();
                }
                else if (sahovkaFigura.Pozicija.X < 5 || sahovkaFigura.Pozicija.X < 5.6)
                {
                    sahovkaFigura.Pozicija = new Point(5, sahovkaFigura.Pozicija.Y);
                    CentarY();
                }
                else if (sahovkaFigura.Pozicija.X < 6 || sahovkaFigura.Pozicija.X < 6.6)
                {
                    sahovkaFigura.Pozicija = new Point(6, sahovkaFigura.Pozicija.Y);
                    CentarY();
                }
                else if (sahovkaFigura.Pozicija.X < 7 || sahovkaFigura.Pozicija.X > 7)
                {
                    sahovkaFigura.Pozicija = new Point(7, sahovkaFigura.Pozicija.Y);
                    CentarY();
                }

                Igra.PomeriFiguru(selektovanaFiguraPrethodnaPozicija, sahovkaFigura);

                if (Igra.CBoard.CurrentPlayer == ChessBoard.PlayerE.Black)
                {
                    Igra.StopericaPublic.Stop1();
                    Igra.StopericaPublic.Start2();
                }
                if (Igra.CBoard.CurrentPlayer == ChessBoard.PlayerE.White)
                {
                    Igra.StopericaPublic.Stop2();
                    Igra.StopericaPublic.Start1();
                }

                if (ListaPoteza.Items.Count > 4)
                {
                    var border = VisualTreeHelper.GetChild(ListaPoteza, 0) as Decorator;
                    if (border != null)
                    {
                        var scroll = border.Child as ScrollViewer;
                        if (scroll != null)
                        {
                            scroll.ScrollToEnd();
                        }
                    }
                }
                Igra.PrikaziTablu();
                Igra.ZvukFigure();
            }
        }