דוגמה - משחק נחש את המשחק

סגור באמצעות טופס זה תוכלו לספר ולהמליץ לחבריכם..
שם השולח:
כתובת דוא"ל של השולח:
שם המקבל:
שלח לכתובת דוא"ל:
הוסף הערה:


 

דוגמה - משחק ניחוש מספר

 
 
מאת: ארז קלר

 להורדת דוגמאות הקוד
ניחוש מספר
משחק בן 10 סיבובים, בכל סיבוב המחשב מגריל אקראית מספר בין 1 ל-100. השחקן צריך לנחש את המספר תוך 5 ניסיונות או פחות.
במידה והשחקן ניחש הוא מקבל 10 נקודות, במידה והשחקן לא ניחש הוא אינו מקבל ניקוד.
 1  : using System; 
 2  : using System.Collections.Generic; 
 3  : using System.Linq; 
 4  : using System.Text; 
 5  : using System.Threading.Tasks; 
 6  :  
 7  : namespace GuessTheNumber 
 8  : { 
 9  :     class Program 
 10 :     { 
 11 :         static void Main(string[] args) 
 12 :         { 
 13 :             int num_to_guess; 
 14 :             int user_guess; 
 15 :             int score = 0; 
 16 :             Random rnd = new Random(); 
 17 :             for (int i = 0; i < 10; i++) 
 18 :             { 
 19 :                 Console.WriteLine("Round Num {0}", i + 1); 
 20 :                 int trial_counter = 0; 
 21 :                 num_to_guess = rnd.Next(1, 100); 
 22 :                 do 
 23 :                 { 
 24 :                     user_guess = int.Parse(Console.ReadLine()); 
 25 :                     trial_counter++; 
 26 :                     if (user_guess < num_to_guess) 
 27 :                     { 
 28 :                         Console.WriteLine("Select bigger num"); 
 29 :                     } 
 30 :                     else if (user_guess > num_to_guess) 
 31 :                     { 
 32 :                         Console.WriteLine("Select smaller num"); 
 33 :                     } 
 34 :                 } 
 35 :                 while (user_guess != num_to_guess && trial_counter < 5); 
 36 :                 if (user_guess == num_to_guess) 
 37 :                 { 
 38 :                     Console.WriteLine("hooray, hooray - user guess the correcr number - {0}", num_to_guess); 
 39 :                     score += 10; 
 40 :                     Console.WriteLine("SCORE - {0}", score); 
 41 :                 } 
 42 :                 else 
 43 :                 { 
 44 :                     Console.WriteLine("you failed - the number is {0}", num_to_guess); 
 45 :                 } 
 46 :             } 
 47 :             Console.WriteLine("you SCORE is {0}", score); 
 48 :         } 
 49 :     } 
 50 : } 

שורה 13 - המשתנה num_to_guess מכיל את המספר האקראי שמגריל האובייקט rnd, זהו המספר שעל השחקן לנחש.
שורה 14 - המשתנה user_guess מכיל את הניחוש של השחקן.
שורה 15 - המשתנה score הוא צובר, מכיל את הניקוד המצטבר של השחקן, כל ניחוש נכון השחקן מקבל עוד 10 נקודות.
שורה 16 - הגדרת האובייקט rnd מהמחלקה Random, ניעזר באובייקט על מנת להגריל את המספר האקראי שהשחקן צריך לנחש.
שורה 17 - מכיוון שמראש אנחנו יודעים שלמשחק יש 10 סיבובים ולכן לולאת for היא פיתרון מתאים.
שורה 19 - מציגים למשתמש את מספר הסיבוב.
שורה 20 - המשתנה trial_number הוא מונה, הוא סופר את מספר הניחושים שהשחקן ניחש בסיבוב.
שורה 21 - המחשב מגדריל את המספר האקראי שעל השחקן לנחש. 
שורה 22 - לאחר שהמחשב הגריל מספר אקראי השחקן יכול להתחיל להקליד את ניחושיו, אין אנו יודעים כמה ניחושים יתבצעו, יתכן שכבר בראשון השחקן ינחש נכונה ויכול להיות שגם אחרי 10 ניחושים השחקן יכשל, מכיוון שאין אנו יודעים מראש כמה פעמים השחקן יקליד ניחוש לולאת for אינה פיתרון הולם.
במקרה זה נעדיף את לולאת do...while משום שרק עם סיום בלולאה נבדק האם המשתמש ניחש נכונה או שאזלו עשרת ההזדמנויות שלו למחש נכון את המספר.
שורה 24 - השחקן מקליד את הניחוש שלו.
שורה 25 - מגדילים באחד את מונה מספר הניחושים שהתבצעו בסיבוב.
שורות 25 עד 33 - יעודן של שורות הקוד הללו לבדוק את הניחוש של השחקן, ולהדפיס לו רמז, האם המספר שהוקלד גדול או קטן מהמספר אותו הוא מנסה לנחש.
שורה 35 - נבדק תנאי היציאה מהלולאה, במידה והשחקן ניחש נכונה או שנכשל אחרי 10 ניסיונות הלולאה תסתיים.
שורות 35 עד 40 - אם השחקן ניחש נכונה נודיע לו זאת ונגדיל את הצובר של הניקוד, במידה והוא נכשל הוא יקבל הודעה אחרת.
שורה 47 - לפני שהמשחק מסתיים נדפיס למשתמש את הניקוד שלו.

פלט:
פלט התוכנית GuessTheNumber


 

 
למאמר הבא - 
חזרה לרשימת המאמרים



כל הזכויות שמורות למחבר ©