פורסם 2009 במרץ 2716 שנים אני עושה את המשחק 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]
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.