Hallo Liste
Ich probier gerade ein W�rfelspiel, dass 10.000 heisst, zu programmieren
aber leider sch*#%&t die Webanwendung immer nach 3 Spielz�gen ab.
Im Ereignissportokoll werde ich dann darauf hingewiesen das die
Anwendung �ber 140 MB Arbeitsspeicher verwendet.
Hat irgendjemand ne Idee was ich verbessern kann? Eigentlich sind das
doch nur ein paar For-Schleifen...
Daniel
//MEIN CODE:
using System;
using System.Web;
namespace Games
{
public class ZehnTausend
{
public void Build10K()
{
int wurfelCount = 6;
int[] wuerfel;
int[] pasche;
int Runde = 0;
int Wurf = 0;
int Total = 0;
if(System.Web.HttpContext.Current.Request["w"]!=null)
{
Wurf =
(System.Int32.Parse(System.Web.HttpContext.Current.Request["w"]));
}
Wurf = (Wurf+1);
if(System.Web.HttpContext.Current.Request["count"]!=null)
{
char[] chSplit = {','};
string[] arrCount =
System.Web.HttpContext.Current.Request["count"].ToString().Split(chSplit
);
for(int c = 0; c<arrCount.Length; c++)
{
Runde =
(Runde+System.Int32.Parse(arrCount[c]));
}
}
if(System.Web.HttpContext.Current.Request["total"]!=null)
{
Total =
System.Int32.Parse(System.Web.HttpContext.Current.Request["total"]);
}
if(System.Web.HttpContext.Current.Request["save"]!=null)
{
Total = (Total + Runde);
Runde = 0;
}
wuerfel = new int[6];
pasche = new int[7];
Random R = new Random();
for(int i = 1; i < 6; i++)
{
wuerfel[i] = R.Next(1,6);
pasche[wuerfel[i]] = (pasche[wuerfel[i]]+1);
}
Array.Sort(wuerfel);
System.Web.HttpContext.Current.Response.Write("<table
border=\"1\">");
System.Web.HttpContext.Current.Response.Write("<tr><td
colspan=\"5\">Punkte (Gesamt): " + Total + "<input type=\"hidden\"
name=\"total\" value=\"" + Total + "\"></td></tr>");
System.Web.HttpContext.Current.Response.Write("<tr><td
colspan=\"5\">Punkte (Runde "+Wurf+"): " + Runde + "<input
type=\"hidden\" name=\"count\" value=\"" + Runde + "\"><input
type=\"hidden\" name=\"w\" value=\"" + Wurf + "\"></td></tr><tr>");
for(int y = 1; y < 6; y++)
{
System.Web.HttpContext.Current.Response.Write("<td>");
//Wenn geworfen ...
if(y<wurfelCount)
{
System.Web.HttpContext.Current.Response.Write("<img
src=\"images/"+wuerfel[y]+".gif\">");
}
else
{
System.Web.HttpContext.Current.Response.Write(" ");
}
System.Web.HttpContext.Current.Response.Write("</td>");
}
System.Web.HttpContext.Current.Response.Write("</tr><tr>");
bool Pash = false;
int CCount = 0;
int WeiterMit = 0;
for(int y = 1; y < 6; y++)
{
//Wenn geworfen ...
if(y<wurfelCount)
{
Pash = false;
if(pasche[wuerfel[y]]>=3)
{
Pash = true;
System.Web.HttpContext.Current.Response.Write("<td align=\"center\"
colspan=\"" + pasche[wuerfel[y]] + "\">");
}
else
{
System.Web.HttpContext.Current.Response.Write("<td align=\"center\">");
}
CCount = 0;
if(Pash==true)
{
CCount = wuerfel[y];
if(wuerfel[y]==1)
{
for(int x = 1; x<pasche[wuerfel[y]]; x++)
{
if(x==1)
{
CCount = System.Int32.Parse(CCount +
"000");
}
else
{
CCount = (CCount*2);
}
}
}
else
{
for(int x = 1; x<pasche[wuerfel[y]]; x++)
{
if(x==1)
{
CCount = System.Int32.Parse(CCount +
"00");
}
else
{
CCount = (CCount*2);
}
}
}
y = pasche[wuerfel[y]];
}
else
{
if(wuerfel[y]==1)
{
CCount = 100;
}
if(wuerfel[y]==5)
{
CCount = 50;
}
}
if(CCount>0)
{
System.Web.HttpContext.Current.Response.Write("<input type=\"checkbox\"
name=\"count\" value=\"" + CCount + "\" checked>" + CCount);
WeiterMit = (WeiterMit+1);
}
System.Web.HttpContext.Current.Response.Write(" </td>");
}
else
{
System.Web.HttpContext.Current.Response.Write(" ");
}
}
System.Web.HttpContext.Current.Response.Write("</tr><tr><td
colspan=\"5\">");
if(WeiterMit>0)
{
if(Runde>350)
{
System.Web.HttpContext.Current.Response.Write("<input type=\"submit\"
name=\"save\" value=\"Aufschreiben\">");
}
System.Web.HttpContext.Current.Response.Write("<input name=\"goon\"
type=\"submit\" value=\"Weiter\">");
}
else
{
System.Web.HttpContext.Current.Response.Write("<input type=\"submit\"
value=\"W�rfel abgeben ...\">");
}
System.Web.HttpContext.Current.Response.Write("</td></tr></table>");
}
}
}
| [aspdedotnet] als [email protected] subscribed
| http://www.dotnetgerman.com/archiv/aspdedotnet/ = Listenarchiv
| Sie k�nnen sich unter folgender URL an- und abmelden:
| http://www.dotnetgerman.com/listen/aspDEdotnet.asp