/// <summary> /// Generates a season for the given year. /// </summary> /// <param name="year"> The season you want to generate</param> public Season(int year) { Init(); this.year = year; string dir = baseDir+ year; if(!Directory.Exists(dir)) { MainClass.AddError(string.Format( "ERROR!!!\n'{0}' was not found!!",dir)); Environment.Exit(1); } string[] teamFiles = Directory.GetFiles(dir); Team t; for(int i = 0; i < teamFiles.Length; i++) { if(teamFiles[i].ToString().ToLower().IndexOf("schedule") < 0 && teamFiles[i].EndsWith(".txt") ) { t = new Team(teamFiles[i]); t.Year = year; SetTeamName( t ); teams.Add(t); } } }
public Player(string line, Team t) { ranking = 26; this.team = t; init(line); }
private string GetTeamSimData(Team t) { string ret = ""; int offense = t.offenseRank; int defense = t.defenseRank; int offensePref = t.offensePreference; //shake things up a bit for those whom suck. if(offense > 28) //offense = r.Next(22, offenseRanks.Length-1); offense = 28; if(defense > 28) //defense = r.Next(22, offenseRanks.Length-1); defense = 28; ret = string.Format("{0}{1}{2}", offenseRanks[offense],defensiveRanks[defense],offensePref); return ret; }
public string GetKickerPunterString(Team team) { Player k, p; k = team.GetPlayer("K",null,null,null,1); if(k.position == "X") k.skinColor = 1; p = team.GetPlayer("P",null,null,null,1); if(p.position == "X") p.skinColor = 1; string k_str = GetPlayerString(k,"K"); string p_str = GetPlayerString(p,"P"); // if we don't have a kicker, but do have a punter /*if(k_str.IndexOf("NOBODY") > -1 && p_str.IndexOf("NOBODY") == -1) { k_str = GetPlayerString(k,"P"); } // we don't have a punter, but do have a kicker. else if( k_str.IndexOf("NOBODY") == -1 && p_str.IndexOf("NOBODY") > -1 ) { p_str = GetPlayerString(k,"P"); }*/ return k_str + p_str; }
public string GetDefenseString(Team team) { Player re,nt,le,lolb,lilb,rolb,rilb,rcb,lcb,fs,ss,db1,db2; rcb=lcb=fs=ss=db1=db2=null; le = team.GetPlayer("DE","DT","NT",null,1); re = team.GetPlayer("DE","DT","NT",null,2); nt = team.GetPlayer("DE","DT","NT",null,3); rolb = team.GetPlayer("LB",null,null,null,1); lolb = team.GetPlayer("LB",null,null,null,2); lilb = team.GetPlayer("LB",null,null,null,3); rilb = team.GetPlayer("LB",null,null,null,4); int s_count = team.CountPositions("S") + team.CountPositions("SS")+ team.CountPositions("FS"); if(s_count > 3 ) s_count = 3; switch(s_count) { case 0: rcb = team.GetPlayer("CB","DB",null,null,1); fs = team.GetPlayer("CB","DB",null,null,3); ss = team.GetPlayer("CB","DB",null,null,2); lcb = team.GetPlayer("CB","DB",null,null,4); db1 = team.GetPlayer("CB","DB",null,null,5); db2 = team.GetPlayer("CB","DB",null,null,6); break; case 1: rcb = team.GetPlayer("CB","DB",null,null,1); fs = team.GetPlayer("CB","DB",null,null,3); ss = team.GetPlayer("S","SS","FS", null,1); lcb = team.GetPlayer("CB","DB",null,null,2); db1 = team.GetPlayer("CB","DB",null,null,4); db2 = team.GetPlayer("CB","DB",null,null,5); break; case 2: rcb = team.GetPlayer("CB","DB",null,null,1); fs = team.GetPlayer("S","SS","FS", null,2); ss = team.GetPlayer("S","SS","FS", null,1); lcb = team.GetPlayer("CB","DB",null,null,2); db1 = team.GetPlayer("CB","DB",null,null,3); db2 = team.GetPlayer("CB","DB",null,null,4); break; case 3: rcb = team.GetPlayer("CB","DB",null,null,1); fs = team.GetPlayer("S","SS","FS", null,2); ss = team.GetPlayer("S","SS","FS", null,1); lcb = team.GetPlayer("CB","DB",null,null,2); db1 = team.GetPlayer("S","SS","FS",null,3); db2 = team.GetPlayer("CB","DB",null,null,3); break; } if(ss.position == "CB"&& rcb.position == "DB"){ Player tmp = ss; ss = rcb; ss=tmp; } if(ss.position == "CB"&& lcb.position == "DB"){ Player tmp = ss; ss = lcb; ss=tmp; } if(fs.position == "CB"&& lcb.position == "DB"){ Player tmp = fs; fs = lcb; fs=tmp; } if(fs.position == "CB"&& rcb.position == "DB"){ Player tmp = fs; fs = lcb; fs=tmp; } string ret = string.Format( "{0}{1}{2}{3}{4}{5}{6}{7}{8}{9}{10}", GetPlayerString(re,"RE"), GetPlayerString(nt,"NT"), GetPlayerString(le,"LE"), GetPlayerString(rolb,"ROLB"), GetPlayerString(rilb,"RILB"), GetPlayerString(lilb,"LILB"), GetPlayerString(lolb,"LOLB"), GetPlayerString(rcb,"RCB"), GetPlayerString(lcb,"LCB"), GetPlayerString(fs,"FS"), GetPlayerString(ss,"SS")); if( MainClass.AutoCorrectDefenseSimData ) { ret = AdjustSimPassRush( re.sacks, nt.sacks, le.sacks, rolb.sacks, rilb.sacks, lilb.sacks, lolb.sacks, ret).Trim()+"\n"; ret = AdjustSimPassDefense( rolb.ints, rilb.ints, lilb.ints, lolb.ints, rcb.ints, lcb.ints, fs.ints, ss.ints, ret ).Trim()+"\n"; } if( MainClass.GenerateForSNES ) { string db1Str = GetPlayerString(db1,"DB1"); string db2Str = GetPlayerString(db2,"DB2"); int index = db1Str.IndexOf("["); if( index > -2 ) db1Str = db1Str.Substring(0, index); index = db2Str.IndexOf("["); if( index > -2 ) db2Str = db2Str.Substring(0, index); ret += db1Str + "\n"; ret += db2Str + "\n"; } return ret; }
public string GetOLineString(Team team) { Player lt,lg,c,rg,rt; int t_count = team.CountPositions("T"); int c_count = team.CountPositions("C"); int g_count = team.CountPositions("G"); if(t_count < 2|| g_count < 2|| c_count < 1) { lt = team.GetPlayer("T","G","C",null,1); rt = team.GetPlayer("T","G","C",null,4); lg = team.GetPlayer("T","G","C",null,3); rg = team.GetPlayer("T","G","C",null,5); c = team.GetPlayer("T","G","C",null,2); } else { lt = team.GetPlayer("T",null,null,null,1); rt = team.GetPlayer("T",null,null,null,2); lg = team.GetPlayer("G",null,null,null,2); rg = team.GetPlayer("G",null,null,null,1); c = team.GetPlayer("C",null,null,null,1); } int max, min; max= min=0; if(team.offenseRank < 5){ min = 0; max = 15; } else if(team.offenseRank < 10){ min = 10; max = 25; } else if( team.offenseRank < 15){ min = 20; max = 35; } else if(team.offenseRank < 20){ min = 30; max = 45; } else if(team.offenseRank < 28){ min = 40; max = 5*28;// TSBData.OLmen.Length; } int cd,ltd,rtd,lgd,rgd; /*cd = r.Next(min,max); ltd = r.Next(min,max); rtd = r.Next(min,max); rgd = r.Next(min,max); lgd = r.Next(min,max);*/ cd = min + (((c.fname.Length + c.lname.Length ) * 3 ) % 15 ); ltd = min + (((lt.fname.Length + lt.lname.Length) * 3 ) % 15 ); rtd = min + (((rt.fname.Length + rt.lname.Length) * 3 ) % 15 ); rgd = min + (((rg.fname.Length + rg.lname.Length) * 3 ) % 15 ); lgd = min + (((lg.fname.Length + lg.lname.Length) * 3 ) % 15 ); string ret = string.Format( "{0}{1}{2}{3}{4}", GetOLPlayerString(c,"C",cd), GetOLPlayerString(lg,"LG",lgd), GetOLPlayerString(rg,"RG",rgd), GetOLPlayerString(lt,"LT",ltd), GetOLPlayerString(rt,"RT",rtd) ); return ret; }
public Season(string configFileName) { if(File.Exists(configFileName)) { Init(); string[] lines = InputReader.GetLines(configFileName); string line,teamFileName =""; Team team_t; Regex team = new Regex("([0-9]+)\\s+([49a-z]+)"); Regex teamSub = new Regex("([49a-z]+)\\s*=\\s*([0-9]+)\\s+([49a-z]+)"); Regex teamFileSub = new Regex("([49a-z]+)\\s*=\\s*([0-9a-z\\\\ \\.\\)\\(:_]+)"); Regex schedule = new Regex("schedule(\\s*)=(\\s*)([0-9]+)"); Match teamMatch, scheduleMatch, subMatch, teamFileMatch; for(int i = 0; i < lines.Length; i++) { line = lines[i].ToLower().Trim(); teamMatch = team.Match(line); scheduleMatch = schedule.Match(line); subMatch = teamSub.Match(line); teamFileMatch = teamFileSub.Match(line); if(line.StartsWith("#") || line == "") { // do nothing } else if(scheduleMatch != Match.Empty) { this.year = Int32.Parse( scheduleMatch.Groups[3].ToString()); } else if(subMatch != Match.Empty) { // t_loc, sub_year, t_sub // rams = 1985 bears string t_loc = subMatch.Groups[1].ToString(); string sub_year = subMatch.Groups[2].ToString(); string t_sub = subMatch.Groups[3].ToString(); teamFileName = string.Format("{0}{1}\\{2}.txt",baseDir,sub_year,t_sub); team_t = new Team(teamFileName); team_t.teamName = t_loc; teams.Add(team_t); } else if( teamFileMatch != Match.Empty ) { // NEW! string t_loc = teamFileMatch.Groups[1].Value; teamFileName = teamFileMatch.Groups[2].Value; if( GetTeam(t_loc) != null ) { team_t = new Team(teamFileName); team_t.teamName = t_loc; teams.Add(team_t); } } else if( teamMatch != Match.Empty) { string y = teamMatch.Groups[1].ToString(); string t = teamMatch.Groups[2].ToString(); //t = GetTeamName(t); teamFileName = string.Format("{0}{1}\\{2}.txt",baseDir,y,t); team_t = new Team(teamFileName); teams.Add(team_t); } } } else { MainClass.AddError(string.Format( "File '{0}' does not exist.\n", configFileName)); } }
/// <summary> /// Returns an array of 2 strings. /// ret[0] = the offensive string. /// ret[1] = the KR_PR string. /// </summary> /// <param name="team"></param> /// <returns></returns> public string[] GetOffensiveSkillPlayerString(Team team) { Player qb1,qb2,rb1,rb2,rb3,rb4,wr1,wr2,wr3,wr4,te1,te2=null; rb1=rb2=rb3=rb4=null; int fb_count = team.CountPositions("FB"); if(fb_count > 2) fb_count =2; qb1 = team.GetQBPlayer(1); qb2 = team.GetQBPlayer(2); if(qb2.ranking < qb1.ranking && qb1.passingYards > qb2.passingYards) { qb2.ranking = qb1.ranking + 5; } if(qb2 == null) rb1=null; rb1 = team.GetPlayer("RB","HB",null,null,1); switch(fb_count) { case 0: rb2 = team.GetPlayer("RB","HB",null,null,2); rb3 = team.GetPlayer("RB","HB",null,null,3); rb4 = team.GetPlayer("RB","HB",null,null,4); break; case 1: rb2 = team.GetPlayer("FB",null,null,null,1); rb3 = team.GetPlayer("RB","HB",null,null,2); rb4 = team.GetPlayer("RB","HB",null,null,3); break; case 2: rb2 = team.GetPlayer("FB",null,null,null,1); rb3 = team.GetPlayer("RB","HB",null,null,2); rb4 = team.GetPlayer("FB",null,null,null,2); break; } int wr_count = 1; wr1 = team.GetPlayer("WR",null,null,null,wr_count++); wr2 = team.GetPlayer("WR",null,null,null,wr_count++); wr3 = team.GetPlayer("WR",null,null,null,wr_count++); wr4 = team.GetPlayer("WR",null,null,null,wr_count++); te1 = team.GetPlayer("TE",null,null,null,1); te2= team.GetPlayer("TE",null,null,null,2); //Take care of run+ shoot teams if(rb2.lname.ToLower() == "nobody"){ rb2 = team.GetPlayer("WR",null,null,null,wr_count++); rb3 = team.GetPlayer("WR",null,null,null,wr_count++); rb4 = team.GetPlayer("WR",null,null,null,wr_count++); } else if(rb3.lname.ToLower() == "nobody"){ rb3 = team.GetPlayer("WR",null,null,null,wr_count++); rb4 = team.GetPlayer("WR",null,null,null,wr_count++); } else if(rb4.lname.ToLower() == "nobody"){ rb4 = team.GetPlayer("WR",null,null,null,wr_count++); } // take care of team with no or few tightends if(te1.lname.ToLower() == "nobody"){ te1 = team.GetPlayer("WR",null,null,null,wr_count++); te2 = team.GetPlayer("WR",null,null,null,wr_count++); } else if(te2.lname.ToLower() == "nobody"){ te2 = team.GetPlayer("WR",null,null,null,wr_count++); } // make sure the guy with the most Rush yards starts at RB if( rb1.rushYards < rb3.rushYards ) { // swap players Player tmp; tmp = rb1; rb1 = rb3; rb3 = tmp; } Player returnMan = team.GetTopReturnMan(); if( returnMan!= null && returnMan.kickRetYards + returnMan.puntRetYards > 500 ) { if( returnMan != rb1 && returnMan != rb2 && returnMan != rb3 && returnMan != rb4 && returnMan != wr1 && returnMan != wr2 && returnMan != wr3 && returnMan != wr4 && returnMan != te1 && returnMan != te2 ) { if(wr4.recYards+ wr4.rushYards < rb4.rushYards+rb4.recYards) wr4 = returnMan; else rb4=returnMan; } } string ret = //string.Format( //"{0}(1}{2}{3}{4}{5}{6}{7}{8}{9}{10}{11}", GetPlayerString(qb1,"QB1")+ GetPlayerString(qb2,"QB2")+ GetPlayerString(rb1,"RB1")+ GetPlayerString(rb2,"RB2")+ GetPlayerString(rb3,"RB3")+ GetPlayerString(rb4,"RB4")+ GetPlayerString(wr1,"WR1")+ GetPlayerString(wr2,"WR2")+ GetPlayerString(wr3,"WR3")+ GetPlayerString(wr4,"WR4")+ GetPlayerString(te1,"TE1")+ GetPlayerString(te2,"TE2"); string KR_PR = getKR_PR(rb1,rb2,rb3,rb4,wr1,wr2,wr3,wr4,te1,te2); string[] retArray = new string[2]; retArray[0] = ret; retArray[1] = KR_PR; return retArray; //return KR_PR +"\r\n"+ ret ; }
public virtual string GetTeamString(Team team) { string teamName = team.teamName.ToLower(); bool stop = false; switch(teamName) { case "titans": teamName = "oilers"; break; case "ravens": bool browns = false; Team t; for(int i = 0; i < teams.Count; i++) { t = (Team)teams[i]; if(t.teamName.ToLower() == "browns") browns = true; } if(!browns) teamName = "browns"; else stop = true; break; case "panthers": case "jaguars": case "texans": stop = true; break; } if(!stop) { StringBuilder sb = new StringBuilder(40*100); string simData = GetTeamSimData(team); sb.Append(string.Format("TEAM={0} SimData={1}\r\n",teamName,simData)); string [] offense_st = GetOffensiveSkillPlayerString(team); sb.Append(offense_st[0]); sb.Append(GetOLineString(team)); sb.Append(GetDefenseString(team)); sb.Append(GetKickerPunterString(team)); sb.Append(offense_st[1]); sb.Append("\r\n"); return sb.ToString(); } return "\r\n"; }
private void SetTeamName( Team t ) { switch(t.teamName ) { case "Texans": if( t.Year < 2000 ) t.teamName = "Chiefs"; break; case "Titans": if( year < 1968 ) t.teamName = "Jets"; else if( t.Year > 1998 ) t.teamName = "Oilers"; break; case "Ravens": if( year < 1999) t.teamName = "Browns"; break; } }