Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/jerdew5/orbworks.com/forum/includes/bbcode.php on line 472
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 3368: Cannot modify header information - headers already sent by (output started at /includes/bbcode.php:472)
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 3370: Cannot modify header information - headers already sent by (output started at /includes/bbcode.php:472)
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 3371: Cannot modify header information - headers already sent by (output started at /includes/bbcode.php:472)
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 3372: Cannot modify header information - headers already sent by (output started at /includes/bbcode.php:472)
OrbWorks Community Forum • View topic - Creating instance of card and deck

Creating instance of card and deck

Discuss OrbForms Designer and PocketC Architect

Postby sangahm on Sun Jan 28, 2007 7:27 pm

What is the best way to create a Card and Deck object for a card game? I'm stumped with the limitation of multidimensional arrays, and have tried several different ways to do it, none successful. I'm sure it's just my understanding at this point. Can someone see where I'm going wrong and help out?

object Card {
// public interface
int suit; // card suit SPADES thru CLUBS
int value; // value of card from 1 to 13
void init(int theValue, int theSuit);
// private interfaces

}; // end Card object definition

// global card instance
Card card;

// The Deck object handles the complete deck of cards
object Deck {
// public interface
void init();
void shuffle();
// put all the used cards back into the deck
// and shuffle it into a random order

// private methods
};

// global deck instance
Deck deck;

//set up instance of deck
void Deck.init() {
Card deck[52];
int cardCt = 0; //keeps count of how many cards have been created

//set up all of the cards in the deck
for (suit = 0; suit <= 3; suit++)
{
for (value = 1; value <= 13; value++)
{ deck[cardCt] = card(value,suit);
cardCt++;
}
}

When I try and compile, I get an error "cannot call a non-funcptr type" at the line above in Deck.init at deck[cardCt]=card(value,suit)

Any assistance?

sangahm
sangahm
 
Posts: 118
Joined: Mon Jul 04, 2005 3:43 pm
Location: USA

Postby jobie on Sun Jan 28, 2007 11:00 pm

Looks like the line should read:

{ deck[cardCt] = card<b>.init</b>(value,suit);

-John
jobie
 
Posts: 23
Joined: Wed Dec 27, 2006 8:53 pm
Location: USA

Postby jobie on Mon Jan 29, 2007 12:34 am

<blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">quote:<hr height="1" noshade id="quote"><i>Originally posted by jobie</i>
<br />Looks like the line should read:

{ deck[cardCt] = card<b>.init</b>(value,suit);

-John
<hr height="1" noshade id="quote"></font id="quote"></blockquote id="quote">

Follow up to my own reply:

There seems to be some other issues with the code, I should have
looked a little closer before responding.

First of all, the line in question should be:

deck[cardCt].init( value, suit );

You do not need a global Card instance, as far as I can tell.

You should not declare a local variable "deck" and a global variable "deck". I use a Hungarian-style notation for globals, in your case it would be g_Deck for your global deck. That's just a personal preference, but definitely do yourself a favor and make them different.

Aside from this, the object definitions look reasonable.

-John
jobie
 
Posts: 23
Joined: Wed Dec 27, 2006 8:53 pm
Location: USA

Postby sangahm on Mon Jan 29, 2007 1:08 am

You've given me some things to think about. Thanks. Now I'm off to see if I can figure it out.
sangahm
 
Posts: 118
Joined: Mon Jul 04, 2005 3:43 pm
Location: USA

Postby sangahm on Mon Jan 29, 2007 11:23 pm

OK, back for more if you can still help out.

How do I call the method to initialize the deck?
How do I reference an individual card in the deck?

I thought it would be something like this:

deck.init(); //initialize the cards in the deck by putting 52 cards in

// loop through and print out the cards to proof that they are there
for (loopAllCards = 0; loopAllCards <= 51; loopAllCards++)
{ iValue = deck[loopAllCards].value;
iSuit = deck[loopAllCards].suit;
alert("Posn "+loopAllCards+"Suit "+iSuit+" Value "+iValue); //show each card
}

This obviously doesn't work, and it shows that I really don't understand this topic of objects too well. But I'm gonna keep struggling through....
sangahm
 
Posts: 118
Joined: Mon Jul 04, 2005 3:43 pm
Location: USA

Postby sangahm on Tue Jan 30, 2007 1:23 am

Cancel that request.

I reread your comments about global instance and fixed the problem. I think I'm getting it.

Thanks.
sangahm
 
Posts: 118
Joined: Mon Jul 04, 2005 3:43 pm
Location: USA


Return to OrbForms Designer and PocketC Architect

Who is online

Users browsing this forum: No registered users and 3 guests

cron