欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++實(shí)現(xiàn)投骰子的隨機(jī)游戲

 更新時(shí)間:2022年04月01日 08:12:27   作者:黑盒子Key  
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)投骰子的隨機(jī)游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了C++實(shí)現(xiàn)投骰子的隨機(jī)游戲的具體代碼,供大家參考,具體內(nèi)容如下

每個(gè)骰子有六面,點(diǎn)數(shù)分別為1、2、3、4、5、6。游戲者在程序開(kāi)始時(shí)輸入一個(gè)無(wú)符號(hào)整數(shù),作為產(chǎn)生隨機(jī)數(shù)的種子。

每輪投兩次骰子,第一輪如果和數(shù)為7或11則為勝,游戲結(jié)束;和數(shù)為2、3或12則為負(fù),游戲結(jié)束;和數(shù)為其它值則將此值作為自己的點(diǎn)數(shù),繼續(xù)第二輪、第三輪…直到某輪的和數(shù)等于點(diǎn)數(shù)則取勝,若在此前出現(xiàn)和數(shù)為7則為負(fù)。

rand函數(shù)

函數(shù)原型:int rand(void);
所需頭文件:
功能和返回值:求出并返回一個(gè)偽隨機(jī)數(shù)

srand函數(shù)

void srand(unsigned int seed);
參數(shù):seed產(chǎn)生隨機(jī)數(shù)的種子
所需頭文件:
功能:為使rand()產(chǎn)生一序列偽隨機(jī)整數(shù)而設(shè)置起始點(diǎn)。使用1作為seed參數(shù),可以重新初化rand()。

#include <iostream>
#include <cstdlib>
using namespace std;

enum GameStatus { WIN,LOSE,PLAYING };
?int main() {
? ?int sum, myPoint;
? ?GameStatus status;
? ?unsigned seed;
? ?int rollDice();
? ?cout<<"Please enter an unsigned integer:";
? ?cin >> seed; //輸入隨機(jī)數(shù)種子
? ?srand(seed); //將這個(gè)種子傳遞給rand()
? ?sum = rollDice(); //第一輪投骰子、計(jì)算和數(shù)

? ? switch (sum) {
? ? case 7: ?//如果和數(shù)為7或11則為勝,狀態(tài)為WIN
? ? case 11:
? ? ? status = WIN;
? ? ? break;
? ? ?case 2: ?//和數(shù)為2、3或12則為負(fù),狀態(tài)為L(zhǎng)OSE
? ? ?case 3:
? ? ?case 12:
? ? ? ? status = LOSE;
? ? ? ? break;
? ? ? default; ?//其他情況,尚無(wú)結(jié)果,狀態(tài)為PLAYING,記下點(diǎn)數(shù)
? ? ? ? status = PLAYING;
? ? ? ? myPoint = sum;
? ? ? ? cout << "point is " << myPoint <<endl;
? ? ? ? break;
? ? ? }

? ? ? while (status == PLAYING) { ?//只要狀態(tài)為PLAYING,繼續(xù)
? ? ? ? sum = rollDice();
? ? ? ? if (sum == myPoint) ?//某輪的和數(shù)等于點(diǎn)數(shù)則取勝
? ? ? ? ? status = WIN;
? ? ? ? else if(sum == 7) ?//出現(xiàn)和數(shù)為7則為負(fù)
? ? ? ? ? status = LOSE
? ? ? ? }

? ? ? ? //當(dāng)狀態(tài)不為PLAYING時(shí)循環(huán)結(jié)束,輸出游戲結(jié)果
? ? ? ? if (status == WIN)
? ? ? ? ? cout ?<< "player wins" << endl;
? ? ? ? else
? ? ? ? ? cout << "player loses" << endl;
? ? ? ? ?return 0;
? ? ? ?}
? ??
? ? ? ?//投骰子、計(jì)算和數(shù)、輸出和數(shù)
? ? ? ?int rollDice() {
? ? ? ? ?int die1 = 1 + rand() % 6; ?//讓一個(gè)在整個(gè)整數(shù)范圍內(nèi)的數(shù),取1至6之間。除以6取余數(shù),這個(gè)數(shù)則會(huì)在0到5之間,再加上1,這個(gè)數(shù)就移動(dòng)到1至6之間了。
? ? ? ? ?int die2 = 1 + rand() % 6;
? ? ? ? ?int sum = die1 + die2;
? ? ? ? ?cout << "player rolled" << die1 << " + " <<
? ? ? ? ?die2 << " = " << sum << endl;
? ? ? ? ?return sum;
}

之前小編收藏了一段投骰子的相關(guān)代碼,分享給大家,也感謝原作者

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
?
?
int main()
{
?? ?int winCount, lostCount;?
?? ?int first, second;
?? ?int target;
?? ?char input;
?
?? ?winCount=lostCount=0;
?
?? ?srand(time(0));
?? ?first=rand()%6+1;
?? ?second=rand()%6+1;
?
?? ?printf("%d %d\n",first,second);
?
?
?? ?target=first+second;
?
?? ?if(target==7 || target==11)
?? ?{
?? ??? ?printf("you win\n");
?? ??? ?winCount++;
?? ?}
?? ?else
?? ?{
?? ??? ?if(target==2 || target==3 || target==12)
?? ??? ?{
?? ??? ??? ?printf("you lost\n");
?? ??? ??? ?lostCount++;
?? ??? ?}
?? ??? ?else
?? ??? ?{
?? ??? ??? ?printf("proceed or not?");
?? ??? ??? ?input=getchar();
?
?? ??? ??? ?while(input=='Y' || input=='y')
?? ??? ??? ?{
?? ??? ??? ??? ?first=rand()%6+1;
?? ??? ??? ??? ?second=rand()%6+1;
?
?? ??? ??? ??? ?printf("%d %d\n",first,second);
?? ?
?? ??? ??? ??? ?if(target==first+second){
?? ??? ??? ??? ??? ?printf("you win\n");
?? ??? ??? ??? ??? ?winCount++;
?? ??? ??? ??? ?}
?? ??? ??? ??? ?else
?? ??? ??? ??? ??? ?if (first+second==7){
?? ??? ??? ??? ??? ??? ?printf("you lost\n");
?? ??? ??? ??? ??? ??? ?lostCount++;
?? ??? ??? ??? ??? ?}
?? ??? ??? ??? ?
?? ??? ??? ??? ?printf("proceed or not?");
?? ??? ??? ??? ?getchar();
?? ??? ??? ??? ?input=getchar();
?? ??? ??? ?}
?? ??? ?}
?? ?}
?
?? ?printf("win=%d, lost=%d\n",winCount, lostCount);
?? ?return 0;
?
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論