Advertisement

12.01.2008 at 04:31PM PST, ID: 23948515
[x]
Attachment Details
[x]
The Solution Rating System

With so many solutions, how can you tell which solutions are most likely to help you and which ones are not? To provide you with a tool to use, we rate our solutions based on various elements that most accurately determine if a solution is a quality solution. To explain what factors affect the solution rating, here are the elements we take into consideration when formulating our solution rating.

  • The Grade of the Solution
  • The Zone Rank of the Expert Providing the Solution
  • The Number of Author and Expert Comments
  • The Number of Experts Contributing
  • The Feedback of the Community

Your Input Matters
Because of the way the system is set up, the most important variable in this equation is you. As a member of Experts Exchange, you are able to cast your vote on the quality of the solutions in regard to how complete, accurate, helpful and easy to understand each solution is. When you provide your feedback, each rating is adjusted accordingly. So, if you see a solution that has a poor rating that you think is a good solution, let us know by rating it. As you do, the rating will be adjusted and will become more accurate for other members of our site.

If you have any suggestions that you would like to make for our rating system, please ask a question in the Suggestions Zone of Community Support.

Thank you!

8.4

Java Chess

Asked by Gohdonfett in Game Programming User Interface, Java Programming Language

Tags: ,

Ok so i am trying to make a simple chess game using java and these are the instructions i got from my proffessor: Purpose:

The purpose of this project is to demonstrate that you can use the object oriented principles of polymorphism, inheritance, and information hiding.  Also I want you to demonstrate that you can use Java collections.  

Assignment:

I want you to write a program to show how chess pieces move.  Start with an abstract super class Chess Piece and inherit all the normal chess pieces from it.  Each piece should then be able to calculate where exactly it can move on the board.  Remember you need to worry about edges and other pieces.

Your program should be able to set up a game from the beginning and to load a board with pieces from the middle of a game.  I should be able to choose a piece and see all the possible moves that can be made with that piece.  Once I choose a move, you should show me all the pieces that can take that piece.  You should use a JPanel user interface.  You do not need to worry about making the chess board have black and white squares (you can make them all one color) and you can use letters for the chess pieces if you like.  You may also use JOptionPane input dialogs for user input.

I want you to use at least two different collections in this program.  Start with inheriting pieces, finding moves when alone on the board, and then finding moves when other pieces are on the board.  Do not put a lot of code in main.  Main should only set up any graphics you decide to use and call one of your objects.

ok now i think i know what im doing but there could be an easier way. i need to know how to move my chess piece with the mouse listener. also i want to display the possible moves a piece can make when i click on it. if anyone has any suggestions i would appreciate it. source code would be especially helpful. thank you.Start Free Trial
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
package package1;
 
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Paint;
 
import javax.swing.JPanel;
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
 
public class Board extends JPanel
{
	
	
	//private Image blkPawnImage = Toolkit.getDefaultToolkit().getImage("black_pawn.gif");
	//private Pawn blackPawns[]= new Pawn[8];
	
	private Pawn p1= new Pawn (0,50, true);
	
	private Square gameBoard[][] = new Square[8][8];
	
	
	
	public void paint(Graphics g)
	{
		
		MouseHandler handler = new MouseHandler();
		for (int i=0; i<8; i++)
		{
			for (int j=0; j<8; j++)
			{
				gameBoard[i][j] = new Square(i*50,j*50,false);
				gameBoard[i][j].drawSquare(g);
			}
		}
		
		
		p1.drawPiece(g);
		
		this.addMouseListener(handler);
		
		//p1.addActionListener(handler);
		//p1.Move(g);
		//super.paint(g);
		
		//g.setColor(Color.RED);
		//g.fillRect(0,0, 50, 50);
		
		//g.fillRect(50,0, 50, 50);
		
		//g.drawImage(blkPawnImage, 0, 0, 50, 50,this);
		
		
		
		//g.setColor(Color.GREEN);
		//g.drawImage(blkPawnImage, 0, 0, 50, 50,this);
		//g.fillRect(p1.getXPosition(),p1.getYPosition(), 40,40 );
	
	}
	
