Изучаем С++ через программирование игр

Изучаем С++ через программирование игр

Изучаем С++ через программирование игр
Автор: Доусон Майкл
Дата выхода: 2016
Издательство: Питер
Количество страниц: 353
Размер файла: 6.9 MB
Тип файла: PDF
Добавил: codelibs
 Проверить на вирусы

Благодарности....19

Об авторе....20

Введение....21

Для кого эта книга....22

Как построена книга....23

Условные обозначения, используемые в книге....25

Исходный код к книге....26

Несколько слов о компиляторах....27

От издательства....28

Глава 1. Типы, переменные, стандартный ввод-вывод. Игра «Утраченный клад»....29

Введение в C++....29

Использование языка C++ при программировании игр....30

Создание исполняемого файла....30

Исправление ошибок....31

Понятие о стандарте ISO....32

Пишем первую программу на C++....33

Знакомство с программой Game Over....33

Комментирование кода....34

Использование пробелов....34

Включение других файлов....35

Определение функции main()....35

Отображение текста в стандартном выводе....36

Завершение инструкций....37

Возвращение значения от функции main()....37

Работа с пространством имен std....37

Знакомство с программой Game Over 2.0....38

Использование директивы using.....38

Знакомство с программой Game Over 3.0....38

Использование объявлений using....39

Когда следует использовать using....39

Работа с арифметическими операторами....39

Знакомство с программой Expensive Calculator....40

Сложение, вычитание, умножение....40

Понятие о делении без остатка и делении с плавающей запятой....41

Работа с оператором деления по модулю....41

Понятие о последовательности операций....41

Объявление и инициализация переменных....42

Знакомство с программой Game Stats....42

Понятие о примитивах....43

Понятие о модификаторах типов....43

Объявление переменных....44

Именование переменных....45

Присваивание значений переменным....46

Инициализация переменных....47

Отображение значений переменных....47

Получение пользовательского ввода....48

Определение новых имен для типов....48

Типы, которые следует использовать....48

Выполнение арифметических операций с применением переменных....49

Знакомство с программой Game Stats 2.0....49

Изменение значения переменной....50

Использование комбинированных операторов присваивания....50

Использование операторов инкремента и декремента....51

Что делать с целочисленным переполнением....52

Работа с константами....53

Знакомство с программой Game Stats 3.0....53

Использование констант....54

Работа с перечислениями....55

Игра «Утраченный клад»....55

Настройка параметров программы....56

Получение информации от игрока....57

Сюжет....57

Резюме....58

Вопросы и ответы....59

Вопросы для обсуждения....60

Упражнения....61

Глава 2. Истина, ветвление и игровой цикл. Игра «Угадай число»....62

Понятие об истине....62

Использование инструкции if....63

Знакомство с программой Score Rater....63

Проверка условий true и false....64

Интерпретация значения как истинного или ложного....65

Работа с реляционными операторами....66

Вложение инструкций if....66

Работа с условием else....67

Знакомство с программой Score Rater 2.0....67

Создание двух способов ветвления....69

Использование последовательности инструкций с помощью условий else....69

Знакомство с программой Score Rater 3.0....70

Создание последовательности инструкций if с применением условий else....71

Использование инструкции switch....71

Знакомство с программой Menu Chooser....72

Создание нескольких вариантов ветвления....74

Использование циклов while....74

Знакомство с программой Play Again....74

Работа с циклом while....75

Использование циклов do....75

Знакомство с программой Play Again 2.0....76

Работа с циклом do....77

Использование инструкций break и continue....77

Знакомство с программой Finicky Counter....78

Создание цикла while (true)....79

Использование инструкции break для выхода из цикла....79

Использование инструкции continue для перехода в начало цикла....79

Когда следует использовать инструкции break и continue....80

Использование логических операторов....80

Знакомство с программой Designers Network....80

Использование логического оператора «И»....82

Использование логического оператора «ИЛИ»....83

Использование логического оператора «НЕ»....84

Понятие о порядке операций....84

Генерирование случайных чисел....85

Знакомство с программой Die Roller....85

Вызов функции rand()....86

Посев генератора случайных чисел....87

Расчет числа в заданном диапазоне....88

