26 Writing & Using Getter Methods

学习用C++开发你的第一个游戏(英文)

// FBullCowGame.h
#pragma once
# include <string>

class FBullCOwGame {
public:
	void Reset(); //ToDo make a more rich return value.
	int GetMaxTries();
	int GetCurrentTry();
	bool IsGameWon();
	bool CheckGuessValidity(std::string); // ToDo make a more rich return value.

	// Please try and ignore this and focus on the interface above
private:
	int MyCurrentTry = 1;
	int MyMaxTries = 5;
};
// FBullCowGame.cpp
#include "FBullCowGame.h"

void FBullCOwGame::Reset()
{
	return;
}

int FBullCOwGame::GetMaxTries()
{
	return MyMaxTries;
}

int FBullCOwGame::GetCurrentTry()
{
	return MyCurrentTry;
}

bool FBullCOwGame::IsGameWon()
{
	return false;
}

bool FBullCOwGame::CheckGuessValidity(std::string)
{
	return false;
}

// CowBull.cpp重命名为Main.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
# include <iostream>
# include <string>      // 引入string 库
# include "FBullCowGame.h"


void PrintIntro();
void PlayGame();
std::string GetGuess();
bool AskToPlayAgain();
FBullCOwGame BCGame;	// instantiate a new game

// 程序的入口
int main()
{
	bool bPlayAgain = false;
	do
	{
		PrintIntro();

		PlayGame();

		bPlayAgain = AskToPlayAgain();
	} while (bPlayAgain);

    return 0;
}

void PlayGame()
{

	int MaxTries = BCGame.GetMaxTries();
	std::cout << MaxTries << std::endl;

	// 可猜测的循环次数
	for (int cout = 1; cout <= MaxTries; ++cout)
	{
		 std::string Guess = GetGuess();
		 std::cout << "Your guess was: " << Guess << std::endl;
		 std::cout << std::endl;
	}
}

// 介绍游戏
void PrintIntro()
{
	constexpr int WORLD_LENGTH = 9; // 定义一个变量让单词的长度可变
	std::cout << "Welocm to Bulls and Cows, a fun word game." << std::endl;
	std::cout << "Can you guess the " << WORLD_LENGTH;
	std::cout << " letter isogram I'm thinking of?\n";
	std::cout << std::endl;
	return;
}

// 让玩家猜一个
std::string GetGuess()
{
	int CurrentTry = BCGame.GetCurrentTry();
	std::cout << "Try" << CurrentTry << ".输入你猜测的结果: ";
	std::string Guess = "";
	std::getline(std::cin, Guess);

	return Guess;
}

bool AskToPlayAgain()
{
	std::cout << "你想再玩一次吗?(Y/N)";
	std::string Response = "";
	std::getline(std::cin, Response);
	return (Response[0] == 'y')|| (Response[0] == 'Y');
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值