//start downloading private void button1_Click(object sender, EventArgs e) { total = 0; for (int i = 0; i < GlobalConstants.GENERATION.Count; i++) { foreach (TreeNode season in treeView1.Nodes[i].Nodes) { if (season.Checked) { total++; } } } total *= 6; if (total == 0) { SelfDesignedMsg sdm = new SelfDesignedMsg("要先点选需要下载赛季,小女子才能帮您下载哦~", false); sdm.ShowDialog(); return; } errorExists = false; bkWorker.WorkerReportsProgress = true; bkWorker.WorkerSupportsCancellation = true; bkWorker.DoWork += new DoWorkEventHandler(startUpdate); bkWorker.ProgressChanged += new ProgressChangedEventHandler(updateProgress); bkWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(completeWork); label2.Text = "已开始下载"; bkWorker.RunWorkerAsync(); }
public ArrayList getModelLists() { ArrayList res = new ArrayList(); try { string strLine = sr.ReadLine(); while (strLine != null) { res.Add(double.Parse(strLine)); strLine = sr.ReadLine(); } } catch { sr.Close(); SelfDesignedMsg sdm = new SelfDesignedMsg("Sorry~ 您自定义模型中存在我无法解析的数据, 小女子只能识别int和double型数据...", false); sdm.ShowDialog(); return(null); } sr.Close(); aFile.Close(); return(res); }
//进行分析统计 private void updateAnalysis() { if (battleType == -1) { return; } double para = 1; if (textBox1.Text != "") { try { para = -double.Parse(textBox1.Text); } catch { SelfDesignedMsg sdm = new SelfDesignedMsg("Sorry~ 小女子无法解析您所输入的参数a的值,请重新输入或直接拖动滑动条~", false); sdm.ShowDialog(); return; } } az = new Analyze(curSingleFile, battleType, para, selfDefined); if (az.initalFailed) { return; } presentResult(battleType); pictureBox1.Refresh(); }
public Analyze(string dbFile, int battleType, double userPara, bool selfDefined) { para = userPara; this.battleType = battleType; ah = new AccessHandler(dbFile); curDir = Environment.CurrentDirectory; initalFailed = true; raceData = ah.SelectToDataTable("select pokemon.hp,pokemon.attack,pokemon.defense,pokemon.specialAttack,pokemon.specialDefense,pokemon.speed,battleType" + battleType + ".ranking,battleType" + battleType + ".nature1,battleType" + battleType + ".nu1,battleType" + battleType + ".nature2,battleType" + battleType + ".nu2,battleType" + battleType + ".nature3,battleType" + battleType + ".nu3 from battleType" + battleType + " inner join [;database=" + curDir + "/Data/PokeData.mdb].pokemon on pokemon.poke_id = battleType" + battleType + ".poke_id"); rankingDetails = ah.SelectToDataTable("select * from battleType" + battleType + ""); total = 0; if (selfDefined) { SelfDefinedModelParser sdmp; try { sdmp = new SelfDefinedModelParser("Data/SelfDefinedModel.txt"); } catch { SelfDesignedMsg sdm = new SelfDesignedMsg("Sorry~ 小女子找不到您定义模型的文件...\r\n请确认文件Data/SelfDefinedModel.txt的存在~", false); sdm.ShowDialog(); return; } ArrayList selfModel = sdmp.getModelLists(); if (selfModel == null) { return; } if (selfModel.Count < rankingDetails.Rows.Count) { SelfDesignedMsg sdm = new SelfDesignedMsg("您定义的模型数据不足哦~ 请至少定义" + rankingDetails.Rows.Count + "条", false); sdm.ShowDialog(); return; } model = new double[rankingDetails.Rows.Count + 1]; model[0] = 0; for (int i = 1; i <= rankingDetails.Rows.Count; i++) { model[i] = (double)selfModel[i - 1]; total += model[i]; } } else { model = new double[rankingDetails.Rows.Count + 1]; model[0] = 0; for (int i = 1; i <= rankingDetails.Rows.Count; i++) { model[i] = Math.Pow(i, para); total += model[i]; } } initalFailed = false; }
public ShowAnalysis(AccessHandler ah, string curSingleFile, string[] rankTables) { InitializeComponent(); if (GlobalConstants.dpiX == 120) { foreach (Control ct in this.Controls) { ct.Font = new System.Drawing.Font(ct.Font.FontFamily, (float)(ct.Font.Size / 1.25), System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); } } label15.Text = "Top" + GlobalConstants.POPULARTHRESHOLD + label15.Text; battleType = -1; this.curSingleFile = curSingleFile; this.ah = ah; this.rankTables = rankTables; defaultpara = new double[6]; defaultpara[0] = 0; for (int i = 1; i < 6; i++) { defaultpara[i] = double.Parse(GlobalConstants.ANALYSISPARA[i - 1]); } radioButton1.Checked = true; string fileName = curSingleFile.Split('/')[2].Replace(".mdb", ""); string[] nameParts = fileName.Split('-'); label6.Text = nameParts[0] + "-" + nameParts[1] + "赛季-" + nameParts[2]; comboBox1.Items.Clear(); string generationSelected = curSingleFile.Split('/')[1]; int defaultTable = -1; for (int i = 0; i < rankTables.Length; i++) { comboBox1.Items.Add(generationSelected + "-" + GlobalConstants.TABLENAMES[rankTables[i][10] - '0']); if (GlobalConstants.DEFAULTBATTLETYPE[0] - '0' == rankTables[i][10] - '0') { defaultTable = i; } } if (defaultTable >= 0) { comboBox1.SelectedIndex = -1; comboBox1.SelectedIndex = defaultTable; } else { SelfDesignedMsg sdm = new SelfDesignedMsg("Sorry~~【对战类型】下拉菜单中没有找到您所设的默认榜单, 请手动选择其它榜单~", false); sdm.ShowDialog(); } }
//start updating private void button1_Click(object sender, EventArgs e) { pkIdList = new ArrayList(); try { FileStream file = new FileStream("Data/pokeIdList.dat", FileMode.Open); StreamReader sr = new StreamReader(file); string line = sr.ReadLine(); while (line != null) { pkIdList.Add(line); line = sr.ReadLine(); } sr.Close(); } catch { textBox1.Text += "读取文件pokeIdList.dat失败\r\n"; errorExists = true; return; } progressBar1.Value = 0; total = 0; generationTotal = new int[treeView1.Nodes.Count]; for (int i = 0; i < treeView1.Nodes.Count; i++) { generationTotal[i] = 0; for (int j = 0; j < treeView1.Nodes[i].Nodes.Count; j++) { if (treeView1.Nodes[i].Nodes[j].Checked) { total++; generationTotal[i]++; } } generationTotal[i] *= pkIdList.Count; } total *= pkIdList.Count; if (total == 0) { SelfDesignedMsg sdm = new SelfDesignedMsg("要先点选需更新的榜单,小女子才能帮您下载哦~", false); sdm.ShowDialog(); return; } textBox1.Text += "下载开始\r\n"; stopwatch = new System.Diagnostics.Stopwatch(); bkWorker.RunWorkerAsync(); }
//start app updating private void button1_Click(object sender, EventArgs e) { SelfDesignedMsg sdm = new SelfDesignedMsg("更新就交给我啦~ 我会暂时关闭当前程序,在下载和替换完成后会启动新版本程序,那么,现在开始吗?", true); DialogResult dr = sdm.ShowDialog(); if (dr == DialogResult.Yes) { //call the PGLToolUpdate app Process proc = Process.Start(Environment.CurrentDirectory + "/Update/PGLToolUpdateV1.0.exe", newVersion); Environment.Exit(0); } }
//选择对战类型 private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { if (comboBox1.SelectedIndex < 0) { battleType = -1; return; } battleType = rankTables[comboBox1.SelectedIndex][10] - '0'; if (battleType == 0) { SelfDesignedMsg sdm = new SelfDesignedMsg("该对战类型无法进行分析哦~", false); sdm.ShowDialog(); return; } textBox1.Text = defaultpara[battleType].ToString(); trackBar1.Value = (int)(defaultpara[battleType] / 0.05); updateAnalysis(); }
//thread finishes private void completeWork(object sender, RunWorkerCompletedEventArgs e) { label2.Text = "0分0秒"; label1.Text = "100%"; if (WindowState == FormWindowState.Minimized) { Text = "100%"; } progressBar1.Value = 100; if (errorExists) { textBox1.Text += "下载因异常而中断\r\n"; } else { textBox1.Text += "下载全部完成\r\n"; SelfDesignedMsg sdm = new SelfDesignedMsg("小女子已经为您下载完全部数据啦~~~\r\n要阅览最新数据请重启软件哦~", false); sdm.ShowDialog(); } }
//thread finishes private void completeWork(object sender, RunWorkerCompletedEventArgs e) { label1.Text = "100%"; if (WindowState == FormWindowState.Minimized) { Text = "100%"; } progressBar1.Value = 100; if (errorExists) { label2.Text = "下载中断"; SelfDesignedMsg sdm = new SelfDesignedMsg("Sorry~ 下载因为异常而中断了... \r\n可能github服务器暂时无法连接", false); sdm.ShowDialog(); } else { label2.Text = "下载完成"; SelfDesignedMsg sdm = new SelfDesignedMsg("您需要的旧赛季数据已经都下载好啦~~~\r\n要阅览最新数据请重启软件哦~", false); sdm.ShowDialog(); } }
public UpdateApp(bool autoCheck) { InitializeComponent(); if (GlobalConstants.dpiX == 120) { foreach (Control ct in this.Controls) { ct.Font = new System.Drawing.Font(ct.Font.FontFamily, (float)(ct.Font.Size / 1.25), System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); } } Register(); hasNew = false; if (!checkUpdate()) { if (!autoCheck) { SelfDesignedMsg sdm = new SelfDesignedMsg("您的软件已经是最新版本啦~", false); sdm.ShowDialog(); } return; } hasNew = true; string url = "https://raw.githubusercontent.com/DearUnknown/PGLToolUpdate/master/PGLToolUpdate/VersionV1.0/info.txt"; WebClient myWebClient = new WebClient(); myWebClient.DownloadFile(url, "Update/info.txt"); FileStream aFile = new FileStream("Update/info.txt", FileMode.Open); StreamReader sr = new StreamReader(aFile, Encoding.GetEncoding("UTF-8")); string info = sr.ReadToEnd(); textBox1.Text = info.Replace("\n", "\r\n"); sr.Close(); aFile.Close(); }
public UpdateData(bool autoCheck) { InitializeComponent(); if (GlobalConstants.dpiX == 120) { foreach (Control ct in this.Controls) { ct.Font = new System.Drawing.Font(ct.Font.FontFamily, (float)(ct.Font.Size / 1.25), System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); } } valid = false; defaultHasNew = false; radioButton2.Enabled = false; radioButton2.Visible = false; int checkRes = checkUpdate(); bool gitValid = checkGit(); //fail to connect to PGL if (checkRes == -2) { radioButton1.Enabled = false; radioButton1.Visible = false; radioButton1.Checked = false; if (!gitValid) { if (!autoCheck) { SelfDesignedMsg sdm = new SelfDesignedMsg("Sorry~ 无法连接PGL服务器, 可能这货在维护...", false); sdm.ShowDialog(); } return; } } //no return for PGL http post else if (checkRes == -1) { radioButton1.Enabled = false; radioButton1.Visible = false; radioButton1.Checked = false; if (!gitValid) { if (!autoCheck) { SelfDesignedMsg sdm = new SelfDesignedMsg("刚刚进入新赛季,PGL服务器上暂时还找不到新的数据~", false); sdm.ShowDialog(); } return; } } //no new data else if (checkRes == 0) { if (!autoCheck) { SelfDesignedMsg sdm = new SelfDesignedMsg("您已拥有最新各项榜单啦~", false); sdm.ShowDialog(); } return; } //initialize a new thread valid = true; errorExists = false; bkWorker.WorkerReportsProgress = true; bkWorker.WorkerSupportsCancellation = true; bkWorker.DoWork += new DoWorkEventHandler(startUpdate); bkWorker.ProgressChanged += new ProgressChangedEventHandler(updateProgress); bkWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(completeWork); //get user's selection for new data treeView1.CheckBoxes = true; if (checkRes > 0 && (!gitValid)) { for (int i = 0; i < fetchTasks.Count; i++) { TreeNode tn = new TreeNode(); tn.Text = ((Fetch)fetchTasks[i]).generation + "-" + ((Fetch)fetchTasks[i]).curSeasonName + "-" + ((Fetch)fetchTasks[i]).updateTime.Split('-')[0]; if (((int[])newTables[i])[0] == 1) { tn.Nodes.Add("All Matches"); } if (((int[])newTables[i])[1] == 1) { tn.Nodes.Add("Single"); } if (((int[])newTables[i])[2] == 1) { tn.Nodes.Add("Double"); } if (((int[])newTables[i])[3] == 1) { tn.Nodes.Add("Triple"); } if (((int[])newTables[i])[4] == 1) { tn.Nodes.Add("Rotation"); } if (((int[])newTables[i])[5] == 1) { tn.Nodes.Add("Special"); } treeView1.Nodes.Add(tn); } } else { gitTasks = new ArrayList(); newTables.Clear(); for (int i = 0; i < GlobalConstants.GENERATION.Count; i++) { int[] blankTable = { 1, 1, 1, 1, 1, 1 }; if (gitVersions[i].ToString().Equals("")) { int tableCount = 0; AccessHandler ah = new AccessHandler(GlobalConstants.MOSTRECENTFILES[i].ToString()); string[] rankTables = ah.showAllTables(); foreach (string rankTable in rankTables) { blankTable[rankTable[10] - '0'] = 0; tableCount++; } if (tableCount < 6) { newTables.Add(blankTable); gitTasks.Add(GlobalConstants.MOSTRECENTFILES[i].ToString()); if (GlobalConstants.DEFAULTGENERATION.Equals(i.ToString())) { defaultHasNew = true; } } } else { newTables.Add(blankTable); gitTasks.Add(gitVersions[i].ToString()); if (GlobalConstants.DEFAULTGENERATION.Equals(i.ToString())) { defaultHasNew = true; } } } if (gitTasks.Count == 0) { valid = false; if (!autoCheck) { SelfDesignedMsg sdm = new SelfDesignedMsg("您已拥有最新各项榜单啦~", false); sdm.ShowDialog(); } return; } for (int i = 0; i < gitTasks.Count; i++) { TreeNode tn = new TreeNode(); string[] nameParts = gitTasks[i].ToString().Split('/'); tn.Text = nameParts[1] + "-" + nameParts[2].Split('-')[1] + "-" + nameParts[2].Split('-')[2]; if (((int[])newTables[i])[0] == 1) { tn.Nodes.Add("All Matches"); } if (((int[])newTables[i])[1] == 1) { tn.Nodes.Add("Single"); } if (((int[])newTables[i])[2] == 1) { tn.Nodes.Add("Double"); } if (((int[])newTables[i])[3] == 1) { tn.Nodes.Add("Triple"); } if (((int[])newTables[i])[4] == 1) { tn.Nodes.Add("Rotation"); } if (((int[])newTables[i])[5] == 1) { tn.Nodes.Add("Special"); } treeView1.Nodes.Add(tn); } } }