עבור לתוכן

עזרה בפרויקט שאני מכין ב JAVA פרטים בפנים

Featured Replies

פורסם

אני עושה את המשחק Haxxagon כפרויקט סיום של י"ג תוכנה.

בעיקרון בניתי מחלקה בשם Hexagon שהיא מכילה את הערכים של כלל משבצת.

כדי לאתר מישבצת יצרת Vector <Vector<Hexagon>> tree ככה שכל עמודה של משבצות יהיה וקטור שמייצג ושומר אותה

ולכל הוקטורים יהיה אחד שישמור את כולם במרוכז...

public void paintComponent(Graphics g)
{
super.paintComponent(g);
lenghtOfSide=calculateLength();
h=(int)(lenghtOfSide*0.86);
d=(int)(lenghtOfSide*0.5);
calcuAlignPoint();
startPoint=new Point( 0+alignPoint.x, getHeight()-h*5-alignPoint.y);

//first hex
Vector<Hexagon> vec=new Vector<Hexagon>();
hex.calcDimension(lenghtOfSide, d, h, startPoint.x,startPoint.y);
vec.addElement(hex);
vec.get(0).drawHex(g);

Hexagon tempHex=new Hexagon();
tempHex.calcDimension(lenghtOfSide, d, h, startPoint.x,startPoint.y);
treeWidth.x=tempHex.getX()[0];
//line above the first

for (int i=1;i<5;i++)
{
startPoint.y-=h*2;
hex.calcDimension(lenghtOfSide, d, h, startPoint.x,startPoint.y);
vec.addElement(hex);
vec.get(i).drawHex(g);
}

//add to the tree the first column

tree=new Vector<Vector<Hexagon>>();
tree.addElement(vec);

vec=new Vector<Hexagon>();

// start a new column

startPoint.x=tempHex.getX()[4];
startPoint.y=tempHex.getY()[4];

tempHex.calcDimension(lenghtOfSide, d, h, startPoint.x,startPoint.y);
for (int i=0;i<6;i++)
{
hex.calcDimension(lenghtOfSide, d, h, startPoint.x,startPoint.y);
vec.addElement(hex);
vec.get(i).drawHex(g);
startPoint.y-=h*2;
}
tree.addElement(vec);
vec=new Vector<Hexagon>();

// start a new column

startPoint.x=tempHex.getX()[4];
startPoint.y=tempHex.getY()[4];
tempHex.calcDimension(lenghtOfSide, d, h, startPoint.x,startPoint.y);
for (int i=0;i<7;i++)
{
hex.calcDimension(lenghtOfSide, d, h, startPoint.x,startPoint.y);
hex.drawHex(g);
startPoint.y-=h*2;
}
tree.addElement(vec);
vec=new Vector<Hexagon>();

// start a new column

startPoint.x=tempHex.getX()[4];
startPoint.y=tempHex.getY()[4];
tempHex.calcDimension(lenghtOfSide, d, h, startPoint.x,startPoint.y);
for (int i=0;i<8;i++)
{
hex.calcDimension(lenghtOfSide, d, h, startPoint.x,startPoint.y);
vec.addElement(hex);
vec.get(i).drawHex(g);
startPoint.y-=h*2;
}
tree.addElement(vec);
vec=new Vector<Hexagon>();

// start a new column

startPoint.x=tempHex.getX()[4];
startPoint.y=tempHex.getY()[4];
tempHex.calcDimension(lenghtOfSide, d, h, startPoint.x,startPoint.y);
treeHeight.x=tempHex.getY()[5];
for (int i=0;i<9;i++)
{
hex.calcDimension(lenghtOfSide, d, h, startPoint.x,startPoint.y);
vec.addElement(hex);
vec.get(i).drawHex(g);
startPoint.y-=h*2;
}
treeHeight.y=hex.getY()[1];
tree.addElement(vec);
vec=new Vector<Hexagon>();

// start a new column

startPoint.x=tempHex.getX()[2];
startPoint.y=tempHex.getY()[2];
tempHex.calcDimension(lenghtOfSide, d, h, startPoint.x,startPoint.y);
for (int i=0;i<8;i++)
{
hex.calcDimension(lenghtOfSide, d, h, startPoint.x,startPoint.y);
vec.addElement(hex);
vec.get(i).drawHex(g);
startPoint.y-=h*2;
}
tree.addElement(vec);
vec=new Vector<Hexagon>();

// start a new column

startPoint.x=tempHex.getX()[2];
startPoint.y=tempHex.getY()[2];
tempHex.calcDimension(lenghtOfSide, d, h, startPoint.x,startPoint.y);
for (int i=0;i<7;i++)
{
hex.calcDimension(lenghtOfSide, d, h, startPoint.x,startPoint.y);
vec.addElement(hex);
vec.get(i).drawHex(g);
startPoint.y-=h*2;
}
tree.addElement(vec);
vec=new Vector<Hexagon>();

// start a new column

startPoint.x=tempHex.getX()[2];
startPoint.y=tempHex.getY()[2];
tempHex.calcDimension(lenghtOfSide, d, h, startPoint.x,startPoint.y);
for (int i=0;i<6;i++)
{
hex.calcDimension(lenghtOfSide, d, h, startPoint.x,startPoint.y);
vec.addElement(hex);
vec.get(i).drawHex(g);
startPoint.y-=h*2;
}
tree.addElement(vec);
vec=new Vector<Hexagon>();

// start a new column

startPoint.x=tempHex.getX()[2];
startPoint.y=tempHex.getY()[2];
tempHex.calcDimension(lenghtOfSide, d, h, startPoint.x,startPoint.y);
for (int i=0;i<5;i++)
{
hex.calcDimension(lenghtOfSide, d, h, startPoint.x,startPoint.y);
vec.addElement(hex);
vec.get(i).drawHex(g);
startPoint.y-=h*2;
}
treeWidth.y=hex.getX()[3];
tree.addElement(vec);
}

זה PAINT COMPONENT של הפנל...

בא אני גם יוצר את הוקטורים כדי לעשות את זה דינאמי עם פאנל

הבעיה היא שכאני מכין מתודת חיפוש (למצא את המשושה שעל לחצתי), כל הוקטורים הכל נקודה נותנים לי את אותם הנקודות

יש למישהוא פיתרון או דרך יעילה יותר לשמור את הנתונים??

בתודה מראש רז

נ.ב אני צירפתי את הפרוייקט כולו

[attachment deleted by admin]

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים