الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

لمحاكاة لعبة السلوت ( Slot Machine) ماشين و لعبة ضربة حظ

بدأه Gigaman في 30 نوفمبر 2009 · 4 رد · 1,058 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم و رحمه الله و بركاتة

مطلوب لدي تصميم برنامج لمحاكاة لعبة السلوت ( Slot Machine) ماشين و لعبة ضربة حظ

انظر الصورة

Cherry_Red_Slots.jpg

120-300.jpg

و المطلوب تصميم اللعبة بشكل نصي (Text based)

طريقة العمل

يدخل اللاعب مبلغ ١٠٠ دولار مثلا

كل محاولة لها سعر ربع دولار (0.25) و يعادل ٢٥ سنتا و الدولار

في يستطيع ان يراهن اللاعب على اي مبلغ شريطة يكون اقل مبلغ الصندوق

اذا طلع الناتج :

كرز كرز كرز = قيمة الرهن * ٩

عنب عنب عنب = قيمة الرهن * ٨

موز موز موز = قيمة الرهن * ٧

مختلف = يخسر قيمة الرهن

مغ اني حللت البرنامج بشكل صحيح

ما اجهله الان استخدام الكلاسس في البرمجة في الجافا

و برمجة الكائنات لا تزال معقدتني

كل ما اريده كيف تصميم الكلاسات و استدعائها

لا احد يقولي لعبة قمار و هذي حرام لان مو ذنبي من المدرس الي قال حلوا الواجب من الكتاب

الهدف من البرنامج التعامل مع الارقام العشوائية و طريقة استدعاء الكلاسات و ادخال المدخلات و اخراج المخرجات و التعامل الحلقات الشرطيه IF statements

post-1386-1223033542.jpg
#2

ضع محاولتك وما الذي تريد عمله بالضبط

وسوف نساعدك

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#3
علاء الصالحي كتب:

ضع محاولتك وما الذي تريد عمله بالضبط

وسوف نساعدك

تحياتي

اشكرك يا اخ علاء

مشكلتي حاليا في عدم معرفة التعامل مع DO - WHILE

فأريد من المستخدم ان يضع كاش مثلا 1000 دولار

و كل محاولة يفحص الكاش

و يضع اللاعب قيمة الرهن و يخصم من الكاش و اذا فاز يضاعف الكاش بحسب الشروط

مثلا كرز كرز كرز * 10

عنب كرز كرز *9

....................

.....................

المثال الخطأ موجود

slotmachine.txt

post-1386-1223033542.jpg
#4
/**
 * Your code was very week, I changed it all for you, but I didn't test it properly.
 * If there is any mistake that you can't fix let me know. 
 * I hope it's clear and helpful for you
 */


import java.util.HashMap;
import java.util.Map;
import java.util.Random;
import java.util.Scanner;


public class Casino {

    public static final String BELL = "Bell";
    public static final String GRAPE = "Grape";
    public static final String CHERRY = "Cherry";

    private Map<Integer, String> choicesMap = new HashMap<Integer, String>();
    private int [] resultArray = new int[3];
    private int balance;
    private int winLossValue;
    private int betValue = 1;
    Random slot1, slot2, slot3;


    public Casino()
    {
        initChoicesMap();
        slot1 = new Random();
        slot2 = new Random();
        slot3 = new Random();
    }


    public void initChoicesMap()
    {
        choicesMap.put(1, BELL);
        choicesMap.put(2, GRAPE);
        choicesMap.put(3, CHERRY);
    }


    public void roll()
    {

         int vslot1 = slot1.nextInt(3) + 1;
         int vslot2 = slot2.nextInt(3) + 1;
         int vslot3 = slot3.nextInt(3) + 1;

         resultArray[0] = vslot1;
         resultArray[1] = vslot2;
         resultArray[2] = vslot3;
    }

    public int getWinLoss()
    {

        int win = 0;
        if(resultArray[0] == 1 &&  resultArray[1] == 1 && resultArray[2] == 1)
        {
            win = betValue * 10;
        }
        if(resultArray[0] == 2 &&  resultArray[1] == 2 && resultArray[2] == 2)
        {
            win = betValue * 7;
        }
        if(resultArray[0] == 3 &&  resultArray[1] == 3 && resultArray[2] == 3)
        {
            win = betValue * 5;
        }

        winLossValue = win - betValue;
        //System.out.println("Getting win loss: " + win + " : " + betValue + " : " + winLossValue);
        balance += winLossValue;
        return winLossValue;
    }

