मैं अपने कार्ड खेल के लिए एक अच्छी वास्तुकला के साथ नहीं आ सकता। मुझे यह समझने में मदद की जरूरत है कि खेल आमतौर पर कैसे डिजाइन किए जाते हैं।
सबसे पहले, मैं खेल के नियमों का वर्णन करूंगा।
खेल के नियमों
सेट अप- चार खिलाड़ी हैं, प्रत्येक दो खिलाड़ी एक टीम बनाते हैं।
- प्रत्येक खिलाड़ी को 12 फेरबदल कार्ड दिए जाते हैं
- टेबल (नदी) पर 4 अंधे कार्ड हैं
- खिलाड़ियों का आदेश इस तरह है

- प्रत्येक खिलाड़ी 100 से 160 के बीच की वर्तमान शर्त से अधिक संख्या पास या चुन सकता है
- बेटिंग पहले खिलाड़ी और सर्कल से शुरू होती है जब तक कि एक टीम पास नहीं होती
- एक बार एक खिलाड़ी पास होने के बाद वे अब और शर्त नहीं लगा सकते
- बेटिंग राउंड जीतने वाली टीम को गेम जीतने के लिए कम से कम अपनी बाजी के बराबर अंक जुटाने चाहिए
सट्टेबाजी का दौर हारने वाली टीम को अपनी टीम को अपना लक्ष्य हासिल करने की अनुमति नहीं देनी चाहिए
यदि वह टीम जिसने सट्टेबाजी का दौर जीता है, तो सभी बिंदुओं को दूसरी टीम को अपने दांव के बराबर नकारात्मक अंक मिलेंगे
- यदि टीम जो सट्टेबाजी के दौर को खो देती है वह सभी बिंदुओं को एकत्र करती है तो दूसरी टीम को दोहरे नकारात्मक अंक मिलेंगे
खेल का प्रवाह और एकत्रित अंक
- बेटिंग राउंड ( राजा ) जीतने वाले खिलाड़ी को टेबल पर चार शेष कार्ड मिलते हैं।
- तब वह अपनी टीम कार्ड बैंक में बिना खेले चार कार्ड का एक सेट बचा सकता है।
- राजा एक सूट को शासक के सूट के रूप में चुनेगा और दूसरों को यह बताएगा
- राजा टेबल पर अपने हाथ से एक कार्ड लगाकर खेल शुरू करता है। प्रत्येक दूसरे खिलाड़ी को इस क्रम में खेलना चाहिए
- यदि उनके हाथ में उस कार्ड का एक ही सूट है, तो उन्हें उन कार्डों में से एक खेलना होगा
- यदि उनके पास यह नहीं है, तो वे किसी भी अन्य सूट को खेल सकते हैं
- अन्य सभी खिलाड़ियों ने अपने हाथों से खेलने के बाद, विजेता का दौर होगा:
- यदि सभी कार्ड एक जैसे हैं तो सबसे ज्यादा कार्ड वाले हैं
- यदि कोई है, तो सबसे ज्यादा "शासक" कार्ड है
- राउंड के विजेता कार्ड इकट्ठा करेंगे और इसे अपने बैंक में डालेंगे
- पिछला राउंड जीतने वाला खिलाड़ी अगले राउंड की शुरुआत करेगा
- यह तब तक जारी रहेगा जब तक सभी का हाथ खाली नहीं हो जाता
गिनती के अंक
- प्रत्येक राउंड को जीतने पर 5 अंक होते हैं। इसका मतलब है कि हर 4 कार्ड में कम से कम 5 अंक हैं।
- ऐस होने से 10 या 5 बैंक में प्रत्येक 5 अंक जोड़ता है
मेरी डिजाइन
कक्षाएं
class Card {
string suit;
string rank
}
class Deck {
List cards = [];
List suits = ['S', 'H', 'D', 'C'];
List ranks = ['1', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K', 'A'];
private void init(){..}
void shuffle(){...}
}
class Game{
Deck deck = new Deck();
Player player1;
Player player2;
Player player3;
Player player4;
int _isOn = 0;
Game(this.player1, this.player2, this.player3, this.player4){
deck.makeCards();
deck.shuffle();
start();
}
void start(){
player1.cards.addAll( deck.cards.getRange(0, 12) );
player2.cards.addAll( deck.cards.getRange(12, 24) );
player3.cards.addAll( deck.cards.getRange(24, 36) );
player4.cards.addAll( deck.cards.getRange(36, 48) );
deck.cards.removeRange(0, 48);
}
String toJson(){
}
String toString(){
}
}
class Player{
String name;
int points;
List cards = [];
Player(this.name, {this.points});
String toJson(){}
String toString(){}
}
मेरी समस्या
अब जब मैंने इन सभी वर्गों को परिभाषित कर लिया है तो मुझे नहीं पता कि इस परिभाषा को डेटाबेस (जैसे मानगो) से कैसे जोड़ा जाए और खेल के प्रवाह को नियंत्रित किया जाए।
- वह सब तर्क कहाँ जाना चाहिए?
- मुझे सर्वर / क्लाइंट परिदृश्य में राज्य कैसे रखना चाहिए?
ध्यान दें:
मैं यह प्रोग्राम करने के लिए डार्ट का उपयोग कर रहा हूं, लेकिन मैं नहीं चाहता कि उत्तर डार्ट में लिखे जाएं।