קהילות פורומים, הורדות, יעוץ ותמיכה


אשכולות דומים

  1. חן אני צריך עזרה בזיהוי שיר
    על ידי BizON בפורום מזרחית ודיכאון להורדה
    תגובות: 2
    הודעה אחרונה: 20-09-2005, 22:13
  2. אני צריך עזרה ופרטים בקשר להחלפת הפלאפון שלי
    על ידי MuGi בפורום סלולרי וטאבלטים כללי
    תגובות: 1
    הודעה אחרונה: 18-09-2005, 05:09
  3. כנסו אני צריך עזרה בקשר לסקילים
    על ידי MaRoKaY בפורום תמיכה טכנית במשחקים
    תגובות: 10
    הודעה אחרונה: 17-09-2005, 16:29
  4. כנסו שניה אני צריך עזרה
    על ידי MaRoKaY בפורום תמיכה טכנית במשחקים
    תגובות: 15
    הודעה אחרונה: 12-09-2005, 00:21
  5. אחי ם שלי כנסו אני צריך עזרה בשבילי
    על ידי Perfection בפורום דיבורים
    תגובות: 3
    הודעה אחרונה: 06-09-2005, 07:15
+ תגובה לנושא
עמוד 1 מתוך 2 12 אחרון >>
מציג תוצאות 1 עד 15 מתוך 19