Понятие об игровом цикле....88

Знакомство с игрой Guess My Number....90

Применение игрового цикла....90

Установка игровых параметров....91

Создание игрового цикла....92

Завершение игры....92

Резюме....93

Вопросы и ответы....94

Вопросы для обсуждения....95

Упражнения....96

Глава 3. Циклы for, строки и массивы. Игра «Словомеска»....97

Использование циклов for....97

Знакомство с программой Counter....98

Подсчеты с помощью циклов for....99

Использование пустых инструкций в циклах for....100

Вложение циклов for....101

Понятие об объектах....102

Работа со строковыми объектами....103

Знакомство с программой String Tester....104

Создание строковых объектов....105

Конкатенация строковых объектов....106

Использование функции-члена size()....106

Индексация объекта string....106

Перебор символов в объектах String....107

Использование функции-члена find()....108

Использование функции-члена erase()....108

Использование функции-члена empty()....109

Работа с массивами....109

Знакомство с программой Hero's Inventory....109

Создание массивов....111

Индексация массивов....112

Обращение к функциям-членам элемента массива....113

Следите за границами массива....113

Си-строки....114

Использование многомерных массивов....115

Знакомство с программой Tic-Tac-Toe Board....115

Создание многомерных массивов....116

Индексация многомерных массивов....117

Знакомство с игрой «Словомеска»....117

Приступаем к разработке программы....118

Выбор слова для перемешивания....118

Перемешивание слова....119

Приглашение игрока....120

Начало игрового цикла....120

Прощание....121

Резюме....121

Вопросы и ответы....122

Вопросы для обсуждения....123

Упражнения....124

Глава 4. Библиотека стандартных шаблонов. Игра «Виселица»....125

Знакомство с библиотекой стандартных шаблонов....125

Работа с векторами....126

Знакомство с программой Hero’s Inventory 2.0....127

Подготовка к работе с векторами....128

Объявление вектора....128

Работа с функцией-членом push_back()....129

Работа с функцией-членом size()....129

Индексация векторов....130

Вызов функций-членов элемента....130

Использование функции-члена pop_back()....130

Использование функции-члена clear()....131

Использование функции-члена empty()....131

Работа с итераторами....131

Знакомство с программой Hero’s Inventory 3.0....131

Объявление итераторов....133

Перебор содержимого вектора....134

Изменение значения элемента вектора....136

Доступ к функциям-членам элемента вектора....136

Использование векторной функции-члена insert()....137

Использование векторной функции-члена erase()....138

Использование алгоритмов....138

Знакомство с программой High Scores....138

Подготовка к использованию алгоритмов....140

Использование алгоритма find()....140

Использование алгоритма random_shuffle()....141

Использование алгоритма sort()....141

Понятие о производительности векторов....142

Подробнее о росте векторов....142

Подробнее о вставке и удалении элементов....144

Исследование других контейнеров библиотеки STL....144

Планирование программ....145

Использование псевдокода....146

Пошаговое усовершенствование программы....146

Знакомство с программой «Виселица»....147

Планирование игры....147

Подготовка программы....148

Инициализация переменных и констант....148

Начало основного цикла....149

Получение вариантов от пользователя....149

Конец игры....150

Резюме....150

Вопросы и ответы....151

Вопросы для обсуждения....153

Упражнения....153

Глава 5. Функции. Игра «Безумные библиотекари»....154

Создание функций....154

Знакомство с программой Instructions....154

Объявление функций....155

Определение функций....156

Вызов функций....157

Понятие об абстрагировании....157

Использование параметров и возвращаемых значений....157

Знакомство с программой Yes or No....158

Возврат значения....159

Запись значений в параметры....160

Понятие об инкапсуляции....161

Понятие о переиспользовании ПО....162

Работа с областями видимости....163

Знакомство с программой Scoping....163

Работа с отдельными областями видимости....164

Работа с вложенными областями видимости....165

Использование глобальных переменных....166

Знакомство с программой Global Reach....167

Объявление глобальных переменных....168

Доступ к глобальным переменным....168

Скрывание глобальных переменных....168

Изменение глобальных переменных....169

Минимизация использования глобальных переменных....169

Использование глобальных констант....170

