private void lvStartGame_EditCommit(object sender, EditListView.mEditCommit e)
        {
            SayiTahminIcerik sti = lvStartGameToSayiTahmin(null);

            ReflectFunctions.SetPropertyValueDirect(sti, e.BaseItem.Name, e.Value, YesNoCombo.Items[0].ToString());
            GlobalVariants.ActiveProfile.LastGameProp = sti;
            refreshYildizPuani(sti);
        }
Exemple #2
0
        public static int GetDifficultLevel(SayiTahminIcerik sticerik)
        {
            int dpoints  = 100;
            int ibasorta = (sticerik.MaxBasamak + sticerik.MinBasamak) / 2;

            if (ibasorta <= 3)
            {
                dpoints -= 30;
            }
            else
            {
                dpoints -= (30 - ibasorta * 3);
            }
            int isure = sticerik.Sure / 10;

            if (isure == 0 || isure > 20)
            {
                dpoints -= 20;
            }
            else if (isure < 20)
            {
                dpoints -= isure;
            }
            if (sticerik.RakalmarFarkli)
            {
                dpoints -= 15;
            }
            if (sticerik.GecmisiGoster && !sticerik.VectorelMode)
            {
                dpoints -= 10;
            }
            if (sticerik.YanlisTahminSayisi <= 0 || sticerik.YanlisTahminSayisi > 20)
            {
                dpoints -= 20;
            }
            else
            {
                dpoints -= sticerik.YanlisTahminSayisi;
            }
            if (dpoints <= 10)
            {
                return(0);
            }
            if (dpoints >= 90)
            {
                return(6);
            }
            float fpoint = (float)dpoints;
            float fsonuc = fpoint / 100f * 6f;

            return((int)Math.Round(fsonuc));
        }
Exemple #3
0
 /// <summary>
 /// Yeni bir oyun başlatır
 /// </summary>
 /// <param name="stgamedata">Başlatılacak oyun içeriğini tutan data</param>
 public void StartGame(SayiTahminIcerik stgamedata, UserProfile gamerProfile)
 {
     if (IsGameStarted)
     {
         throw new Exception(String.GetLangText("STG_ERR_NEWGAME_EXC"));
     }
     if (stgamedata == null)
     {
         throw new Exception(String.GetLangText("STG_ERR_NULL_EXC"));
     }
     SayiTahminData = stgamedata;
     GamerProfile   = gamerProfile;
     StartGame(false);
 }
        /// <summary>
        /// Reflection ile SayiTahminIcerik sınıfının içeriğini EditListView'e aktaracağız.
        /// </summary>
        /// <param name="icerik"></param>
        void fillStartGameLv(SayiTahminIcerik icerik)
        {
            lvStartGame.Items.Clear();
            Type type = icerik.GetType();

            PropertyInfo[] allProperties = type.GetProperties();
            foreach (var property in allProperties)
            {
                if (property.CustomAttributes == null)
                {
                    continue;
                }
                var cdata = (SayiTahminAttribute)property.GetCustomAttribute(typeof(SayiTahminAttribute));
                if (cdata == null)
                {
                    continue;
                }
                ListViewItem lvItem = new ListViewItem()
                {
                    Name = property.Name,
                    Text = GlobalVariants.PhraseList[cdata.Description]?.Text ?? cdata.Description
                };
                ListViewItem.ListViewSubItem lvSubItem = new ListViewItem.ListViewSubItem();
                if (property.PropertyType == typeof(bool))
                {
                    if ((bool)property.GetValue(icerik, null))
                    {
                        lvSubItem.Text = YesNoCombo.Items[0].ToString();
                    }
                    else
                    {
                        lvSubItem.Text = YesNoCombo.Items[1].ToString();
                    }
                }
                else
                {
                    lvSubItem.Text = property.GetValue(icerik, null)?.ToString();
                }

                EditListView.EditItemTag editItemTag = new EditListView.EditItemTag(cdata.Group);
                lvSubItem.Tag = editItemTag;
                lvItem.SubItems.Add(lvSubItem);
                lvStartGame.Items.Add(lvItem);
            }
        }
        private void btnStartGame_Click(object sender, EventArgs e)
        {
            SayiTahminIcerik sti = lvStartGameToSayiTahmin(null);

            sti.VectorelMode = CWMode;
            if (sti.MinBasamak > sti.MaxBasamak)
            {
                Mesaj.mbox.Göster(String.GetLangText("GLB_ERROR_MINMAX"));
                return;
            }
            if (ActiveGame.IsGameStarted)
            {
                return;
            }
            GlobalVariants.ActiveProfile.LastGameProp = sti;
            ActiveGame.StartGame(sti, GlobalVariants.ActiveProfile);
            //starZorluk.YıldızPuanı = SayiTahminChecker.GetDifficultLevel(GlobalVariants.ActiveProfile.LastGameProp);
        }
        /// <summary>
        /// EditListView deki itemleri Reflection yardımıyla SayiTahminIcerik sınıfına çeviriyoruz.
        /// </summary>
        /// <param name="prototype"></param>
        /// <returns></returns>
        SayiTahminIcerik lvStartGameToSayiTahmin(SayiTahminIcerik prototype)
        {
            SayiTahminIcerik stIcerik = prototype ?? new SayiTahminIcerik();
            Type             type     = stIcerik.GetType();

            foreach (ListViewItem lvItem in lvStartGame.Items)
            {
                PropertyInfo  pInfo    = type.GetProperty(lvItem.Name);
                Type          mtype    = pInfo.PropertyType;
                TypeConverter tconvert = TypeDescriptor.GetConverter(mtype);
                string        itemtext = lvItem.SubItems[1].Text;
                if (mtype == typeof(bool))
                {
                    itemtext = (itemtext == YesNoCombo.Items[0].ToString()).ToString();
                }
                object obj = tconvert.ConvertFromString(itemtext);
                pInfo.SetValue(stIcerik, obj);
            }
            return(stIcerik);
        }
 private void refreshYildizPuani(SayiTahminIcerik sti)
 {
     sti.VectorelMode       = CWMode;
     starZorluk.YıldızPuanı = SayiTahminChecker.GetDifficultLevel(sti);
 }