|
Thread Rules 1. This is not a "do my homework for me" thread. If you have specific questions, ask, but don't post an assignment or homework problem and expect an exact solution. 2. No recruiting for your cockamamie projects (you won't replace facebook with 3 dudes you found on the internet and $20) 3. If you can't articulate why a language is bad, don't start slinging shit about it. Just remember that nothing is worse than making CSS IE6 compatible. 4. Use [code] tags to format code blocks. |
Hey guys I am working on some homework my computer science homework and I can't for the life of me get this to work. I ma supposed to make a program that simulates a card game of some kind. I got most of the other functions working fine I believe but I can't get my moveCard function to work.
here is my current code. + Show Spoiler + # Note: cards are represented as 2-character strings, e.g., # "2C", "9S", "QH", "TD", "AC"
from random import randint, shuffle
class DeckOfCards: def __init__(self): """Initializes a new deck of cards.""" ranks = "23456789TJQKA" suits = "CDHS" self.cards = [r+s for r in ranks for s in suits]
def shuffle(self): """Shuffles the cards into a random order.""" shuffle(self.cards)
def dealCard(self): """Removes the top/last card in the deck & returns it.""" if self.numCards() > 0: return self.cards.pop() else: return ""
def addCard(self, card): """Adds the specified card to the bottom/front of the deck.""" self.cards.insert(0, card) def numCards(self): """Returns the number of cards remaining in the deck.""" return len(self.cards)
def __str__(self): """Returns the string representation of the deck.""" return ' '.join(self.cards)
######### class RowOfCards: def __init__(self): """Initializes an empty row (list) of cards.""" self.cards = []
def addAtEnd(self, card): """Adds the specified card to the end of the row (list).""" self.cards.append(card)
def moveCard(self, card, numSpots): """Moves the specified card numSpots to the left.""" self.cards.index(card) (i for i in list if card == self) print i self.cards.remove(i) self.cards.insert(i - numSpots, card) def numCards(self): """Returns the number of cards in the row (list).""" return len.self.cards def __str__(self): """Returns the string representation of the deck (list).""" return ' '.join(self.cards)
here is all I have so far, from what I have seen and what my classmates say the other functions look fine its just moveCard that is no working.
here is the error message that occurs. + Show Spoiler + Traceback (most recent call last): File "<pyshell#45>", line 1, in <module> row.moveCard('4C', 1) File "C:/Users/pjlaweejay/Desktop/csc/python/cards1.py", line 55, in moveCard (i for i in list if card == self) TypeError: 'type' object is not iterable >>> row.moveCard('4C', '1')
|
I looked at it and I am lost by what type....
|
On December 10 2011 07:43 Son of Gnome wrote:Hey guys I am working on some homework my computer science homework and I can't for the life of me get this to work. I ma supposed to make a program that simulates a card game of some kind. I got most of the other functions working fine I believe but I can't get my moveCard function to work. here is my current code. + Show Spoiler + # Note: cards are represented as 2-character strings, e.g., # "2C", "9S", "QH", "TD", "AC"
from random import randint, shuffle
class DeckOfCards: def __init__(self): """Initializes a new deck of cards.""" ranks = "23456789TJQKA" suits = "CDHS" self.cards = [r+s for r in ranks for s in suits]
def shuffle(self): """Shuffles the cards into a random order.""" shuffle(self.cards)
def dealCard(self): """Removes the top/last card in the deck & returns it.""" if self.numCards() > 0: return self.cards.pop() else: return ""
def addCard(self, card): """Adds the specified card to the bottom/front of the deck.""" self.cards.insert(0, card) def numCards(self): """Returns the number of cards remaining in the deck.""" return len(self.cards)
def __str__(self): """Returns the string representation of the deck.""" return ' '.join(self.cards)
######### class RowOfCards: def __init__(self): """Initializes an empty row (list) of cards.""" self.cards = []
def addAtEnd(self, card): """Adds the specified card to the end of the row (list).""" self.cards.append(card)
def moveCard(self, card, numSpots): """Moves the specified card numSpots to the left.""" self.cards.index(card) (i for i in list if card == self) print i self.cards.remove(i) self.cards.insert(i - numSpots, card) def numCards(self): """Returns the number of cards in the row (list).""" return len.self.cards def __str__(self): """Returns the string representation of the deck (list).""" return ' '.join(self.cards) here is all I have so far, from what I have seen and what my classmates say the other functions look fine its just moveCard that is no working. here is the error message that occurs. + Show Spoiler + Traceback (most recent call last): File "<pyshell#45>", line 1, in <module> row.moveCard('4C', 1) File "C:/Users/pjlaweejay/Desktop/csc/python/cards1.py", line 55, in moveCard (i for i in list if card == self) TypeError: 'type' object is not iterable >>> row.moveCard('4C', '1')
Where do you initialize "i"? I think your problem MIGHT be that you never define 'i', but I can't say with 100% certainty as I've never worked with Python.
If your other classmates say the other functions are good, what do they (or better yet, the proff) say about moveCard?
|
Hi, I'm having difficulty with another program. Basically, I need to write a program that validates credit card numbers. The instructions require the numbers to be provided by user input and stored as long integers. However, since I'm on a 32-bit system, longs can't hold 13-16 digit credit card numbers. I tried to use a double, but on compilation it said "invalid operands for binary operation" for a modulus operation. What can I do?
|
On December 10 2011 11:40 Millitron wrote:Show nested quote +On December 10 2011 07:43 Son of Gnome wrote:Hey guys I am working on some homework my computer science homework and I can't for the life of me get this to work. I ma supposed to make a program that simulates a card game of some kind. I got most of the other functions working fine I believe but I can't get my moveCard function to work. here is my current code. + Show Spoiler + # Note: cards are represented as 2-character strings, e.g., # "2C", "9S", "QH", "TD", "AC"
from random import randint, shuffle
class DeckOfCards: def __init__(self): """Initializes a new deck of cards.""" ranks = "23456789TJQKA" suits = "CDHS" self.cards = [r+s for r in ranks for s in suits]
def shuffle(self): """Shuffles the cards into a random order.""" shuffle(self.cards)
def dealCard(self): """Removes the top/last card in the deck & returns it.""" if self.numCards() > 0: return self.cards.pop() else: return ""
def addCard(self, card): """Adds the specified card to the bottom/front of the deck.""" self.cards.insert(0, card) def numCards(self): """Returns the number of cards remaining in the deck.""" return len(self.cards)
def __str__(self): """Returns the string representation of the deck.""" return ' '.join(self.cards)
######### class RowOfCards: def __init__(self): """Initializes an empty row (list) of cards.""" self.cards = []
def addAtEnd(self, card): """Adds the specified card to the end of the row (list).""" self.cards.append(card)
def moveCard(self, card, numSpots): """Moves the specified card numSpots to the left.""" self.cards.index(card) (i for i in list if card == self) print i self.cards.remove(i) self.cards.insert(i - numSpots, card) def numCards(self): """Returns the number of cards in the row (list).""" return len.self.cards def __str__(self): """Returns the string representation of the deck (list).""" return ' '.join(self.cards) here is all I have so far, from what I have seen and what my classmates say the other functions look fine its just moveCard that is no working. here is the error message that occurs. + Show Spoiler + Traceback (most recent call last): File "<pyshell#45>", line 1, in <module> row.moveCard('4C', 1) File "C:/Users/pjlaweejay/Desktop/csc/python/cards1.py", line 55, in moveCard (i for i in list if card == self) TypeError: 'type' object is not iterable >>> row.moveCard('4C', '1')
Where do you initialize "i"? I think your problem MIGHT be that you never define 'i', but I can't say with 100% certainty as I've never worked with Python. If your other classmates say the other functions are good, what do they (or better yet, the proff) say about moveCard?
Prof isnt here atm and doesnt answer emails over the weekend. moveCard I think I may have figured out, right here. + Show Spoiler + def moveCard(self, card, numSpots): """Moves the specified card numSpots to the left.""" abc = self.cards.index(card) if abc - numSpots >= 0: self.cards.insert(abc-numSpots, card) self.cards.pop(abc+1) My friend says there is an issue with it however, that is that the card doesn'nt get deleted. if four cards are in a list and you move one on top of another, there is still four cards. Not sure how to fix that however.
|
On December 10 2011 12:36 Demonhunter04 wrote: Hi, I'm having difficulty with another program. Basically, I need to write a program that validates credit card numbers. The instructions require the numbers to be provided by user input and stored as long integers. However, since I'm on a 32-bit system, longs can't hold 13-16 digit credit card numbers. I tried to use a double, but on compilation it said "invalid operands for binary operation" for a modulus operation. What can I do? I don't know what language you're working in, but if you're working in Java, perhaps you could read in the numbers as a String and use a combination of substring and parseDouble to store the large number in two separate double variables, that you would validate separately.
(This is probably possible in other languages too, but I'm only in my first year of CS courses so I'm only familiar with Java atm)
|
On December 10 2011 12:46 ClysmiC wrote:Show nested quote +On December 10 2011 12:36 Demonhunter04 wrote: Hi, I'm having difficulty with another program. Basically, I need to write a program that validates credit card numbers. The instructions require the numbers to be provided by user input and stored as long integers. However, since I'm on a 32-bit system, longs can't hold 13-16 digit credit card numbers. I tried to use a double, but on compilation it said "invalid operands for binary operation" for a modulus operation. What can I do? I don't know what language you're working in, but if you're working in Java, perhaps you could read in the numbers as a String and use a combination of substring and parseDouble to store the large number in two separate double variables, that you would validate separately. (This is probably possible in other languages too, but I'm only in my first year of CS courses so I'm only familiar with Java atm)
Sorry I forgot to mention, I'm working in C. I have to use a long integer, and from what I found, longs hold up to 20 digits on 64 bit OSs. Is there any way to test if this program would work on a 64 bit OS without actually having access to one?
|
Got that assignment done thank God lol. Stuck on this one now 
+ Show Spoiler +from cards import DeckOfCards, RowOfCards def skip3(): """Basic framework for playing Skip3 Solitaire.""" print "Welcome to Skip3 Solitaire." deck = DeckOfCards() deck.shuffle() row = RowOfCards()
response = "" while response != "q": print row, "\n" response = raw_input("Action? ") responseWords = response.split() firstLetter = responseWords[0][0].lower() if firstLetter == "d": row.addAtEnd(deck.dealCard()) else print "ERROR" elif firstLetter == "m": row.moveCard(responseWords[1].upper(), 1) elif firstLetter == "s": row.moveCard(responseWords[1].upper(), 3) elif firstLetter == "q": print "Thanks for playing." print DeckOfCards() else: print "Unknown command"
I am trying to make it so if the rules arent fulfilled or the deck is empty the game presents an error message of some kind. I know I need to have the program read something I am just unsure of what and how to go about doing it.
|
An important part of homework is learning how to research your own problems. You'll never learn anything if you just ask for help every time.
|
On December 10 2011 14:00 Craton wrote: An important part of homework is learning how to research your own problems. You'll never learn anything if you just ask for help every time. Seriously.
This isn't the "I have a programming assignment, help me!" thread. If thats all your here for, please kindly leave. Just as TL is against homework threads, we are against mucking up perfectly good threads with all of your homework assignments.
And on top of everything else, you're posting a whitespace-significant language outside of code tags... sigh.
|
I was just asking for help... Sorry if it offended anyone I'm kind of lost when it comes to this, and tend to look to the people of TL for advice sometimes sorry for that I guess....
|
I know this isn't directed at me, but I've been doing tons of research and looking up of things for days. I came here as a last resort.
|
On December 10 2011 14:08 Demonhunter04 wrote: I know this isn't directed at me, but I've been doing tons of research and looking up of things for days. I came here as a last resort. Your posts are fine. Its easy to tell when someone has done their due diligence and when someone hasn't. My problem is with people that write up a simple program, come upon some problem and then immediately hop over to this thread to make someone else solve it for them. *Especially* if said problems are highly specific to a homework assignment and will be of little to no use to anyone else in the future.
As for your issue, you may want to try a 'long long'. I think its really weird to want to store a CC# like that, because although they are all numbers, they aren't really a number per se. Like, you wouldn't ever want to add 2 credit card numbers together, etc. Just like I wouldn't store a phone number as an int, I wouldn't store a CC# that way. But I guess you don't really have much choice in the matter
|
On December 10 2011 14:19 tec27 wrote:Show nested quote +On December 10 2011 14:08 Demonhunter04 wrote: I know this isn't directed at me, but I've been doing tons of research and looking up of things for days. I came here as a last resort. Your posts are fine. Its easy to tell when someone has done their due diligence and when someone hasn't. My problem is with people that write up a simple program, come upon some problem and then immediately hop over to this thread to make someone else solve it for them. *Especially* if said problems are highly specific to a homework assignment and will be of little to no use to anyone else in the future. As for your issue, you may want to try a 'long long'. I think its really weird to want to store a CC# like that, because although they are all numbers, they aren't really a number per se. Like, you wouldn't ever want to add 2 credit card numbers together, etc. Just like I wouldn't store a phone number as an int, I wouldn't store a CC# that way. But I guess you don't really have much choice in the matter 
O_o I did not know you could create long longs. How exactly does that work?
|
On December 10 2011 14:51 Demonhunter04 wrote:Show nested quote +On December 10 2011 14:19 tec27 wrote:On December 10 2011 14:08 Demonhunter04 wrote: I know this isn't directed at me, but I've been doing tons of research and looking up of things for days. I came here as a last resort. Your posts are fine. Its easy to tell when someone has done their due diligence and when someone hasn't. My problem is with people that write up a simple program, come upon some problem and then immediately hop over to this thread to make someone else solve it for them. *Especially* if said problems are highly specific to a homework assignment and will be of little to no use to anyone else in the future. As for your issue, you may want to try a 'long long'. I think its really weird to want to store a CC# like that, because although they are all numbers, they aren't really a number per se. Like, you wouldn't ever want to add 2 credit card numbers together, etc. Just like I wouldn't store a phone number as an int, I wouldn't store a CC# that way. But I guess you don't really have much choice in the matter  O_o I did not know you could create long longs. How exactly does that work? http://docs.freebsd.org/info/gcc/gcc.info.Long_Long.html
Was added to C in C99 I believe. Basically its a type thats guaranteed to be >= 64bit on any compiler. How it gets handled internally depends on the compiler/OS/machine, but that shouldn't matter too much for your purposes.
|
On December 10 2011 15:53 tec27 wrote:Show nested quote +On December 10 2011 14:51 Demonhunter04 wrote:On December 10 2011 14:19 tec27 wrote:On December 10 2011 14:08 Demonhunter04 wrote: I know this isn't directed at me, but I've been doing tons of research and looking up of things for days. I came here as a last resort. Your posts are fine. Its easy to tell when someone has done their due diligence and when someone hasn't. My problem is with people that write up a simple program, come upon some problem and then immediately hop over to this thread to make someone else solve it for them. *Especially* if said problems are highly specific to a homework assignment and will be of little to no use to anyone else in the future. As for your issue, you may want to try a 'long long'. I think its really weird to want to store a CC# like that, because although they are all numbers, they aren't really a number per se. Like, you wouldn't ever want to add 2 credit card numbers together, etc. Just like I wouldn't store a phone number as an int, I wouldn't store a CC# that way. But I guess you don't really have much choice in the matter  O_o I did not know you could create long longs. How exactly does that work? http://docs.freebsd.org/info/gcc/gcc.info.Long_Long.htmlWas added to C in C99 I believe. Basically its a type thats guaranteed to be >= 64bit on any compiler. How it gets handled internally depends on the compiler/OS/machine, but that shouldn't matter too much for your purposes. That's pretty awesome.
Alternatively, you could see if C has an equivalent to Java's BigInteger class. Basically, it lets you make an integer practically as large as you want. I'm sure there IS a limit to how big they can be, but its so insanely high it shouldn't matter. Like, I used a BigInteger to store an enormous factorial, it was something like Factorial(16000). It's so efficient too, that the println() to display the int took longer to refresh than the Factorial function took to calculate.
|
So I'm trying to learn Java (through GWT) but I have a problem with extending classes that I don't understand: + Show Spoiler +public class MainClass implements EntryPoint { // [1] MySubClass test = new MySubClass();
public void onModuleLoad() { // [2] ...Some code... } public void someMethod() { ...Some code... } }
And here's the subclass: + Show Spoiler +public class MySubClass extends MainClass { protected MySubClass() {} }
I need to have MySubClass extending my MainClass to be able to access the methods in MainClass. But if I use extends MainClass and instantiate the object MySubClass test in [1] I get
[ERROR] [ProjectName] - Failed to create an instance of 'com.google.gwt.projectname.client.MainClass' via deferred binding
when running the code. It does work when instantiating the object in [2], but I don't really want that. I don't see what the problem is and Eclipse seems to think everything is fine.
|
On December 12 2011 07:32 nakam wrote:So I'm trying to learn Java (through GWT) but I have a problem with extending classes that I don't understand: + Show Spoiler +public class MainClass implements EntryPoint { // [1] MySubClass test = new MySubClass();
public void onModuleLoad() { // [2] ...Some code... } public void someMethod() { ...Some code... } }
And here's the subclass: + Show Spoiler +public class MySubClass extends MainClass { protected MySubClass() {} }
I need to have MySubClass extending my MainClass to be able to access the methods in MainClass. But if I use extends MainClass and instantiate the object MySubClass test in [1] I get [ERROR] [ProjectName] - Failed to create an instance of 'com.google.gwt.projectname.client.MainClass' via deferred binding when running the code. It does work when instantiating the object in [2], but I don't really want that. I don't see what the problem is and Eclipse seems to think everything is fine. What is throwing the error? is it GWT throwing the error or is Eclipse?
|
On December 12 2011 07:49 Millitron wrote:Show nested quote +On December 12 2011 07:32 nakam wrote:So I'm trying to learn Java (through GWT) but I have a problem with extending classes that I don't understand: + Show Spoiler +public class MainClass implements EntryPoint { // [1] MySubClass test = new MySubClass();
public void onModuleLoad() { // [2] ...Some code... } public void someMethod() { ...Some code... } }
And here's the subclass: + Show Spoiler +public class MySubClass extends MainClass { protected MySubClass() {} }
I need to have MySubClass extending my MainClass to be able to access the methods in MainClass. But if I use extends MainClass and instantiate the object MySubClass test in [1] I get [ERROR] [ProjectName] - Failed to create an instance of 'com.google.gwt.projectname.client.MainClass' via deferred binding when running the code. It does work when instantiating the object in [2], but I don't really want that. I don't see what the problem is and Eclipse seems to think everything is fine. What is throwing the error? is it GWT throwing the error or is Eclipse? That I cannot really answer. I'm running Eclipse in hosted mode and I get the error when I'm loading the page in the browser (error shows up in Eclipse log).
|
On December 12 2011 07:57 nakam wrote:Show nested quote +On December 12 2011 07:49 Millitron wrote:On December 12 2011 07:32 nakam wrote:So I'm trying to learn Java (through GWT) but I have a problem with extending classes that I don't understand: + Show Spoiler +public class MainClass implements EntryPoint { // [1] MySubClass test = new MySubClass();
public void onModuleLoad() { // [2] ...Some code... } public void someMethod() { ...Some code... } }
And here's the subclass: + Show Spoiler +public class MySubClass extends MainClass { protected MySubClass() {} }
I need to have MySubClass extending my MainClass to be able to access the methods in MainClass. But if I use extends MainClass and instantiate the object MySubClass test in [1] I get [ERROR] [ProjectName] - Failed to create an instance of 'com.google.gwt.projectname.client.MainClass' via deferred binding when running the code. It does work when instantiating the object in [2], but I don't really want that. I don't see what the problem is and Eclipse seems to think everything is fine. What is throwing the error? is it GWT throwing the error or is Eclipse? That I cannot really answer. I'm running Eclipse in hosted mode and I get the error when I'm loading the page in the browser (error shows up in Eclipse log). Can you run it in Eclipse in its normal, not-hosted, mode? If it runs fine on Eclipse locally, then I think you're problem is something to do the interaction between Eclipse and GWT. I know I've had problems before trying to run certain programs from within the IDE; Visual Studio 2007 for instance almost never can load image maps without crashing, because its built-in debugger gets in the way. If you don't get this problem when you run your code locally, rather than on a hosted Eclipse, then it would seem GWT is getting in the way, in the same way the debugger did in my example.
|
|
|
|