Использование аргументов, задаваемых по умолчанию....170

Знакомство с программой Give Me a Number....171

Задание аргументов, применяемых по умолчанию....172

Присваивание параметрам аргументов, задаваемых по умолчанию....172

Переопределение аргументов, задаваемых по умолчанию....173

Перегрузка функций....173

Знакомство с программой Triple....174

Создание перегруженных функций....175

Вызов перегруженных функций....175

Подстановка вызова функций....176

Знакомство с программой Taking Damage....176

Задание функций для подстановки....177

Вызов подставленных функций....177

Знакомство с программой «Безумные библиотекари»....178

Подготовка программы....178

Функция main()....179

Функция askText()....179

Функция askNumber()....180

Функция tellStory()....180

Резюме....181

Вопросы и ответы....181

Вопросы для обсуждения....183

Упражнения....183

Глава 6. Ссылки. Игра «Крестики-нолики»....184

Использование ссылок....184

Знакомство с программой Referencing....184

Создание ссылок....185

Доступ к значениям по ссылкам....186

Изменение значений через указывающие на них ссылки....187

Передача ссылок для изменения аргументов....187

Знакомство с программой Swap....188

Передача по значению....189

Передача по ссылке....190

Передача ссылок для обеспечения эффективности....190

Знакомство с программой Inventory Displayer....190

Несколько слов о подводных камнях, связанных с передачей ссылок....192

Объявление параметров как константных ссылок....192

Передача константной ссылки....192

Решение о том, как передавать аргументы....193

Возврат ссылок....193

Знакомство с программой Inventory Referencer....194

Возврат ссылки....195

Отображение значения возвращенной ссылки....196

Присваивание возвращенной ссылки другой ссылке....196

Присваивание возвращенной ссылки переменной....196

Изменение объекта с помощью возвращенной ссылки....196

Знакомство с игрой «Крестики-нолики»....197

Планирование игры....197

Подготовка программы....200

Функция main()....201

Функция askYesNo()....202

Функция askNumber()....202

Функция humanPiece()....203

Функция opponent()....203

Функция displayBoard()....203

Функция winner()....204

Функция isLegal()....205

Функция humanMove()....206

Функция computerMove()....206

Функция announceWinner()....209

Резюме....209

Вопросы и ответы....210

Вопросы для обсуждения....212

Упражнения....212

Глава 7. Указатели. Игра «Крестики-нолики 2.0»....213

Основы работы с указателями....213

Знакомство с программой Pointing....214

Объявление указателей....215

Инициализация указателей....216

Присваивание адресов указателям....216

Разыменование указателей....217

Переприсваивание указателей....218

Использование указателей на объекты....219

Понятие об указателях и константах....219

Использование константного указателя....220

Использование указателя на константу....221

Использование константного указателя на константу....221

Константы и указатели: итог....222

Передача указателей....223

Знакомство с программой Swap Pointer Version....223

Передача по значению....224

Передача константного указателя....225

Возврат указателей....226

Знакомство с программой Inventory Pointer....226

Возврат указателя....227

Использование возвращенного указателя для отображения значения....228

Присваивание указателю возвращенного указателя....229

Присваивание переменной значения, на которое указывает возвращенный указатель....229

Изменение объекта посредством возвращенного указателя....230

Понятие о взаимоотношениях указателей и массивов....231

Знакомство с программой Array Passer....231

Использование имени массива в качестве константного указателя....232

Передача и возврат массивов....233

Знакомство с программой «Крестики-нолики 2.0»....234

Резюме....235

Вопросы и ответы....236

Вопросы для обсуждения....238

Упражнения....238

Глава 8. Классы. Игра «Тамагочи»....239

Определение новых типов....239

Знакомство с программой Simple Critter....239

Определение класса....241

Определение функций-членов....242

Инстанцирование объектов....242

Доступ к членам данных....243

Вызов функций-членов....243

Использование конструкторов....244

Знакомство с программой Constructor Critter....244

Объявление и определение конструктора....245

Автоматический вызов конструктора....246

Установка уровней доступа к членам....246

Знакомство с программой Private Critter....247

Задание открытых и закрытых уровней доступа....248

Определение функций доступа....249

Определение константных функций-членов....250

