ABA


"שלום וחג שמח לכולם מחפש עזרה בכתיבת סקרייפ בSQL"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #10926 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 10926
ש_ש 
חבר מתאריך 18.3.02
40 הודעות
   13:30   05.10.12   
אל הפורום  
  שלום וחג שמח לכולם מחפש עזרה בכתיבת סקרייפ בSQL  
 
   חלוקת חפיסת קלפים 52 ל 4
ולבנות משחק בלייק ג'ק

החוקים

i. In blackjack the player chooses how many cards to receive. If the sum of card values exceeds 21, the player loses. If not, the dealer withdraws cards, one by one, until he wins (greater or equal to the user but not more than 21) or loses (more than 21). The player wins only if her cards don't exceed 21, while the dealer cards do.

אודה מאוד על העזרה

בברכה

ש_ש


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  אתה מחפש עזרה או שיכתבו לך? אם לכתוב לך - אתה במקום הלא נכון חביבי. Ice Cold  05.10.12 13:54 1
     עזרה בלבד ידידי ש_ש  05.10.12 14:15 2
         כמה דברים שלא ברורים לי, יוחאי 05.10.12 14:45 3
             בכייף ש_ש  05.10.12 15:08 4
  יצרתי את הטבלאות הבאות ש_ש  05.10.12 16:59 5
  לאף אחד אין רעיון ש_ש  06.10.12 17:05 6
  עשית סלט שלם Deuce  08.10.12 18:17 7
     תודה אנסה להשתמש בהצעתך ש_ש  09.10.12 12:11 8

       
Ice Cold  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 3.8.02
28041 הודעות, 19 פידבק
   13:54   05.10.12   
אל הפורום  
  1. אתה מחפש עזרה או שיכתבו לך? אם לכתוב לך - אתה במקום הלא נכון חביבי.  
בתגובה להודעה מספר 0
 


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ש_ש 
חבר מתאריך 18.3.02
40 הודעות
   14:15   05.10.12   
אל הפורום  
  2. עזרה בלבד ידידי  
בתגובה להודעה מספר 1
 
   לא מצליח לבצע חלוקה ל 4 של חפיסת קלפים ולהכניסה ל 4 עמודות

DECLARE @count int;

DECLARE @RED_Dimonds_SuitsID table(ID int);

SET @count = 1

WHILE (@count <= 0)

BEGIN
INSERT INTO @RED_Dimonds_SuitsID (ID) VALUES (@count)

SET @count = (@count + 1)

END

SELECT * FROM @RED_Dimonds_SuitsID

DECLARE @count1 int;

DECLARE @RED_Hearts_SuitsID table(ID int);

SET @count = 1

WHILE (@count1 <= 0)

BEGIN
INSERT INTO @RED_Hearts_SuitsID (ID) VALUES (@count)

SET @count = (@count1 + 1)

END

SELECT * FROM @RED_Hearts_SuitsID


DECLARE @count1 int;

DECLARE @BLACK_Spades_SuitsID table(ID int);

SET @count = 1

WHILE (@count1 <= 0)

BEGIN
INSERT INTO @BLACK_Spades_SuitsID (ID) VALUES (@count)

SET @count = (@count1 + 1)

END


SELECT * FROM @BLACK_Spades_SuitsID

DECLARE @count1 int;

DECLARE @BLACK_Clubs_SuitsID table(ID int);

SET @count = 1

WHILE (@count1 <= 0)

BEGIN
INSERT INTO @BLACK_Clubs_SuitsID (ID) VALUES (@count)

SET @count = (@count1 + 1)

END


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
יוחאי
חבר מתאריך 30.12.15
163 הודעות
   14:45   05.10.12   
אל הפורום  
  3. כמה דברים שלא ברורים לי,  
בתגובה להודעה מספר 2
 
   קטנותי מלדעת SQL ברמה טובה, אבל איך count שווה ל1 והwhile שלך בודק אם הוא קטן או שווה ל0? זה לא מתקיים אף פעם בפעם האחרונה שבדקתי.