אני צריך עזרה בשאלה שלקחתי מהאוניברסיטה העברית . JAVA בסיסית.

  1. #1
    משתמש משקיע
    תאריך הצטרפות
    08/2004
    הודעות
    2,065
    לייקים
    1
    נקודות
    0

    ברירת מחדל אני צריך עזרה בשאלה שלקחתי מהאוניברסיטה העברית . JAVA בסיסית.

    אז ככה זאת השאלה :
    http://moodle.cs.huji.ac.il/cs12/mod...ew.php?id=1901
    אשמח אם תעיינו טוב בשאלה,
    אני תקוע בסעיף השישי... והנה הקוד שעד עכשיו עשיתי .

    קוד:
    import java.util.Scanner;
    
    import il.ac.huji.cs.intro.mastermind.*;
    public class Mastermind  {
        
        
        public static void main(String[] args) {
            Scanner in=new Scanner(System.in);
            MastermindUI ui = MastermindUIFactory.newMastermindUI();
            int length=ui.askNumber("Enter the length of the code");
            while(length<0)
            {
                ui.displayErrorMessage(" you enter a negative length, (you must enter a positive values)");
                 length=ui.askNumber("Enter the length of the code");
            }
            int values=ui.askNumber("Enter the number of possible values in the code");
            while(values<0)
            {
                 ui.displayErrorMessage(" you enter a negative values, (you must enter a positive values)");
                 values=ui.askNumber("Enter the values of the code");
            }
            int Maxguesses=ui.askNumber("Enter the maximal number of guesses per game.");
            while(Maxguesses<0)
            {
                ui.displayErrorMessage(" you enter a negative number of Maxguesses, (you must enter a positive values)");
                Maxguesses=ui.askNumber("Enter the maximal number of guesses per game.");
            }
            Code code = CodeGenerator.newCode(length,values);
            Code guess=ui.askGuess("enter your guesses",length);
            System.out.println("the random code is:" +code.toString());
            int roundGame=1;
            int gameNumber=1;
            int gameWon=0;
            double winRate=0;
            double averagewin=0;
            while(Maxguesses!=0 && gameWon==0)
            {
                if(guess.equals(code)==true)
                    gameWon++;
                
                else
                {
                    guess=ui.askGuess("enter other guesses",length);
                    roundGame++;
                    Maxguesses--;
                    
                }
            }
            
            if(Maxguesses==0)
                ui.displayMessage("You Lost the game");        
    
            else        
                System.out.println("You Won the game");
                
            boolean moreGame=ui.askYesNo("You want play another game?");
            winRate=gameWon/gameNumber;
            averagewin=roundGame/gameWon;
            if(moreGame==false)
            {
                ui.showStats(gameNumber, gameWon, winRate, averagewin);
                ui.close();
            }
            else
            {
                boolean change=ui.askYesNo("are you want changing the game parameters");
                
                    
                
            }
                
        }
    
      
    }
    האתר הזה יעזור לכם להבין את המחלקות : http://www.cs.huji.ac.il/~introcsp/doc/ex3/

    אשמח מאוד אם מישהו יוכל לעזור לי הכין שנתקעתי.

    * מי שלא קרא את השאלה , אז מה שנשאר לי לעשות זה ככה:
    אחרי שהמשחק הראשון הסתיים, אני שואל אם המשתמש אם הוא רוצה עוד משחק לשחק.
    אם הוא עונה שכן, אז שואלים אותו עוד שאלה שהיא האם הוא רוצה להחליף פרמטרים.
    אם הוא עונה שכן אז צריך להתחיל הכול מהתחלה משורה 10 בקוד .
    ואם הוא בוחר שלא להחליף פרמטרים אז צריך להתחיל משורה מספר 28 שמגרילים מספר חדש .

    (עכשיו איך אני עושה את זה? הרי אם מתחילים משחק חדש צריך לשמור את הנתנונים של המספר הראשון .אם ניצח או לא ? ובכמה ניחושים. וכו")
    אשמח אם תעזרו לי פה .
    נערך לאחרונה על ידי Par4n0iA; 27-12-2012 בשעה 18:38.




  2. קישורים ממומנים

  3. #2
    Smoxer in your mind
    משתמש כבוד
    האוואטר של -Smoxer-
    תאריך הצטרפות
    11/2011
    הודעות
    8,881
    לייקים
    1181
    נקודות
    483
    פוסטים בבלוג
    3
    משפט מחץ
    Further gets colder until nothing was all that I saw around
    מין: זכר

    ברירת מחדל

    אתה יכול לעשות פעולה שחוזרת על עצמה בפונקציה עם קבלת פרמטרים.
    תיצור 2 פונקציות, פונקציה לכן ופונקציה ללא.

    בקשר לשמירת נתונים, אתה יכול לשמור את זה על קובץ או על המסד.

  4. #3
    משתמש משקיע
    תאריך הצטרפות
    08/2004
    הודעות
    2,065
    לייקים
    1
    נקודות
    0

    ברירת מחדל

    ציטוט נכתב במקור על ידי -Smoxer- צפיה בהודעה
    אתה יכול לעשות פעולה שחוזרת על עצמה בפונקציה עם קבלת פרמטרים.
    תיצור 2 פונקציות, פונקציה לכן ופונקציה ללא.

    בקשר לשמירת נתונים, אתה יכול לשמור את זה על קובץ או על המסד.
    לא הבנתי איך לעשות את זה ,
    אשמח אם תוסיף את מה שאמרת לקוד שלי..
    תודה ניסתי לא הבנתי. (תראה איך המשכתי את הקוד שלי.. )
    קוד:
     import java.util.Scanner;
    
    import il.ac.huji.cs.intro.mastermind.*;
    public class Mastermind  {
        
        
        public static void main(String[] args) {
            
            MastermindUI ui = MastermindUIFactory.newMastermindUI();
            int length=ui.askNumber("Enter the length of the code");
            while(length<0)
            {
                ui.displayErrorMessage(" you enter a negative length, (you must enter a positive values)");
                 length=ui.askNumber("Enter the length of the code");
            }
            int values=ui.askNumber("Enter the number of possible values in the code");
            while(values<0)
            {
                 ui.displayErrorMessage(" you enter a negative values, (you must enter a positive values)");
                 values=ui.askNumber("Enter the values of the code");
            }
            int Maxguesses=ui.askNumber("Enter the maximal number of guesses per game.");
            while(Maxguesses<0)
            {
                ui.displayErrorMessage(" you enter a negative number of Maxguesses, (you must enter a positive values)");
                Maxguesses=ui.askNumber("Enter the maximal number of guesses per game.");
            }
            Code code = CodeGenerator.newCode(length,values);
            Code guess=ui.askGuess("enter your guesses",length);
            
            System.out.println("the random code is:" +code.toString());
            double roundGame=1;
            int gameNumber=1;
            int gameWon=0;
            double winRate=0;
            double averagewin=0;
            while(Maxguesses!=0 && gameWon==0)
            {
                if(guess.equals(code)==true)
                    gameWon++;
                
                else
                {
                    guess=ui.askGuess("enter other guesses",length);
                    roundGame++;
                    Maxguesses--;
                    
                }
            }
            
            if(Maxguesses==0)
                ui.displayMessage("You Lost the game");        
    
            else        
                System.out.println("You Won the game");
                
            boolean moreGame=ui.askYesNo("You want play another game?");
            winRate=gameWon/gameNumber;
            if(gameWon==0)
                averagewin=Double.NaN; 
            else
              averagewin=roundGame/gameWon;
            if(moreGame==false)
            {
                ui.showStats(gameNumber, gameWon, winRate, averagewin);
                ui.close();
            }
            else
            {
                boolean change=ui.askYesNo("are you want changing the game parameters");
                if(change==true)
                {
                    ui.displayMessage("Please enter the new prameters");
                    ui.reset(length=ui.askNumber("Enter the length of the code"), values=ui.askNumber("Enter the values of the code"), Maxguesses=ui.askNumber("Enter the maximal number of guesses per game."));
                    
                }
                if(change==false)
                ui.clear();
            Code newCode = CodeGenerator.newCode(length,values);
                
                
        }
    
      
    }
    }
    אבל זה לא טוב אני יודע ..
    אשמח אם תוכל להדריך אותי .
    חשבתי על לעשות מתוודה שהיא בעצם מבצעת משחק עד שהוא נגמר . אבל אני לא יודע איזה ערך היא צריכה להחזיר. ומה לקבל ?? (אני מסתבכך עם כל המחלקות שיש בשאלה הזאת . אני עוד לא בקיא בחומר הזה של מחלקות, עצמים, מצביעים וכל זה .)
    נערך לאחרונה על ידי Par4n0iA; 27-12-2012 בשעה 21:49.




  5. #4
    משתמש כבוד
    מנעל בטמיחה תחנית
    האוואטר של DooDeLzZz
    שם פרטי
    וולפגנג
    תאריך הצטרפות
    11/2008
    גיל
    13
    הודעות
    7,613
    לייקים
    605
    נקודות
    1,159

    ברירת מחדל

    לא קראתי את השאלה, קראתי את הקטע שהעתקת שקשור לשאלה שלך ומה שעולה לי לראש זה: אתה יודע להשתמש בפונקציות? חבל שאתה לא מיישם את זה. אתה יודע מה זה משתמש גלובאלי?

    בפונקציה Main אין לך הרבה מה לעשות. שם אתה תזמן פונקציה בשם newGame שתאתחל משתנים גלובאליים (משתנה גלובאלי הוא משתנה שמוגדר ברמת המחלקה, זתומרת מעל הפעולות). אתה תעשה עוד פעולה בשם startGame שבה אתה תעשה את כל מהלך ההגרלה.
    שאתה מגיע לקטע שאתה שואל אותו משחק חדש, מה שאתה עושה זה כזה דבר: אם הוא עונה כן, אתה שואל את השאלה שצריך. אם הוא עונה לא, אתה עושה מה שצריך. אם לשאלה השניה הוא עונה כן, אתה מזמן את הפונקציה newGame שתאתחל את המשתנים לפי הדרישה. אם הוא עונה לא, אתה מזמן את הפונקציה startGame שתתחיל מחדש עם אותם ערכים. לא נוח לך לעבוד עם רקורסיה/דרשו שלא תעבוד עם רקורסיה? תעשה עוד פעולה בשם endGame שמזומנת ע"י startGame בסוף המשחק, שבה אתה תשאל את השאלות ותזמן לפי הצורך כמו שהסברתי למעלה.

    למקרה שאתה לא יודע מה זה משתנה גלובאלי, זה משתנה שמוגדר מעל הפעולות וכל פעולה יכולה להשתמש באותו המשתנה. המשתנה הוא בעצם משתנה רגיל רק שלכל פעולה יש גישה אליו. אם תעשה משתנה בתוך פעולה, רק לפעולה הספציפית תיהיה גישה אליו ואל הנתונים שלו. אם תעשה משתנה גלובאלי (בתוך המחלקה) רק למחלקה הספציפית (ולכל הפעולות שלה) יהיה גישה לאותו משתנה ואל הנתונים שלו. משתנה גלובאלי נשאר עם אותם הערכים עד שהמשתמש עובר דף או טוען מחדש (רענון) את הדף. אם ברצונך להעביר מידע בין דפים, אני כמעט בטוח שבJAVA זה כמו בC# (אני עובד על C# לא על JAVA) ואתה יכול לשמור ערכים בתוך Session.


    בתגובתכם להודעותיי, אנא מכם, לחצו על הכפתור "ציטוט ההודעה" שנמצא מתחת לשורה זו.


  6. #5
    משתמש משקיע
    תאריך הצטרפות
    08/2004
    הודעות
    2,065
    לייקים
    1
    נקודות
    0

    ברירת מחדל

    ציטוט נכתב במקור על ידי DooDeLzZz צפיה בהודעה
    לא קראתי את השאלה, קראתי את הקטע שהעתקת שקשור לשאלה שלך ומה שעולה לי לראש זה: אתה יודע להשתמש בפונקציות? חבל שאתה לא מיישם את זה. אתה יודע מה זה משתמש גלובאלי?

    בפונקציה Main אין לך הרבה מה לעשות. שם אתה תזמן פונקציה בשם newGame שתאתחל משתנים גלובאליים (משתנה גלובאלי הוא משתנה שמוגדר ברמת המחלקה, זתומרת מעל הפעולות). אתה תעשה עוד פעולה בשם startGame שבה אתה תעשה את כל מהלך ההגרלה.
    שאתה מגיע לקטע שאתה שואל אותו משחק חדש, מה שאתה עושה זה כזה דבר: אם הוא עונה כן, אתה שואל את השאלה שצריך. אם הוא עונה לא, אתה עושה מה שצריך. אם לשאלה השניה הוא עונה כן, אתה מזמן את הפונקציה newGame שתאתחל את המשתנים לפי הדרישה. אם הוא עונה לא, אתה מזמן את הפונקציה startGame שתתחיל מחדש עם אותם ערכים. לא נוח לך לעבוד עם רקורסיה/דרשו שלא תעבוד עם רקורסיה? תעשה עוד פעולה בשם endGame שמזומנת ע"י startGame בסוף המשחק, שבה אתה תשאל את השאלות ותזמן לפי הצורך כמו שהסברתי למעלה.

    למקרה שאתה לא יודע מה זה משתנה גלובאלי, זה משתנה שמוגדר מעל הפעולות וכל פעולה יכולה להשתמש באותו המשתנה. המשתנה הוא בעצם משתנה רגיל רק שלכל פעולה יש גישה אליו. אם תעשה משתנה בתוך פעולה, רק לפעולה הספציפית תיהיה גישה אליו ואל הנתונים שלו. אם תעשה משתנה גלובאלי (בתוך המחלקה) רק למחלקה הספציפית (ולכל הפעולות שלה) יהיה גישה לאותו משתנה ואל הנתונים שלו. משתנה גלובאלי נשאר עם אותם הערכים עד שהמשתמש עובר דף או טוען מחדש (רענון) את הדף. אם ברצונך להעביר מידע בין דפים, אני כמעט בטוח שבJAVA זה כמו בC# (אני עובד על C# לא על JAVA) ואתה יכול לשמור ערכים בתוך Session.
    נראה לי שהבנתי אותך : תראה את הקוד שרשמתי עכשיו:

    קוד:
    import java.util.Scanner;
    import il.ac.huji.cs.intro.mastermind.*;
    public class ex3 {
        static int length;
        static int values;
        static int Maxguesses;
        static double roundGame=1;
        static int gameNumber=1;
        static int gameWon;
        static double winRate=0;
        static double averagewin=0;
        
        public static void gameplay(){
            MastermindUI ui = MastermindUIFactory.newMastermindUI();
            int length=ui.askNumber("Enter the length of the code");
            while(length<0)
            {
                ui.displayErrorMessage(" you enter a negative length, (you must enter a positive values)");
                 length=ui.askNumber("Enter the length of the code");
            }
            int values=ui.askNumber("Enter the number of possible values in the code");
            while(values<0)
            {
                 ui.displayErrorMessage(" you enter a negative values, (you must enter a positive values)");
                 values=ui.askNumber("Enter the values of the code");
            }
            int Maxguesses=ui.askNumber("Enter the maximal number of guesses per game.");
            while(Maxguesses<0)
            {
                ui.displayErrorMessage(" you enter a negative number of Maxguesses, (you must enter a positive values)");
                Maxguesses=ui.askNumber("Enter the maximal number of guesses per game.");
            }
            Code code = CodeGenerator.newCode(length,values);
            Code guess=ui.askGuess("enter your guesses",length);
            
            System.out.println("the random code is:" +code.toString());
            double roundGame=1;
            int gameNumber=1;
            int gameWon=0;
            double winRate=0;
            double averagewin=0;
            while(Maxguesses!=0 && gameWon==0)
            {
                if(guess.equals(code)==true)
                    gameWon++;
                
                else
                {
                    guess=ui.askGuess("enter other guesses",length);
                    roundGame++;
                    Maxguesses--;
                    
                }
            }
            if(Maxguesses!=0)
                 ui.displayMessage("You Win the game");        
            else        
                ui.displayMessage("You Lose the game");
            }
            
        
    
        public static void moreGame(){
             MastermindUI ui = MastermindUIFactory.newMastermindUI();
    
            boolean moreGame=ui.askYesNo("You want play another game?");
            winRate=gameWon/gameNumber;
            if(gameWon==0)
                averagewin=Double.NaN; 
            else
              averagewin=roundGame/gameWon;
            if(moreGame==false)
            {
                ui.showStats(gameNumber, gameWon, winRate, averagewin);
                ui.close();
            }
            else
            {
                boolean change=ui.askYesNo("are you want changing the game parameters");
                if(change==true)
                {
                    ui.displayMessage("Please enter the new prameters");
                    gameplay();
                }
                if(change==false)
                ui.clear();
            Code newCode = CodeGenerator.newCode(length,values);
            gameplay();
    
        }
    
    }
    }
    אלו פונקציות עזר .
    רק בעיה אחת יש לי בנתיים.
    הרצתי את שני הפונקציות האלו דרך הMEAN . סבבה זה מתחיל משחק ,אני מכניס תפרמטרים שצריך , הכול טוב ויפה מנחש מספרים,
    ואז זה רושם לי אם הצלחתי לנחש או לא .
    אחרי זה זה שואל אותי אם אני רוצה לשחק עוד משחק רשמתי שלא .
    ואז זה אמור להראות את הסטסטיקה. ובערך של ניצחונות לא רשום לי כלום גם אם ניצחתי .
    ואם דוגמא אני עושה עוד משחק ושוב מנצח המשתנה שאחראי על ספירת הניצחונת תמיד מראה 1 . זה כאיו שהוא לא משתנה אף פעם הוא יכול להיות או 0 או 1 .
    איך אני יכול לגרום למשתנה שמוגדר ברמת המחלקה .להשתנות אם הוא הופעל פעמיים משני פונקציות שונות ? זה אפשרי בכלל ?




  7. #6
    Smoxer in your mind
    משתמש כבוד
    האוואטר של -Smoxer-
    תאריך הצטרפות
    11/2011
    הודעות
    8,881
    לייקים
    1181
    נקודות
    483
    פוסטים בבלוג
    3
    משפט מחץ
    Further gets colder until nothing was all that I saw around
    מין: זכר

    ברירת מחדל

    ציטוט נכתב במקור על ידי Par4n0iA צפיה בהודעה
    נראה לי שהבנתי אותך : תראה את הקוד שרשמתי עכשיו:

    קוד:
    import java.util.Scanner;
    import il.ac.huji.cs.intro.mastermind.*;
    public class ex3 {
        static int length;
        static int values;
        static int Maxguesses;
        static double roundGame=1;
        static int gameNumber=1;
        static int gameWon;
        static double winRate=0;
        static double averagewin=0;
        
        public static void gameplay(){
            MastermindUI ui = MastermindUIFactory.newMastermindUI();
            int length=ui.askNumber("Enter the length of the code");
            while(length<0)
            {
                ui.displayErrorMessage(" you enter a negative length, (you must enter a positive values)");
                 length=ui.askNumber("Enter the length of the code");
            }
            int values=ui.askNumber("Enter the number of possible values in the code");
            while(values<0)
            {
                 ui.displayErrorMessage(" you enter a negative values, (you must enter a positive values)");
                 values=ui.askNumber("Enter the values of the code");
            }
            int Maxguesses=ui.askNumber("Enter the maximal number of guesses per game.");
            while(Maxguesses<0)
            {
                ui.displayErrorMessage(" you enter a negative number of Maxguesses, (you must enter a positive values)");
                Maxguesses=ui.askNumber("Enter the maximal number of guesses per game.");
            }
            Code code = CodeGenerator.newCode(length,values);
            Code guess=ui.askGuess("enter your guesses",length);
            
            System.out.println("the random code is:" +code.toString());
            double roundGame=1;
            int gameNumber=1;
            int gameWon=0;
            double winRate=0;
            double averagewin=0;
            while(Maxguesses!=0 && gameWon==0)
            {
                if(guess.equals(code)==true)
                    gameWon++;
                
                else
                {
                    guess=ui.askGuess("enter other guesses",length);
                    roundGame++;
                    Maxguesses--;
                    
                }
            }
            if(Maxguesses!=0)
                 ui.displayMessage("You Win the game");        
            else        
                ui.displayMessage("You Lose the game");
            }
            
        
    
        public static void moreGame(){
             MastermindUI ui = MastermindUIFactory.newMastermindUI();
    
            boolean moreGame=ui.askYesNo("You want play another game?");
            winRate=gameWon/gameNumber;
            if(gameWon==0)
                averagewin=Double.NaN; 
            else
              averagewin=roundGame/gameWon;
            if(moreGame==false)
            {
                ui.showStats(gameNumber, gameWon, winRate, averagewin);
                ui.close();
            }
            else
            {
                boolean change=ui.askYesNo("are you want changing the game parameters");
                if(change==true)
                {
                    ui.displayMessage("Please enter the new prameters");
                    gameplay();
                }
                if(change==false)
                ui.clear();
            Code newCode = CodeGenerator.newCode(length,values);
            gameplay();
    
        }
    
    }
    }
    אלו פונקציות עזר .
    רק בעיה אחת יש לי בנתיים.
    הרצתי את שני הפונקציות האלו דרך הMEAN . סבבה זה מתחיל משחק ,אני מכניס תפרמטרים שצריך , הכול טוב ויפה מנחש מספרים,
    ואז זה רושם לי אם הצלחתי לנחש או לא .
    אחרי זה זה שואל אותי אם אני רוצה לשחק עוד משחק רשמתי שלא .
    ואז זה אמור להראות את הסטסטיקה. ובערך של ניצחונות לא רשום לי כלום גם אם ניצחתי .
    ואם דוגמא אני עושה עוד משחק ושוב מנצח המשתנה שאחראי על ספירת הניצחונת תמיד מראה 1 . זה כאיו שהוא לא משתנה אף פעם הוא יכול להיות או 0 או 1 .
    איך אני יכול לגרום למשתנה שמוגדר ברמת המחלקה .להשתנות אם הוא הופעל פעמיים משני פונקציות שונות ? זה אפשרי בכלל ?
    אתה יכול לעשות אותו גלובאלי ובכך כל פונקציה תשתמש בו.

  8. #7
    משתמש משקיע
    תאריך הצטרפות
    08/2004
    הודעות
    2,065
    לייקים
    1
    נקודות
    0

    ברירת מחדל

    ציטוט נכתב במקור על ידי -Smoxer- צפיה בהודעה
    אתה יכול לעשות אותו גלובאלי ובכך כל פונקציה תשתמש בו.
    איך עושים אותו גלובלי? והאם כל פונקציה שתשתמש בו הוא, ערכו יהיה ערכו האחרו ןשנעשה בו שימוש?




  9. #8
    משתמט כבוד
    שם פרטי
    אוֹרי
    תאריך הצטרפות
    02/2006
    הודעות
    21,037
    לייקים
    1421
    נקודות
    0
    משפט מחץ
    "אלוהים ברא אותי אתאיסט, מי אתם שתטילו ספק בחכמתו."
    מין: זכר

    ברירת מחדל

    טוב אני לא אכנס לרמה הטכנית של השפה כי אני לא ממש מתכנת בג'אווה.
    מבחינה אלגוריטמית מה שאתה צריך לבצע זה שמירה של נתונים לתוך מערך שונה שלכולם יש גישה לקרוא ממנו אפשר אפילו קובץ סטטי כלשהו או משתנה.
    הרעיון בגדול הוא לבנות משתנה גלובלי ברמת המחלקה שיהיה אחראי על כתיבה לתוך המערך הזה (אם מדובר על נקודות או כל נתונים שתרצה להשתמש בהם באופן גורף)
    בצורה כזאת אתה מפריד את שאר הקוד שהוא דינאמי ואת לוח התוצאות שלך.

    לגבי השאלה שלך כל משתנה מחזיק בתוכו את המידע האחרון שהוזן אליו עד שתקבע אחרת.
    משתנים מקומיים טעונים אך ורק כאשר אתה נמצא בתוך הלולאה שלהם כאשר אתה נמצא במחלקה אחרת הם חסרי משמעות.

  10. #9
    משתמש כבוד
    מנעל בטמיחה תחנית
    האוואטר של DooDeLzZz
    שם פרטי
    וולפגנג
    תאריך הצטרפות
    11/2008
    גיל
    13
    הודעות
    7,613
    לייקים
    605
    נקודות
    1,159

    ברירת מחדל

    ברגע שהגדרת אותו מעל כל פעולה הוא אוטומטי הופך לגלובאלי. משתנה גלובאלי בד"כ מסומן כprivate ולא כstatic.
    אני לא עובד בג'אווה אז אני צריך להתאמץ יותר בשביל להבין איפה השגיאה שלך, תוכל לכוון אותי בכך שתסמן לי בתוכנית שלך איפה מספר הניצחונות מתעדכן?


    בתגובתכם להודעותיי, אנא מכם, לחצו על הכפתור "ציטוט ההודעה" שנמצא מתחת לשורה זו.


  11. #10
    משתמש משקיע
    תאריך הצטרפות
    08/2004
    הודעות
    2,065
    לייקים
    1
    נקודות
    0

    ברירת מחדל

    ציטוט נכתב במקור על ידי DooDeLzZz צפיה בהודעה
    ברגע שהגדרת אותו מעל כל פעולה הוא אוטומטי הופך לגלובאלי. משתנה גלובאלי בד"כ מסומן כprivate ולא כstatic.
    אני לא עובד בג'אווה אז אני צריך להתאמץ יותר בשביל להבין איפה השגיאה שלך, תוכל לכוון אותי בכך שתסמן לי בתוכנית שלך איפה מספר הניצחונות מתעדכן?
    הנה פה :
    קוד:
                if(guess.equals(code)==true)
                    gameWon++;
    ברגע שהוא מוצא שמה שהוגרל והניחוש זהים . אז הוא מוסיף למשתנה gameWon 1 .

    *ולמשל אם אני בוחר לשחק שוב, אז הרי אני מפעיל שוב את הפונקציה הראשונה gameplay ואז שוב פעם זה מחזיר לי רק 1 או 0 ולא 2 אם היו למשל 2 ניצחנות מבין .




  12. #11
    משתמש כבוד
    מנעל בטמיחה תחנית
    האוואטר של DooDeLzZz
    שם פרטי
    וולפגנג
    תאריך הצטרפות
    11/2008
    גיל
    13
    הודעות
    7,613
    לייקים
    605
    נקודות
    1,159

    ברירת מחדל

    ציטוט נכתב במקור על ידי Par4n0iA צפיה בהודעה
    הנה פה :
    קוד:
                if(guess.equals(code)==true)
                    gameWon++;
    ברגע שהוא מוצא שמה שהוגרל והניחוש זהים . אז הוא מוסיף למשתנה gameWon 1 .

    *ולמשל אם אני בוחר לשחק שוב, אז הרי אני מפעיל שוב את הפונקציה הראשונה gameplay ואז שוב פעם זה מחזיר לי רק 1 או 0 ולא 2 אם היו למשל 2 ניצחנות מבין .
    דבר ראשון, לכתוב == true זה לא נכון מבחינה של בזבוז. זה לא טעות אבל זה מיותר. הרי הפעולה מחזירה לך true או false ומשפט IF עובד ככה שאם בסוגריים יש true הוא נכנס ואם יש false הוא מדלג. אם הפעולה מחזירה true או false אין צורך להשוות לtrue.
    דבר שני, אפשר גם את הפעולה equals במחלקה guess? אני מניח שאתה כתבת אותה. אם היא משתמשת בפעולות עזר, גם אותם.


    בתגובתכם להודעותיי, אנא מכם, לחצו על הכפתור "ציטוט ההודעה" שנמצא מתחת לשורה זו.


  13. #12
    משתמש משקיע
    תאריך הצטרפות
    08/2004
    הודעות
    2,065
    לייקים
    1
    נקודות
    0

    ברירת מחדל

    ציטוט נכתב במקור על ידי DooDeLzZz צפיה בהודעה
    דבר ראשון, לכתוב == true זה לא נכון מבחינה של בזבוז. זה לא טעות אבל זה מיותר. הרי הפעולה מחזירה לך true או false ומשפט IF עובד ככה שאם בסוגריים יש true הוא נכנס ואם יש false הוא מדלג. אם הפעולה מחזירה true או false אין צורך להשוות לtrue.
    דבר שני, אפשר גם את הפעולה equals במחלקה guess? אני מניח שאתה כתבת אותה. אם היא משתמשת בפעולות עזר, גם אותם.
    בגלל זה אמרתי שכדאי לקרוא את השאלה,
    אבל בכול זאת הנה אלו המחלקות שנתנו לנו בשאלה שמותר להשתמש בהם :
    http://www.cs.huji.ac.il/~introcsp/d...e-summary.html
    יש שמה 4 מחלקות . מה שרצית לראות נמצא במחלקת code .
    תודה רבה




  14. #13
    משתמש כבוד
    מנעל בטמיחה תחנית
    האוואטר של DooDeLzZz
    שם פרטי
    וולפגנג
    תאריך הצטרפות
    11/2008
    גיל
    13
    הודעות
    7,613
    לייקים
    605
    נקודות
    1,159

    ברירת מחדל

    ציטוט נכתב במקור על ידי Par4n0iA צפיה בהודעה
    בגלל זה אמרתי שכדאי לקרוא את השאלה,
    אבל בכול זאת הנה אלו המחלקות שנתנו לנו בשאלה שמותר להשתמש בהם :
    http://www.cs.huji.ac.il/~introcsp/d...e-summary.html
    יש שמה 4 מחלקות . מה שרצית לראות נמצא במחלקת code .
    תודה רבה
    נראה לי שהבעיה היא בקטע
    קוד:
    double roundGame=1;
            int gameNumber=1;
            int gameWon=0;
            double winRate=0;
            double averagewin=0;
    המשתנה הזה כבר מוגדר, אתה לא צריך להגדיר אותו עוד פעם. תוריד את הint ואת הdouble ותבדוק אם עובד.
    אתה גם לא עשית פעולה של משחק חדש, אז לא משנה מה תבחר, הוא תמיד יגיד לך להכניס פרמטרים חדשים.
    עוד דבר, בפעולה השניה אם הוא רוצה משחק חדש עם פרמטרים חדשים, אתה קולט את הפרמטרים ושם בתוך משתנה מקומי. זאת טעות, כי המשתנה הזה (code) נמחק כשאתה עובר לפעולה הראשונה.
    תעשה כזה דבר:
    א. תתקן את הstatic לprivate.
    ב. תוסיף את המשתנה code ברמת המחלקה שהתוכן שלו ישמר למקרה שתרצה להמשיך עם אותם פרמטרים.
    ג. תחלק את זה ל3 פעולות.
    משחק חדש
    {
    מקבל פרמטרים מהמשתמש וקורא לפונקציה מהלך משחק
    }
    מהלך משחק
    {
    עושה את מה שצריך בשביל המשחק ובסוף המשחק קורא לפונקציה סוף משחק
    }
    סוף משחק
    {
    מציג תוצאות ושואל אותך אם אתה רוצה פרמטרים חדשים או לא. אם כן, מעביר לפונקציה משחק חדש. אם להמשיך עם אותם פרמטרים, מעביר לפונקציה מהלך משחק.
    }


    בתגובתכם להודעותיי, אנא מכם, לחצו על הכפתור "ציטוט ההודעה" שנמצא מתחת לשורה זו.


  15. #14
    משתמש משקיע
    תאריך הצטרפות
    08/2004
    הודעות
    2,065
    לייקים
    1
    נקודות
    0

    ברירת מחדל

    קוד:
     import java.util.Scanner;
    import il.ac.huji.cs.intro.mastermind.*;
    public class ex3 {
        static int length;
        static int values;
        static int Maxguesses;
        static double roundGame=1;
        static int gameNumber=1;
        static int gameWon;
        static double winRate=0;
        static double averagewin=0;
        
        public ex3(){
            this.gameWon++;
            this.gameNumber++;
        }
        public static void gameplay(){
            MastermindUI ui = MastermindUIFactory.newMastermindUI();
            int length=ui.askNumber("Enter the length of the code");
            while(length<0)
            {
                ui.displayErrorMessage(" you enter a negative length, (you must enter a positive values)");
                 length=ui.askNumber("Enter the length of the code");
            }
            int values=ui.askNumber("Enter the number of possible values in the code");
            while(values<0)
            {
                 ui.displayErrorMessage(" you enter a negative values, (you must enter a positive values)");
                 values=ui.askNumber("Enter the values of the code");
            }
            int Maxguesses=ui.askNumber("Enter the maximal number of guesses per game.");
            while(Maxguesses<0)
            {
                ui.displayErrorMessage(" you enter a negative number of Maxguesses, (you must enter a positive values)");
                Maxguesses=ui.askNumber("Enter the maximal number of guesses per game.");
            }
            Code code = CodeGenerator.newCode(length,values);
            Code guess=ui.askGuess("enter your guesses",length);
            Maxguesses--;
            
            
            System.out.println("the random code is:" +code.toString());
            double roundGame=1;
            int gameNumber=1;
            int gameWon=0;
            double winRate=0;
            double averagewin=0;
            while(Maxguesses>0 && gameWon==0)
            {
                if(guess.equals(code)==true)
                    ex3.gameWon++;
                
                else
                {
                    guess=ui.askGuess("enter other guesses",length);
                    roundGame++;
                    Maxguesses--;
                    
                }
            }
            if(guess.equals(code)==true)
                ex3.gameWon++;
            if(ex3.gameWon!=0)
                 ui.displayMessage("You Win the game");        
            else
                if(Maxguesses==0 && ex3.gameWon==0 )
                    ui.displayMessage("You Lose the game");
            }
            
        public static void noChange(){
            MastermindUI ui = MastermindUIFactory.newMastermindUI();
            Code code = CodeGenerator.newCode(ex3.length,ex3.values);
            Code guess=ui.askGuess("enter your guesses",ex3.length);
            Maxguesses--;
            
            
            System.out.println("the random code is:" +code.toString());
            double roundGame=1;
            int gameNumber=1;
            ex3.gameWon=0;
            double winRate=0;
            double averagewin=0;
            while(Maxguesses>0 && ex3.gameWon==0)
            {
                if(guess.equals(code)==true)
                    ex3.gameWon++;
                
                else
                {
                    guess=ui.askGuess("enter other guesses",length);
                    roundGame++;
                    Maxguesses--;
                    
                }
            }
            if(guess.equals(code)==true)
                ex3.gameWon++;
            if(ex3.gameWon!=0)
                 ui.displayMessage("You Win the game");        
            else
                if(Maxguesses==0 && ex3.gameWon==0 )
                    ui.displayMessage("You Lose the game");
            
            
            if(guess.equals(code)==true)
                ex3.gameWon++;
            if(ex3.gameWon!=0)
                 ui.displayMessage("You Win the game");        
            else
                if(Maxguesses==0 && ex3.gameWon==0 )
                    ui.displayMessage("You Lose the game");
            }
        
    
        public static void moreGame(){
            MastermindUI ui = MastermindUIFactory.newMastermindUI();
            winRate=ex3.gameWon/gameNumber;
            if(ex3.gameWon==0)
                averagewin=Double.NaN; 
            else
               averagewin=roundGame/ex3.gameWon;
            boolean moreGame=ui.askYesNo("You want play another game?");
            if(moreGame==false)
            {
                ui.showStats(ex3.gameNumber, ex3.gameWon, winRate, averagewin);
                ui.close();
            }
            else
            {
                boolean change=ui.askYesNo("are you want changing the game parameters");
                if(change==true)
                {
                    ex3.gameNumber++;
                    ui.displayMessage("Please enter the new prameters");
                    gameplay();
                }
                if(change==false)
                {
                ui.clear();
                
                }
                
            gameplay();
            moreGame();
    
        }
    
    }
    }
    אוקיי תראה בניתי את המשחק עם שתי פונקציות פשוט .
    אחת שהיא בעצם המשחק : המשתמש בוחר פרמטרים, אורך הספרה , מספר ערכי המספרים שיכולים להיות בספרה (אם הוא בחר 3 לדוגמא אז הספרה יכולה להכיל רק את הספרות 0 1 2 ), ואת מספר הניחושים שיש לאותו משחק .
    ופונקציה שנייה שהיא בעצם שואלת האם אתה מעוניין בעוד משחק אחרי שהמשחק הראשון נגמר .

    עכשיו איפה הבעיה ..
    ברגע שאני עושה משחק אחד והוא נגמר הכול טוב ויפה . אבל שאני בוחר באפשרות של עוד משחק .. מתחילות הבעיות :1. אם אני נגיד מנצח ביותר ממשחק אחד עדיין ערך שיופיע בניצחות הוא 1 , כאילו זה לא מתעדכן.
    2. אם אני בוחר באופציה של משחק חדש עם אותם פרמטרים, זה עדיין מבקש ממני להכניס פרמטרים למרות שזה לא צריך אלא זה צריך להיות אותם פרמטרים כמו הסיבוב הקודם .

    אשמח אם תוכל לעזורלי.




  16. #15
    משתמש כבוד
    מנעל בטמיחה תחנית
    האוואטר של DooDeLzZz
    שם פרטי
    וולפגנג
    תאריך הצטרפות
    11/2008
    גיל
    13
    הודעות
    7,613
    לייקים
    605
    נקודות
    1,159

    ברירת מחדל

    ציטוט נכתב במקור על ידי Par4n0iA צפיה בהודעה
    קוד:
     import java.util.Scanner;
    import il.ac.huji.cs.intro.mastermind.*;
    public class ex3 {
        static int length;
        static int values;
        static int Maxguesses;
        static double roundGame=1;
        static int gameNumber=1;
        static int gameWon;
        static double winRate=0;
        static double averagewin=0;
        
        public ex3(){
            this.gameWon++;
            this.gameNumber++;
        }
        public static void gameplay(){
            MastermindUI ui = MastermindUIFactory.newMastermindUI();
            int length=ui.askNumber("Enter the length of the code");
            while(length<0)
            {
                ui.displayErrorMessage(" you enter a negative length, (you must enter a positive values)");
                 length=ui.askNumber("Enter the length of the code");
            }
            int values=ui.askNumber("Enter the number of possible values in the code");
            while(values<0)
            {
                 ui.displayErrorMessage(" you enter a negative values, (you must enter a positive values)");
                 values=ui.askNumber("Enter the values of the code");
            }
            int Maxguesses=ui.askNumber("Enter the maximal number of guesses per game.");
            while(Maxguesses<0)
            {
                ui.displayErrorMessage(" you enter a negative number of Maxguesses, (you must enter a positive values)");
                Maxguesses=ui.askNumber("Enter the maximal number of guesses per game.");
            }
            Code code = CodeGenerator.newCode(length,values);
            Code guess=ui.askGuess("enter your guesses",length);
            Maxguesses--;
            
            
            System.out.println("the random code is:" +code.toString());
            double roundGame=1;
            int gameNumber=1;
            int gameWon=0;
            double winRate=0;
            double averagewin=0;
            while(Maxguesses>0 && gameWon==0)
            {
                if(guess.equals(code)==true)
                    ex3.gameWon++;
                
                else
                {
                    guess=ui.askGuess("enter other guesses",length);
                    roundGame++;
                    Maxguesses--;
                    
                }
            }
            if(guess.equals(code)==true)
                ex3.gameWon++;
            if(ex3.gameWon!=0)
                 ui.displayMessage("You Win the game");        
            else
                if(Maxguesses==0 && ex3.gameWon==0 )
                    ui.displayMessage("You Lose the game");
            }
            
        public static void noChange(){
            MastermindUI ui = MastermindUIFactory.newMastermindUI();
            Code code = CodeGenerator.newCode(ex3.length,ex3.values);
            Code guess=ui.askGuess("enter your guesses",ex3.length);
            Maxguesses--;
            
            
            System.out.println("the random code is:" +code.toString());
            double roundGame=1;
            int gameNumber=1;
            ex3.gameWon=0;
            double winRate=0;
            double averagewin=0;
            while(Maxguesses>0 && ex3.gameWon==0)
            {
                if(guess.equals(code)==true)
                    ex3.gameWon++;
                
                else
                {
                    guess=ui.askGuess("enter other guesses",length);
                    roundGame++;
                    Maxguesses--;
                    
                }
            }
            if(guess.equals(code)==true)
                ex3.gameWon++;
            if(ex3.gameWon!=0)
                 ui.displayMessage("You Win the game");        
            else
                if(Maxguesses==0 && ex3.gameWon==0 )
                    ui.displayMessage("You Lose the game");
            
            
            if(guess.equals(code)==true)
                ex3.gameWon++;
            if(ex3.gameWon!=0)
                 ui.displayMessage("You Win the game");        
            else
                if(Maxguesses==0 && ex3.gameWon==0 )
                    ui.displayMessage("You Lose the game");
            }
        
    
        public static void moreGame(){
            MastermindUI ui = MastermindUIFactory.newMastermindUI();
            winRate=ex3.gameWon/gameNumber;
            if(ex3.gameWon==0)
                averagewin=Double.NaN; 
            else
               averagewin=roundGame/ex3.gameWon;
            boolean moreGame=ui.askYesNo("You want play another game?");
            if(moreGame==false)
            {
                ui.showStats(ex3.gameNumber, ex3.gameWon, winRate, averagewin);
                ui.close();
            }
            else
            {
                boolean change=ui.askYesNo("are you want changing the game parameters");
                if(change==true)
                {
                    ex3.gameNumber++;
                    ui.displayMessage("Please enter the new prameters");
                    gameplay();
                }
                if(change==false)
                {
                ui.clear();
                
                }
                
            gameplay();
            moreGame();
    
        }
    
    }
    }
    אוקיי תראה בניתי את המשחק עם שתי פונקציות פשוט .
    אחת שהיא בעצם המשחק : המשתמש בוחר פרמטרים, אורך הספרה , מספר ערכי המספרים שיכולים להיות בספרה (אם הוא בחר 3 לדוגמא אז הספרה יכולה להכיל רק את הספרות 0 1 2 ), ואת מספר הניחושים שיש לאותו משחק .
    ופונקציה שנייה שהיא בעצם שואלת האם אתה מעוניין בעוד משחק אחרי שהמשחק הראשון נגמר .

    עכשיו איפה הבעיה ..
    ברגע שאני עושה משחק אחד והוא נגמר הכול טוב ויפה . אבל שאני בוחר באפשרות של עוד משחק .. מתחילות הבעיות :1. אם אני נגיד מנצח ביותר ממשחק אחד עדיין ערך שיופיע בניצחות הוא 1 , כאילו זה לא מתעדכן.
    2. אם אני בוחר באופציה של משחק חדש עם אותם פרמטרים, זה עדיין מבקש ממני להכניס פרמטרים למרות שזה לא צריך אלא זה צריך להיות אותם פרמטרים כמו הסיבוב הקודם .

    אשמח אם תוכל לעזורלי.
    אם תקרא טוב את התגובה שלי, הסברתי לך איפה הטעות.
    אני יתייחס לקוד שכתוב בתגובה מס' 5 כי הוא נכון אבל צריך קצת שיפורים.
    הבעיה שלך היא שבפעולה של ההגרלה אתה אומר לו להכניס פרמטרים (בתחילת הפעולה הוא מכניס ובסוף הפעולה יש את ההגרלה). תיקח את ההתחלה את כל הקטע שהוא מכניס פרמטרים ותשים בפעולה נפרדת. הבעיה הראשונה היא בגלל שהמשתנה code הוא בעצם משתנה מקומי שאתה כל הזמן מאפס ל0. זה לא שהוא לא מתעדכן, אתה מאפס אותו כל הזמן. את השורה "Code code = CodeGenerator.newCode(length,values);" תמחק מכל מקום שבה היא קיימת ותוסיף אותה שתופיע פעם אחת בכל הקוד ברמת המחלקה.


    בתגובתכם להודעותיי, אנא מכם, לחצו על הכפתור "ציטוט ההודעה" שנמצא מתחת לשורה זו.


+ תגובה לנושא
עמוד 1 מתוך 2 12 אחרון >>


הרשאות פרסום

  • אין באפשרותך לפרסם נושאים חדשים
  • אין באפשרותך לפרסם תגובות
  • אין באפשרותך לצרף קבצים
  • אין באפשרותך לערוך את הודעותיך


כל הזמנים הם לפי GMT +3. השעה כרגע היא 13:52.
מופעל על ידי vBulletin™ © גרסה 4.1, 2011 vBulletin Solutions, Inc. כל הזכויות שמורות.
פעילות הגולשים
אומנות וגרפיקה
מוזיקה
ספורט
סדרות טלוויזיה
סרטים וקולנוע
קנייה ומכירה
רשתות חברתיות
הבורר 3
פורומי פנאי ובידור
סרטים
סדרות
משחקים
דיבורים
אקטואליה
בעלי חיים
בדיחות והומור
משחקי ספורט
הבורר
מחשבים וטכנולוגיה
תמיכה טכנית
חומרה ומודינג
תוכנות להורדה
סלולארי וגאדג'טים
רקעים למחשב
ציוד הקפי למחשב
אבטחת מידע
תכנות ובניית אתרים
כסף ברשת
אייפון
בריאות ואורח חיים
כושר ופיתוח גוף
דיאטה
צבא וגיוס
יעוץ מיני
מה שבלב
אומנות הפיתוי
יהדות
מיסטיקה ורוחניות
אתאיזם ודתות

נושאים: 2,450,080 | הודעות: 8,150,662 | משתמשים: 315,603 | המשתמש החדש ביותר: upizijoj | עיצוב גרפי: סטודיו עודד בביוף | קידוד: rellect