Использование статических членов данных и функций-членов....251

Объявление и инициализация статических членов данных....252

Обращение к статическим членам данных....253

Объявление и определение статических функций-членов....254

Вызов статических функций-членов....254

Знакомство с игрой «Тамагочи»....255

Планирование игры....255

Планирование псевдокода....257

Класс Critter....257

Функция main()....260

Резюме....261

Вопросы и ответы....262

Вопросы для обсуждения....264

Упражнения....264

Глава 9. Более сложные классы и работа с динамической памятью. Игровое лобби....265

Использование агрегирования....265

Знакомство с программой Critter Farm....266

Использование членов данных, являющихся объектами....268

Использование контейнерных членов данных....268

Использование дружественных функций и перегрузка операторов....269

Знакомство с программой Friend Critter....269

Создание дружественных функций....271

Перегрузка операторов....272

Динамическое выделение памяти....272

Знакомство с программой Heap....273

Использование оператора new....274

Использование оператора delete....275

Избегаем утечек памяти....276

Работа с членами данных и кучей....278

Знакомство с программой Heap Data Member....278

Объявление членов данных, которые указывают на значения в куче....281

Объявление и определение деструкторов....282

Объявление и определение конструкторов копирования....283

Перегрузка оператора присваивания....286

Знакомство с программой Game Lobby....288

Класс Player....289

Класс Lobby....291

Функция-член Lobby::AddPlayer()....292

Функция-член Lobby::RemovePlayer()....294

Функция-член Lobby::Clear()....295

Функция-член operator<<()....295

Функция main()....295

Резюме....296

Вопросы и ответы....297

Вопросы для обсуждения....298

Упражнения....299

Глава 10. Наследование и полиморфизм. Игра Blackjack....300

Знакомство с наследованием....300

Знакомство с программой Simple Boss....302

Наследование от базового класса....303

Создание объектов производного класса....304

Использование унаследованных членов....305

Управление доступом при работе с наследованием....305

Знакомство с программой Simple Boss 2.0....305

Использование модификаторов доступа для членов данных....307

Использование модификаторов доступа при создании производных классов....307

Вызов и переопределение функций-членов базового класса....308

Знакомство с программой Overriding Boss....308

Вызов конструкторов базового класса....310

Объявление виртуальных функций-членов базового класса....310

Переопределение виртуальных функций-членов базового класса....311

Вызов функций-членов базового класса....312

Использование перегруженных операторов присваивания и конструкторов копирования в производных классах....313

Знакомство с полиморфизмом....313

Знакомство с программой Polymorphic Bad Guy....314

Использование указателей базового класса для объектов производного класса....315

Определение виртуальных деструкторов....317

Использование абстрактных классов....317

Знакомство с программой Abstract Creature....318

Объявление чистых виртуальных функций....319

Наследование от абстрактного класса....319

Знакомство с игрой Blackjack....320

Разработка классов....321

Планирование логики игры....324

Класс Card....325

Класс Hand....326

Класс GenericPlayer....328

Класс Player....330

Класс House....331

Класс Deck....331

Класс Game....333

Функция main()....336

Перегрузка функции operator<<()....336

Резюме....338

Вопросы и ответы....338

Вопросы для обсуждения....340

Упражнения....340

Приложение 1. Создание первой программы на языке С++....341

Приложение 2. Приоритет операторов языка С++....347

Приложение 3. Ключевые слова языка С++....349

Приложение 4. Таблица символов ASCII....350

Приложение 5. Управляющие последовательности....352

Если вы хотите научиться программировать первоклассные игры, вам просто необходимо изучить язык С++. Эта книга поможет вам освоить разработку игр с самых азов, независимо от того, есть ли у вас опыт программирования. Гораздо интересней учиться, когда обучение превращается в игру.

Каждая глава книги описывает самостоятельный игровой проект. В заключительной главе вам предстоит написать сложную игру, которая объединяет все приемы программирования, рассмотренные в предыдущих главах.

Книга, которую вы держите в руках, идеально подойдет для начинающего программиста, планирующего не только как следует освоить непростой язык С++, но и поупражняться в программировании игр.


Похожее:

Список отзывов:

Нет отзывов к книге.