用C 的類完成玩骰子的遊戲

2021-07-28 12:08:29 字數 3134 閱讀 4217

我們生活中隨處可見的玩骰子遊戲,那麼我們用c++的類實現出來時會是怎麼樣呢?

首先,是得到乙個1-6之間隨機數的寫法

random.h

#ifndef random__h__

#define random__h__

using

namespace

std;

#include

#include

class random

;#endif

random.cpp

#include"random.h"

random::random()

unsigned random::get_random_num(int top) const

接著是對這個隨機數的一些封裝的操作:

roll.h

#ifndef   roll__h__

#define roll__h__

#include"random.h"

using namespace std;

class roll

;#endif

roll.cpp

#include "roll.h"

#include "random.h"

intconst roll::default_num = 6;

intconst roll::min_default_num = 2;

roll::roll(int num)

: number_of_sides(num < min_default_num ? default_num : num)

unsigned int roll::generate_face_value() const

roll::roll(const roll& r)

: number_of_sides(r.number_of_sides)

, face_value(r.face_value)

roll& roll::toss()

int roll::get_number_of_sides() const

unsigned roll::get_face_value()const

int roll::get_default_num()

然後是建立乙個人玩遊戲的類,這個人可以玩多個骰子,但最少必須玩2個,還要獲得他玩骰子的總和點數。

peolpleroll.h

#ifndef peopleroll__h__

#define people__h__

#include"roll.h"

class

peopleroll

;#endif

peopleroll.cpp

#include"peopleroll.h"

#include

intconst peopleroll::default_number_of_peopleroll = 2;

intconst peopleroll::min_number_of_peopleroll = 1;

peopleroll::peopleroll(int number) //sides表示獲得的隨機點數

:number_of_roll(number < min_number_of_peopleroll ? default_number_of_peopleroll:number)

}peopleroll::~peopleroll()

delete ptrroll;

}const peopleroll& peopleroll::fun()const

return *this;

}unsigned peopleroll::get_roll_value(int index)const

int peopleroll::get_number_of_sides()const

int peopleroll::get_number_of_roll()const

unsigned peopleroll::get_total_of_roll()const

return total;

}

最後則是用類封裝乙個人玩遊戲類,便於函式的操作。

rollview.h

#ifndef rollview__h__

#define rollview__h__

class peopleroll;

class rollview

void display()const; //列印出這個人各個骰子的點數

private:

peopleroll& ref_people_roll; //使用預設建構函式建立乙個人玩骰子的函式

};#endif

rollview.cpp

#include

#include"peopleroll.h"

#include"rollview.h"

void rollview::display()const

cout << "total = "

<< ref_people_roll.get_total_of_roll() << endl;

}

最後就是main函式了,最好寫乙個輸入輸出的函式,是main函式看上盡量簡單易懂。

下面的空格是自己專門加上的,為的是顯示好看。

test.cpp

#include

#include"rollview.h"

#include"peopleroll.h"

void display(const peopleroll& temp, const rollview& view)

int main()

本文借鑑於eric nagler的《c++大學教程》第三版,

侯普秀,曹振新譯。

是一本很好的書,很系統的講解了c++期間應該學會的操作。

用c 完成猜數字遊戲

題目樣式 產生0到100之間的隨機數字可以用以下語句 random rdm new random int guess rdm.next 0,101 思路 先設乙個開關,是否要執行,是就輸入 1 否則的話輸入 0 然後根據這個隨機數字guess,使用者輸入的的值賦值給input,用do while語句...

投骰子的隨機遊戲

投骰子的隨機遊戲 每個骰子有六面,點數分別為 1 2 3 4 5 6。遊戲者在程式開始時輸入乙個無 符號整數,作為產生隨機數的種子。每輪投兩次骰子,第一輪如果和數為 7 或 11 則為勝,遊戲結束 和數為 2 3 或 12 則為負,遊戲結束 和數為其它值則將此值作為自己的點數,繼續第二輪 第三輪 直...

用C語言完成猜數字小遊戲

猜數字小遊戲是我人生中第一次寫的遊戲,通過這個遊戲初步理解到了c語言的趣味性以及簡單遊戲的基本框架,有點激動,廢話不多說先把 貼出來 define crt secure no warnings include include include void menu void game if input ...