Cash-back offer from April 14th to 21st, 2024: Get a flat 10% cash-back credited to your account for a minimum transaction of $50.Post Your Questions Today!

Question DetailsNormal
$ 20.00

TEST BANK FOR Beginning C++ Through Game Programming 2nd Edition By Michael Dawson

Question posted by
Online Tutor Profile
request

Beginning C++ Game Programming
Chapter Discussion Question and Exercise Solutions
Chapter 1
Discussion Questions
1. How does having a widely adopted C++ standard help game programmers?
Solution:
Having a widely adopted standard helps game programmers in several ways. First, it helps to ensure consistency among compilers—this means that the same program, written to the standard, should compile successfully across multiple compilers that implement the standard. Second, the standard makes it easier to write cross-platform code—code written to the standard should compile and work correctly across different operating systems (again, given compilers that faithfully implement the standard). Third, it helps ensure that multiple programmers can work more seamlessly together—if both are writing to the standard their code should have fewer conflicts.
2. What are the advantages and disadvantages of employing the using directive?
Solution:
The major advantage of a employing the using directive is that it saves typing. If a programmer puts using namespace std; in his program, he saves having to prefix every element in the namespace std with std::. One could also argue that removing all of the std:: references from a program makes it less cluttered and easier to read. A disadvantage of employing a using directive is that it may not be clear where different objects and functions originate—what namespace they‘re from. Another disadvantage with employing a using directive is that you run the risk of name conflicts. For example, if you employed the using directive for two namespaces that had elements with the same name, there would be a name conflict. This, of course, is the very thing that namespaces were created to prevent.
3. Why might you define a new name for an existing type?
Solution:
You might define a new name for an existing type if you simply wanted a shorter name for a type that you use often in a program. For example, you might do something like:
typedef unsigned short int ushort;
so that you can use the concise ushort instead of the much longer unsigned short int. But you could also argue that the name a programmer creates for an existing type might be clearer than the syntax for the existing type. For example, ushort might scan better than the longer unsigned short int.
4. Why are there two versions of the increment operator? What‘s the difference
between them?
Solution:
Both versions of the increment operator increment a variable, but there‘s a subtle and important difference in the way the two operators work. The prefix increment operator is placed before the variable to be incremented, as in ++score, while the postfix increment operator is placed after the variable to be incremented, as in score++. The prefix increment operator increments a variable before the evaluation of a larger expression involving the variable while the postfix increment operator increments a variable after the evaluation of a larger expression involving the variable.
5. How can you use constants to improve your code?
Solution:
Constants can provide two important benefits. First, they can make programs clearer. MAX_HEALTH more clearly conveys the intention of a value than some literal, like say 100. Second, constants make changes easier. If you want to change the value of a constant, you only need to make a change in one place: where it was defined. If you used the same literal value throughout a program, you‘d have to change that literal everywhere (while making sure not to change the literal value where it‘s not related to the constant value).
Exercises
1. Create a list of six legal variable names -- three good and three bad choices. Explain why each name falls into the good or bad category.
Solution:
Responses will vary, but the following is a set of possible answers:
Good Names
health A clear, short name
numEnemies Clear that variable represents a number; descriptive
isGameOver Clear that variable represents a bool
Bad Names
HeAlTh While it‘s legal to used a mixed-case name, it‘s unconventional and distracting
TotalNumberofCurrentEnemies While it may be clear, the name is cumbersome; there must be a shorter, yet-still-clear name
igo Short but not clear; a little more typing may be worthwhile for the sake of clarity
2. What‘s displayed by each line in the following code snippet? Explain each result.
cout << "Seven divided by three is " << 7 / 3 << endl;
cout << "Seven divided by three is " << 7.0 / 3 << endl;
cout << "Seven divided by three is " << 7.0 / 3.0 << endl;
Solution:
cout << "Seven divided by three is " << 7 / 3 << endl; displays 2. That‘s because both numbers in the expression 7 / 3 are integers, making the operation integer division, which always results in an integer.
cout << "Seven divided by three is " << 7.0 / 3 << endl; displays 2.33333. That‘s because at least one number in the expression 7.0 / 3 is a floating point number. A division operation with at least one floating point number yields a floating point result.
cout << "Seven divided by three is " << 7.0 / 3.0 << endl; displays 2.33333. That‘s because at least one number in the expression 7.0 / 3.0 is a floating point number. A division operation with at least one floating point number yields a floating point result.
3. Write a program that gets three game scores from the user and displays the average.
Solution:
The source code is in the file bcppgp_solutions\source\chap01\chap01_exercise03.cpp.
Chapter 2
Exercises
1. Rewrite the Menu Chooser program from this chapter using an enumeration to represent difficulty levels.
Solution:
The source code is in the file bcppgp_solutions\source\chap02\chap02_exercise01.cpp.
2. What‘s wrong with the following loop?
int x = 0;
while (x)
{
++x;
cout << x << endl;
}
Solution:
The problem is that since x is set to 0 just before the loop, the loop will never be entered—it may as well not exist in the program. A student might say that the loop, if entered, would be infinite, but that‘s not necessarily true. If x were initialized with a negative value, it would eventually be incremented to 0, at which point the loop would end.
3. Write a new version of the Guess My Number program in which the player and the computer switch roles. That is, the player picks a number and the computer must guess what it is.
Solution:
The source code is in the file bcppgp_solutions\source\chap02\chap02_exercise03.cpp.
Chapter 3
Discussion Questions
1. What are some of the things from your favorite game that you could represent as objects? What might their data members and member functions be?
Solution
Responses will vary, but the following is a set of possible answers:
Ogre
Data Members
position
speed
health
Methods
Move()
Attack()
Die()
Sword
Data Members
damage
weight
price
Methods
Swing()
2. What are the advantages of using an array over a group of individual variables?
Solution:
While you could represent a set of values with individual variables, using an array has advantages – especially if the values are related and will need to have the same operations applied to them. Using an array allows you to easily iterate through a set of values instead of being forced to access a group of individual variables. For example, if you wanted to represent a set of 10 high scores with individual variables, you‘d have to send each variable to cout to display all of the values, as in:
cout << "High Scores";
cout << score1;
cout << score2;
cout << score3;
cout << score4;
cout << score5;
cout << score6;
cout << score7;
cout << score8;
cout << score9;
cout << score10;
But using an array allows a shorter and more elegant solution:
for (int i = 0; i < numScores; ++i)
cout << score[i] << endl;
3. What are some limitations imposed by a fixed array size?
Solution:
The major limitation imposed by a fixed array is that it can‘t grow in size. Once you establish the number of elements for the array, you can‘t change it. So, as a game programmer, you‘re forced to know the largest possible number of elements you will need to store with an array. Another disadvantage is that a fixed array can‘t shrink in size. Once you declare an array of a certain size, the memory needed to store all of the values in the array is allocated, even if only a few values are actually ever stored in the array as elements.

