0

بازی شانس

 
hirsa_sh
hirsa_sh
کاربر برنزی
تاریخ عضویت : آبان 1389 
تعداد پست ها : 106
محل سکونت : کرمانشاه

بازی شانس

يكي از بازي‌هاي مورد علاقه در بسياري از نقاط جهان، بازي بنام craps است كه با طاس انجام مي‌شود. حال به قوانين اين بازي توجه كنيد:

بازيكن دو طاس مي‌اندازد و هر طاس داراي شش وجه است. اين وجه‌ها متشكل از 6 يا 5، 4، 3، 2، 1 نقطه هستند. پس از رها كردن طاس‌ها، مجموع نقاط موجود بر روي هر طاس محاسبه مي‌شود. اگر مجموع برابر 7 يا 11 در اولين پرتاب طاس‌ها باشد، بازيكن پرتاب كننده، برنده خواهد شد. اگر مجموع 2، 3 يا 12 در اولين پرتاب طاس‌ها باشد، بازيكن پرتاب كننده بازنده خواهد بود. اگر مجموع نقاط 10 يا 9، 8، 6، 5، 4 در اولين پرتاب طاس باشد، اين مجموع تبديل به امتياز بازيكن خواهد شد. براي برنده شدن، بازيكن بايد به پرتاب طاس‌ها ادامه دهد تا به امتياز تعيين شده دست يابد. اگر بازيكن مقدار 7 را بعد از امتيازگيري بدست آورد، بازنده مي‌شود.

شبيه‌سازي اين بازي در برنامه زیر ارائه شده است. دقت كنيد كه بازيكن بايد دو طاس را در اولين پرتاب و تمام پرتاب‌هاي بعدي بكار گيرد. 

1      // Fig. 6.11: fig06_11.cpp

2      // Craps simulation.

3      #include <iostream>

4      using std::cout;

5      using std::endl;

6       

7      #include <cstdlib> // contains prototypes for functions srand and rand

8      using std::rand;

9      using std::srand;

10    

11   #include <ctime> // contains prototype for function time

12   using std::time;

13    

14   int rollDice(); // rolls dice, calculates amd displays sum

15    

16   int main()

17   {

18      // enumeration with constants that represent the game status

19      enum Status { CONTINUE, WON, LOST };

20    

21      int myPoint; // point if no win or loss on first roll

22      Status gameStatus; // can contain CONTINUE, WON or LOST

23    

24      // randomize random number generator using current time

25      srand( time( 0 ) );

26    

27      int sumOfDice = rollDice(); // first roll of the dice

28    

29      // determine game status and point (if needed) based on first roll

30      switch ( sumOfDice )

31      {

32         case 7: // win with 7 on first roll

33         case 11: // win with 11 on first roll          

34            gameStatus = WON;

35            break;

36         case 2: // lose with 2 on first roll

37         case 3: // lose with 3 on first roll

38         case 12: // lose with 12 on first roll            

39            gameStatus = LOST;

40            break;

41         default: // did not win or lose, so remember point

42            gameStatus = CONTINUE; // game is not over

43            myPoint = sumOfDice; // remember the point

44            cout << "Point is " << myPoint << endl;

45            break; // optional at end of switch 

46      } // end switch

47    

48      // while game is not complete

49      while ( gameStatus == CONTINUE ) // not WON or LOST

50      {

51         sumOfDice = rollDice(); // roll dice again

52    

53         // determine game status

54         if ( sumOfDice == myPoint ) // win by making point

55            gameStatus = WON;

56         else

57            if ( sumOfDice == 7 ) // lose by rolling 7 before point

58               gameStatus = LOST;

59      } // end while

60    

61      // display won or lost message

62      if ( gameStatus == WON )

63         cout << "Player wins" << endl;

64      else

65         cout << "Player loses" << endl;

66    

67      return 0; // indicates successful termination

68   } // end main

69    

70   // roll dice, calculate sum and display results

71   int rollDice()

72   {

73      // pick random die values

74      int die1 = 1 + rand() % 6; // first die roll

75      int die2 = 1 + rand() % 6; // second die roll

76      

77      int sum = die1 + die2; // compute sum of die values.

78    

79      // display results of this roll

80      cout << "Player rolled " << die1 << " + " << die2

81         << " = " << sum << endl;

82      return sum; // return sum of dice

} // end function rollDice 

یک شنبه 7 آذر 1389  12:10 AM
تشکرات از این پست
jooker
دسترسی سریع به انجمن ها