חוץ מזה אשמח אם תפרסם את החוקים המלאים של המשחק ואולי נעשה אתגר מימוש כאן


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ש_ש 
חבר מתאריך 18.3.02
40 הודעות
   15:08   05.10.12   
אל הפורום  
  4. בכייף  
בתגובה להודעה מספר 3
 
   החוקים כפי שמופיעים בשאלה

החוקים

i. In blackjack the player chooses how many cards to receive. If the sum of card values exceeds 21, the player loses. If not, the dealer withdraws cards, one by one, until he wins (greater or equal to the user but not more than 21) or loses (more than 21). The player wins only if her cards don't exceed 21, while the dealer cards do.

אודה מאוד על העזרה

ש_ש


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ש_ש 
חבר מתאריך 18.3.02
40 הודעות
   16:59   05.10.12   
אל הפורום  
  5. יצרתי את הטבלאות הבאות  
בתגובה להודעה מספר 0
 
  

CREATE TABLE cardDeckfull1 (
card_id int PRIMARY KEY,
suit NVARCHAR(10) NOT NULL,
value NVARCHAR(10) NOT NULL
);

CREATE TABLE hand (
hand_id int PRIMARY KEY,
player_id int NOT NULL
);

CREATE TABLE hand_element (
hand_element_id int PRIMARY KEY,
hand_id int NOT NULL,
card_id int NOT NULL
);

--Each HAND would have 13 rows in HAND_ELEMENT.
-- I wouldn't bother storing information about the suit distribution,
-- I'd just compute the distribution of a hand, i.e.

SELECT suit,


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ש_ש 
חבר מתאריך 18.3.02
40 הודעות
   17:05   06.10.12   
אל הפורום  
  6. לאף אחד אין רעיון  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Deuce 
חבר מתאריך 1.9.08
6225 הודעות
   18:17   08.10.12   
אל הפורום  
  7. עשית סלט שלם  
בתגובה להודעה מספר 0
 
נתחיל בטבלאות עצמן.

טבלאות כלליות
טבלה אחת של קלפים, Cards שתכיל את כל 52 הקלפים ותצליב בין מספר הקלף לסוגו (Heart,Diamond,Spade,Club) - אפשר בצורה ישירה או לעשות טבלה נוספת של סוגי קלפים.
טבלה שחקנים - יהיו בה id לשחקנים, שמות שלהם, מספר נצחונות והפסדים.

התנהלות של משחק
כדי לנהל משחק אפשר להשתמש ב-2 טבלאות:
טבלה סיכומית של שחקנים שמסכמת כמה נקודות יש לכל שחקן.
טבלה אליה מוזנים חלוקת הקלפים (player_id מול card_id).

איך מתנהל משחק?
ראשית אתה צריך לערבב חבילה. הדרך האלגנטית היא להגריל תמורה אקראית מעל 1..52 קלפים (זה מעט מסובך ב-SQL). דרך נוספת היא להגריל מספר בין 1..52 ולחלק אותו לשחקן במידה והוא לא קיבל אותו כבר, כלומר הוא לא מופיע בטבלה שמצמידה בין השחקנים לקלפים. במידה וכן, מגרילים מספר חדש; במידה ולא, מזינים שורה חדשה לטבלת חלוקת הקלפים ומעדכנים את הטבלה הסיכומים לפי המספר של הקלף. אם המספר גבוה מדי, מוציאים את השחקן מהמשחק (כלומר מעדכנים בטבלה הסיכומית שהוא הפסיד). אם לא, מעולה. המשחק מסתיים כאשר או שכולם עברו 21 או שאף אחד מהשחקנים הפעילים לא מעוניין לקבל קלף נוסף.

לגבי הפונקציות שכתבת, הן מאד בסיסיות אבל ה-WHILE שלך כמובן צריך להיות עם @count <= 13.

בהצלחה






                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ש_ש 
חבר מתאריך 18.3.02
40 הודעות
   12:11   09.10.12   
אל הפורום  
  8. תודה אנסה להשתמש בהצעתך  
בתגובה להודעה מספר 7
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net