Available Answer
$ 20.00

[Solved] TEST BANK FOR Beginning C++ Through Game Programming 2nd Edition By Michael Dawson

  • This solution is not purchased yet.
  • Submitted On 10 Feb, 2022 12:27:03
Answer posted by
Online Tutor Profile
solution
Beginning C++ Game Programming Chapter Discussion Question and Exercise Solutions Chapter 1 Discussion Questions 1. How does having a widely adopted C++ standard help game programmers? Solution: Having a widely adopted standard helps game programmers in several ways. First, it helps to ensure consistency among compilers—this means that the same program, written to the standard, should compile successfully across multiple compilers that implement the standard. Second, the standard makes it easier to write cross-platform code—code written to the standard should compile and work correctly across different operating systems (again, given compilers that faithfully implement the standard). Third, it helps ensure that multiple programmers can work more seamlessly together—if both are writing to the standard their code should have fewer conflicts. 2. What are the advantages and disadvantages of employing the using directive? Solution: The major advantage of a employing the using directive is that it saves typing. If a programmer puts using namespace std; in his program, he saves having to prefix every element in the namespace std with std::. One could also argue that removing all of the std:: references from a program makes it less cluttered and easier to read. A disadvantage of employing a using directive is that it may not be clear where different objects and functions originate—what namespace they‘re from. Another disadvantage with employing a using directive is that you run the risk of name conflicts. For example, if you employed the using directive for two namespaces that had elements with the same name, there would be a name conflict. This, of course, is the very thing that namespaces were created to prevent. 3. Why might you define a new name for an existing type? Solution: You might define a new name for an existing type if you simply wanted a shorter name for a type that you use often in a program. For example, you might do something like: typedef unsigned short int ushort; so that you can use the concise ushort instead of the much longer unsigned ...
Buy now to view the complete solution
Other Similar Questions
User Profile
NUMBE...

Health and Health Care Delivery in Canada 2nd Edition Test Bank

Chapter 1: The History of Health Care in Canada MULTIPLE CHOICE 1. When and where was Canada’s first medical school established? a. Saskatoon, in 1868 b. Ottawa, in 1867 c. Montreal, in 1825 d. Kingston, in 1855 ANS: C...
User Profile
Acade...

ATI Pharmacology Proctored Exam Test Bank

ATI Pharmacology Proctored Exam Test Bank ATI Pharmacology Proctored Exam Test Bank ATI Pharmacology Proctored Exam Test Bank...
User Profile
BESTS...

TEST BANK BASIC GERIATRIC NURSING 7th Edition By Patricia A.

TEST BANK BASIC GERIATRIC NURSING 7th Edition By Patricia A. Williams Test Bank: Basic Geriatric Nursing, 7th Edition by Patricia A. Williams TEST BANK: Basic Geriatric Nursing, 7th Edition by Patricia A. Williams Con...
User Profile
Emmac...

EMERGENCY CARE IN THE STREET 9TH TEST BANK BY CAROLINE

EMERGENCY CARE IN THE STREET 9TH TEST BANK BY CAROLINE CHAPTER 1 CCP standsfor: a. Criticalcontrolpoints b. Criticalcareparamedic c. Critical careprograms d. Criticalcarepoints ANS: b Dif:Easy REF: Pg 2522 Responsi...
User Profile
BESTS...

FCLE/FLORIDA CIVIC LITERACY EXAM, PRACTICE AND STUDY GUIDE (TEST BANK) WITH A GRADED SOLUTIONS

FCLE/FLORIDA CIVIC LITERACY EXAM, PRACTICE AND STUDY GUIDE (TEST BANK) WITH A GRADED SOLUTIONS What does the judicial branch do? - ANSWER--reviews laws -explains laws -resolves disputes (disagreements) -decides if ...

The benefits of buying study notes from CourseMerits

homeworkhelptime
Assurance Of Timely Delivery
We value your patience, and to ensure you always receive your homework help within the promised time, our dedicated team of tutors begins their work as soon as the request arrives.
tutoring
Best Price In The Market
All the services that are available on our page cost only a nominal amount of money. In fact, the prices are lower than the industry standards. You can always expect value for money from us.
tutorsupport
Uninterrupted 24/7 Support
Our customer support wing remains online 24x7 to provide you seamless assistance. Also, when you post a query or a request here, you can expect an immediate response from our side.
closebutton

$ 629.35