Re: Now I Know Why I'm Having Trouble With Objects

  • From: Jared Wright <wright.jaredm@xxxxxxxxx>
  • To: programmingblind@xxxxxxxxxxxxx
  • Date: Tue, 12 Apr 2011 18:08:08 -0400

So I wrote out this rough little OOP outline of how I'd model a chess game to send with piece and square objects and a board object containing collections of them, then read this and thought, "Oh, yeah. That's why Sina's smarter than me." You'd need to have twelve possible values though I think to distinguish the different color pieces and you'd have to handle mutating pawns that make it to the last row.

On 4/12/2011 5:39 PM, Sina Bahram wrote:
I wouldn’t necessarily model the pieces at all.

Just treat the chess game as a state representation problem.

The board represents the state of the game

So, if you have an 8x8 array with 6 possible values at each slot, then
you can represent any chess game in existence.

You can make the pieces an enum, then simply have a rules class that has
static methods to validate the board upon moves being queried, such as

Rules.isValidMove(3, 5, Pieces.KNIGHT)

Or whatever

Take care,

Sina

*From:*programmingblind-bounce@xxxxxxxxxxxxx
[mailto:programmingblind-bounce@xxxxxxxxxxxxx] *On Behalf Of *Homme, James
*Sent:* Tuesday, April 12, 2011 3:27 PM
*To:* programmingblind@xxxxxxxxxxxxx
*Subject:* RE: Now I Know Why I'm Having Trouble With Objects

Hi,

If it's OK, I'd like to take this a little further. I was thinking about
my little chess move validation project. I thought I would sit down and
try to write out a little plan, because my book says that the nouns
become objects, but I started to get confused when I asked myself this
question. Do the pieces move, do the squares on the board somehow get
pieces, or does some controller in the sky move the pieces? In the real
world, the controller would be the player who is moving the pieces. The
pieces can't move them selves, and all the board can do is sit there and
have pieces on its squares. The rules would be another object, would
they not? Oh my head.

Jim

Jim Homme,

Usability Services,

Phone: 412-544-1810. Skype: jim.homme. NonVisualDevelopment.org: Blind
people can drive computers <http://www.nonvisualdevelopment.org/>.
Demonstration GUI Programs: You can program GUI's while blind.
<http://www.fruitbasketdemos.org/>

*From:*programmingblind-bounce@xxxxxxxxxxxxx
[mailto:programmingblind-bounce@xxxxxxxxxxxxx] *On Behalf Of *Homme, James
*Sent:* Tuesday, April 12, 2011 3:20 PM
*To:* programmingblind@xxxxxxxxxxxxx
*Subject:* Now I Know Why I'm Having Trouble With Objects

Hi,

I found this humorous.

Understanding the Parts of VBA “Speech”

If you were going to play soccer using BASIC, the instruction to kick a
ball would look something like

“Kick the Ball”

Hey—this is how we talk! It makes sense. You have a verb (kick) and then
a noun (the ball). In the BASIC code in the preceding section, you have
a verb

(print) and a noun (an asterisk). Life is good.

Here is the problem. VBA doesn’t work like this. No object-oriented
language works like this. In an object-oriented language, the objects
(the nouns) are

most important (hence, the name: object oriented). If you are going to
play soccer with VBA, the basic structure would be:

Ball.Kick

You have a noun—the ball. It comes first. In VBA, this is an object

. Then you have the verb—to kick. It comes next. In VBA, this is a method.

The basic structure of VBA is a bunch of lines of code where you have

Object.Method

Sorry, this is not English. If you took a romance language in high
school, you will remember that they used a “noun adjective” construct,
but I don’t know

anyone who speaks in “noun verb” when telling someone to do something.
Do you talk like this?

Water.Drink

Food.Eat

Girl.Kiss

Of course not. That is why VBA is so confusing to someone who previously
stepped foot in a procedural programming class.

Let’s carry the analogy on a bit. Imagine you walk onto a grassy field
and there are five balls in front of you. There is a soccer ball, a
basketball, a

baseball, a bowling ball, and a tennis ball. You want to instruct the
kid on your soccer team to

Kick the soccer ball

If you tell him kick the ball (or ball.kick

), you really aren’t sure which one he will kick. Maybe he will kick the
one closest to him. This could be a real problem if he is standing in
front of

the bowling ball.

Jim

Jim Homme,

Usability Services,

Phone: 412-544-1810. Skype: jim.homme. NonVisualDevelopment.org: Blind
people can drive computers <http://www.nonvisualdevelopment.org/>.
Demonstration GUI Programs: You can program GUI's while blind.
<http://www.fruitbasketdemos.org/>

------------------------------------------------------------------------

This e-mail and any attachments to it are confidential and are intended
solely for use of the individual or entity to whom they are addressed.
If you have received this e-mail in error, please notify the sender
immediately and then delete it. If you are not the intended recipient,
you must not keep, use, disclose, copy or distribute this e-mail without
the author's prior permission. The views expressed in this e-mail
message do not necessarily represent the views of Highmark Inc., its
subsidiaries, or affiliates.


__________
View the list's information and change your settings at //www.freelists.org/list/programmingblind

Other related posts: