《C++游戏编程入门》第1章 类型、变量与标准I/O: Lost Fortune

130 篇文章 4 订阅
92 篇文章 18 订阅
本文详细介绍了C++编程的入门内容,包括使用C++编写游戏、生成可执行文件、错误处理、算术运算、声明和初始化变量、使用常量,以及实际应用如LostFortune游戏中的代码示例。
摘要由CSDN通过智能技术生成

1.1.1 使用C++编写游戏

原因:
一、高速。高性能。
二、灵活。包括面向对象编程的多范型语言。
三、良好支持。大量资源库可使用,图像API、2D、3D、物理以及声音引擎。

1.1.2 生成可执行文件

编辑器->源代码->编译器->目标代码->链接器->可执行文件

1.1.3 错误处理

类型:
一、编译错误。语法错误,应修复警告。
二、链接错误。无法找到外部引用,调整引用关系,重新编译/链接。
三、运行错误。非法操作,逻辑错误等。

1.2 第一个C++程序

01.game_over.cpp
// 预处理器指令以#符号开头
// 包含头文件
#include <iostream>

int main() // 主函数
{
	// std名称空间
	//::作用域解析运算符
	// 所有语句以;结尾
	std::cout << "Game Over!" << std::endl; // 标准输出
	return 0;								// 0表示程序正常结束
}

// 注释
/*
注释
注释
*/

// 空白字符(空格、制表符、换行符)用于分隔代码块,会被编译器忽略
01.game_over2.cpp
#include <iostream>
using namespace std;//使用using指令

int main()
{
	cout << "Game Over!" << endl;
	return 0;
}
01.game_over3.cpp
#include <iostream>
using std::cout;//使用using声明
using std::endl;

int main()
{
	cout << "Game Over!" << endl;
	return 0;
}

1.4 使用算术运算符

01.expensive_calculator.cpp
#include <iostream>
using namespace std;

int main()
{
//加法、加法与乘法
	cout << "7 + 3 = " << 7 + 3 << endl;
	cout << "7 - 3 = " << 7 - 3 << endl;
	cout << "7 * 3 = " << 7 * 3 << endl;

	cout << "7 / 3 = " << 7 / 3 << endl;//整数除法取整
	cout << "7.0 / 3.0 = " << 7.0 / 3.0 << endl;//除法,至少一个浮点数,保留小数位

	cout << "7 % 3 = " << 7 % 3 << endl;//余数

	cout << "7 + 3 * 5 = " << 7 + 3 * 5 << endl;
	cout << "(7 + 3) * 5 = " << (7 + 3) * 5 << endl;//运算符优先级

	return 0;
}

1.5 声明和初始化变量

01.game_stats.cpp
#include <iostream>
using namespace std;

int main()
{
	int score; // 变量声明
	double distance;
	char playAgain;
	bool shieldsUp;

	short lives, aliensKilled; // 变量声明

	score = 0;
	distance = 1200.76;
	playAgain = 'y';
	shieldsUp = true;
	lives = 3;
	aliensKilled = 10; // 变量赋值

	double engineTemp = 6572.89; // 变量初始化

	cout << "\nscore: " << score << endl; // 显示变量值
	cout << "distance: " << distance << endl;
	cout << "playAgain: " << playAgain << endl;
	// skipping shieldsUp since you don't generally print Boolean values
	cout << "lives: " << lives << endl;
	cout << "aliensKilled: " << aliensKilled << endl;
	cout << "engineTemp: " << engineTemp << endl;

	int fuel;
	cout << "\nHow much fuel? ";
	cin >> fuel; // 获取用户输入
	cout << "fuel: " << fuel << endl;

	typedef unsigned short int ushort; // 定义新变量名
	ushort bonus = 10;
	cout << "\nbonus: " << bonus << endl;

	return 0;
}

// 基本类型
// bool, char, int, float, double

// 类型修饰符
// short, long, signed, unsigned

// 变量命名
// 字母,数字,下划线(非数字开头,非关键字)
// 命名准则:
// 描述性名称、前后一致、语言传统、短变量名

// 根据数据使用范围选择数据类型

1.6 使用变量进行算术运算

01.game_stats2.cpp
#include <iostream>
using namespace std;

int main()
{
	unsigned int score = 5000;
	cout << "score: " << score << endl;

	// altering the value of a variable
	score = score + 100; // 修改变量值
	cout << "score: " << score << endl;

	// combined assignment operator
	score += 100; // 使用组合赋值运算符(+=,-=,*=,/=,%=)
	cout << "score: " << score << endl;

	// increment operators
	int lives = 3;
	++lives; // 前置递增运算符,--lives
	cout << "lives: " << lives << endl;

	lives = 3;
	lives++; // 后置递增运算符,lives--
	cout << "lives: " << lives << endl;

	lives = 3;
	int bonus = ++lives * 10;
	cout << "lives, bonus = " << lives << ", " << bonus << endl;

	lives = 3;
	bonus = lives++ * 10;
	cout << "lives, bonus = " << lives << ", " << bonus << endl;

	// integer wrap around
	score = 4294967295;
	cout << "\nscore: " << score << endl;
	++score; // 溢出,变为0
	cout << "score: " << score << endl;

	return 0;
}

1.7 使用常量

01.game_stats3.cpp
#include <iostream>
using namespace std;

int main()
{
	const int ALIEN_POINTS = 150; // 常量,经过命名的无法修改的值
	int aliensKilled = 10;
	int score = aliensKilled * ALIEN_POINTS;
	cout << "score: " << score << endl;

	enum difficulty // 枚举类型
	{
		NOVICE,
		EASY,
		NORMAL,
		HARD,
		UNBEATABLE
	};
	difficulty myDifficulty = EASY;

	enum shipCost
	{
		FIGHTER_COST = 25,
		BOMBER_COST,
		CRUISER_COST = 50
	};
	shipCost myShipCost = BOMBER_COST;
	cout << "\nTo upgrade my ship to a Cruiser will cost "
		 << (CRUISER_COST - myShipCost) << " Resource Points.\n";

	return 0;
}

1.8 Lost Fortune

01.lost_fortune.cpp
#include <iostream>
#include <string>

using std::cin;
using std::cout;
using std::endl;
using std::string;

int main()
{
	const int GOLD_PIECES = 900;
	int adventurers, killed, survivors;
	string leader;

	// get the information
	cout << "Welcome to Lost Fortune\n\n";
	cout << "Please enter the following for your personalized adventure\n";

	cout << "Enter a number: ";
	cin >> adventurers;

	cout << "Enter a number, smaller than the first: ";
	cin >> killed;

	survivors = adventurers - killed;

	cout << "Enter your last name: ";
	cin >> leader;

	// tell the story
	cout << "\nA brave group of " << adventurers << " set out on a quest ";
	cout << "-- in search of the lost treasure of the Ancient Dwarves. ";
	cout << "The group was led by that legendary rogue, " << leader << ".\n";

	cout << "\nAlong the way, a band of marauding ogres ambushed the party. ";
	cout << "All fought bravely under the command of " << leader;
	cout << ", and the ogres were defeated, but at a cost. ";
	cout << "Of the adventurers, " << killed << " were vanquished, ";
	cout << "leaving just " << survivors << " in the group.\n";

	cout << "\nThe party was about to give up all hope. ";
	cout << "But while laying the deceased to rest, ";
	cout << "they stumbled upon the buried fortune. ";
	cout << "So the adventurers split " << GOLD_PIECES << " gold pieces.";
	cout << leader << " held on to the extra " << (GOLD_PIECES % survivors);
	cout << " pieces to keep things fair of course.\n";

	return 0;
}
  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值