		public class MouseHandler extends MouseAdapter
		{
			public void mouseClicked(MouseEvent event) 
			{
				int xPos = event.getX();
				int yPos = event.getY();
				//Graphics g;
				p1.Move();
				repaint();
			
				System.out.println("help me");
				
			
			
			
				//statusBar.setText(String.format("clicked", xpos, ypos);
			
			}
		}
 
	
}
package package1;
 
import java.awt.Color;
import javax.swing.JFrame;
 
public class Chess 
{
	
	public static void main(String args[])
	{
		
		//ChessGame chessGame = new ChessGame();
		//chessGame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		//chessGame.setSize(500,500);
		//chessGame.setVisible(true);
		
		JFrame frame = new JFrame("Chess");
		Board board = new Board();
		
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		frame.setSize(550,600);
		frame.setVisible(true);
		frame.add(board);
		
		//Pawn p1= new Pawn (0,0,"black");
		
		//p1.setBackground(Color.BLUE);
		
		//board.setBackground(Color.WHITE);
		//board.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
		
		//frame.add(p1);
		
		//JFrame frame2 = new JFrame("Chess");
		//frame2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		//frame2.add(p1);
		//frame2.setSize(550,600);
		//frame2.setVisible(true);
		
	}
	
}
package package1;
 
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;
 
public abstract class ChessPiece   {
	protected Integer xPos;
	protected Integer yPos;
	protected Boolean isBlack;
	
	
	public ChessPiece (Integer xPos, Integer yPos, Boolean isBlack)
	{
		this.xPos = xPos;
		this.yPos = yPos;		
		this.isBlack = isBlack;
	}
	
	public void Move()
	{
		
	}
	
	public Integer getXPos()
	{
		return xPos;
	}
	
	public Integer getYPos()
	{
		return yPos;
	}
	
	public void setPosition(Integer xPos, Integer yPos)
	{
		this.xPos = xPos;
		this.yPos = yPos;
	}
	
	public void drawPiece(Graphics g)
	{
		
	}
	
 
 
}
package package1;
 
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
 
import javax.swing.JFrame;
import javax.swing.JPanel;
 
public class Pawn extends ChessPiece{
	
	private Image blkPawnImage = Toolkit.getDefaultToolkit().getImage("black_pawn.gif");
	private Image whtPawnImage = Toolkit.getDefaultToolkit().getImage("white_pawn.gif");
	
	
	public Pawn(Integer xPos, Integer yPos, Boolean isBlack)
	{
		super(xPos, yPos, isBlack);
	}
	
	public void Move(Graphics g)
	{
		
		g.setColor(Color.GREEN);
		if (isBlack == true)
		{
		g.fillRect(xPos,yPos+50, 50, 50);
		g.fillRect(xPos,yPos+100, 50, 50);
		}
		else
		g.drawImage(whtPawnImage, xPos, yPos, 50,50,null);	
	}
	
	public void drawPiece(Graphics g)
	{
		if (isBlack == true)
		g.drawImage(blkPawnImage, xPos, yPos, 50,50,null);
		else
		g.drawImage(whtPawnImage, xPos, yPos, 50,50,null);	
	}
 
 
 
}
package package1;
 
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
 
public class Square {
	
	private Integer xPos,yPos;
	private Boolean isFilled = false;
	
	public Square (Integer xPos, Integer yPos, Boolean isFilled)
	{
		this.xPos= xPos;
		this.yPos= yPos;
		this.isFilled = isFilled;
	}
	
	public void drawSquare(Graphics g)
	{
		g.setColor(Color.RED);
		g.fillRect(xPos,yPos, 50, 50);
	}
	
	public void setFilled(Boolean isFilled)
	{
		this.isFilled = isFilled;
	}
	
	public Boolean getFilled()
	{
		return isFilled;
	}
 
}
[+][-]12.02.2008 at 07:31PM PST, ID: 23082984

View this solution now by starting your 7-day free trial. Setting up your free trial is quick, easy, and secure. We will return you to this solution, unlocked, when you're done.

 

About this solution

Zones: Game Programming User Interface, Java Programming Language
Tags: java, chess
Sign Up Now!
Solution Provided By: Tavic
Participating Experts: 1
Solution Grade: B
 
 
 
Loading Advertisement...
20081119-EE-VQP-49 - Hierarchy / EE_QW_3_20080625