i hoping help. making deck of cards in c# , create instance there no cards in pack. have never coded in c# understand java well. pretty sure work in java if let me know going wrong helpful.
public class packofcards : ipackofcards { private int cardsinpack; private collection<icard> pack = new collection<icard>(); public int count { { return this.cardsinpack; } set { this.cardsinpack = value; } } public ienumerator<icard> getenumerator() { return pack.getenumerator(); } ienumerator ienumerable.getenumerator() { return getenumerator(); } public void create() { string [] values = {"ace","two","three","four","five","six","seven","eight","nine","ten","jack","queen","king"}; string [] suits = {"hearts", "diamonds", "spades", "clubs"}; int cardsinpack = 0; for(int = 0 ; i<suits.length; i++){ for(int j = 0; j<values.length; j++, cardsinpack++){ pack.add(new card(values[j], suits[i])); } } } public void shuffle() { random num = new random(); (int = 0; < pack.count-1; i++) { int ran = num.next(pack.count); icard temp = pack.elementat(ran); pack.removeat(ran); pack.insert(ran, pack.elementat(i)); pack.insert(i, temp); } } public icard takecardfromtopofpack() { int topcard = 0; icard cardremoved = pack.elementat(topcard); pack.removeat(topcard); return cardremoved; } } interface ipackofcards:
public interface ipackofcards : ireadonlycollection<icard> { void shuffle (); icard takecardfromtopofpack (); } interface icard:
public interface icard { string getvalue(); string getsuit(); string tostring(); } class card;
public class card : icard { private string value; private string suit; public card(string v, string s) { value = v; suit = s; } public string getvalue(){ return value; } public string getsuit(){ return suit; } public string tostring(){ return value+" of "+suit; } } interface ipackofcardscreator
public interface ipackofcardscreator { ipackofcards create (); } class packofcardscreator:
public class packofcardscreator : ipackofcardscreator { public ipackofcards create() { packofcards p = new packofcards(); p.create(); //addition, please note have tried no avail return p; } } thank has helped, appreciated. have leave 1 of life's unanswered questions. believe have done right perhaps else wrong such ide or computer. bad carpenter blames tools , i'm bad carpenter.
firstly taking many things java work. secondly why need own counter if colllection class contains count accurate. implement count property follows:
public int count { { return pack.count; } } next, think create method should static , return new instance of class:
public static packofcards create() { packofcards newpack = new packofcards(); string[] values = { "ace", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "jack", "queen", "king" }; string[] suits = { "hearts", "diamonds", "spades", "clubs" }; (int = 0; < suits.length; i++) { (int j = 0; j < values.length; j++) { newpack.pack.add(new card(values[j], suits[i])); } } return newpack; } and in interfaces c#pify method names:
public interface icard { string getvalue(); string getsuit(); string tostring(); } public class card : icard { private string value; private string suit; public card(string v, string s) { value = v; suit = s; } public string getvalue() { return value; } public string getsuit() { return suit; } public override string tostring() { return value + " of " + suit; } } so main method this:
static void main(string[] args) { packofcards cards = packofcards.create(); console.writeline(cards.count); icard c = cards.takecardfromtopofpack(); console.writeline(c); } also consider implementing implicit conversion icard card.
Comments
Post a Comment