    public void printRollValue()
    {
        StringBuilder builder = new StringBuilder();
        builder.append("===============================\n");
        builder.append("===============================\n");
        builder.append(" = = = = = = = = = = = = = = =\n");
        builder.append(" = = ");
        builder.append(choicesMap.get(resultArray[0]));
        builder.append(" = ");
        builder.append(choicesMap.get(resultArray[1]));
        builder.append(" = ");
        builder.append(choicesMap.get(resultArray[2]));
        builder.append(" = = \n");
        builder.append(" = = = = = = = = = = = = = = =\n");
        builder.append("===============================\n");
        builder.append("===============================");

        System.out.println(builder.toString());

    }

    public void printResult()
    {
        getWinLoss();
        StringBuilder builder = new StringBuilder();
        //System.out.println("Win loss: " + winLossValue);
        if(winLossValue > 0)
        {
            builder.append("Congratulations you won " + winLossValue + "$\n");

        }
        else
        {
            builder.append("You lost... Try again\n");
        }
        builder.append("Balance: ");
        builder.append(balance);
        System.out.println(builder.toString());
    }

    public void printMainMenu()
    {
         StringBuilder builder = new StringBuilder();
         builder.append("[1] Check Balance\n");
         builder.append("[2] Deposit Money\n");
         builder.append("[3] Withdraw Money\n");
         builder.append("[4] Change Bet Value\n");
         builder.append("[5] Play Slot\n");
         builder.append("[6] Exit");

         System.out.println(builder.toString());

    }

    public void getUserChoice()
    {
        Scanner input = new Scanner(System.in);
        int choice = 0;
        printMainMenu();

        System.out.println("Select your choice: ");
        try{

            choice = input.nextInt();
            if(choice < 1 || choice > 6)
            {
                System.out.println("Input must be a positive integer between 1 and 6");
                getUserChoice();
            }
            else
            {
                if(choice == 1)
                {
                    checkBalance();
                    getUserChoice();
                }
                if(choice == 2)
                {
                    deposit();
                    getUserChoice();
                }
                if(choice == 3)
                {
                    withdraw();
                    getUserChoice();
                }
                if(choice == 4)
                {
                    changeBetValue();
                    getUserChoice();
                }
                if(choice == 5)
                {
                    play();
                    getUserChoice();
                }
                if(choice == 6)
                {
                    System.out.println("Exiting ...");
                    return;
                }
            }
        }
        catch(ArithmeticException ae)
        {
            System.out.println("Input must be a positive integer between 1 and 6");
            getUserChoice();
        }

    }

    public void checkBalance()
    {
        System.out.println("Balance: " + balance);
    }

    public void deposit()
    {
        Scanner input = new Scanner(System.in);
        int value = 0;
        System.out.println("Insert value: ");
        try
        {
            value = input.nextInt();
            if(value >= 0)
            {
                balance += value;
            }
            else
            {
                System.out.println("Value must be a positive integer or zero to exit");
                deposit();
            }
        }
        catch(ArithmeticException ae)
        {
            System.out.println("Value must be a positive integer or zero to exit");
            deposit();
        }

    }

    public void withdraw()
    {
        balance = 0;
        System.out.println("Balance: " + balance);

    }

    public void changeBetValue()
    {
        System.out.println("Current bet value: " + betValue);
         Scanner input = new Scanner(System.in);
        int value = 0;
        System.out.println("Insert new bet value: ");
        try
        {
            value = input.nextInt();
            if(value > balance || value <= 0)
            {
                System.out.println("Bet value must be positive integer smaller than your balance");
                changeBetValue();
            }
            else
            {
                betValue = value;
            }

        }
        catch(ArithmeticException ae)
        {
            System.out.println("Bet value must be positive integer smaller than your balance");
                changeBetValue();
        }
    }

    public void play()
    {
        if(balance > 0 && balance >= betValue)
        {
            System.out.println("Rolling ...");
            roll();
            printRollValue();
            printResult();
        }
        else
        {
            System.out.println("Can't play, check your balance");
        }
    }

    public void run()
    {
        System.out.println("WELCOME TO CASINO SLOT MACHINE");
        getUserChoice();

    }


     /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {

        Casino casino = new Casino();
        casino.run();
    }


}
#5

هل حلت المشكلة مع مشاركة الأخ NullOne وفت بالغرض؟

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…