John David

John David

1547882128

C++ Sort enemies by life

I have a problem with my little game which I have programmed, with the help of a c++ book.

So first I have a class called PlayerObject, and a array with all game objects stored in. When the game starts, I loop through all the objects inside the array.

while (true) {
  for (auto i = 0; i < 100; i++) {
    auto object = FuncObjectId(i);
if (PlayerObject.IsEnemy(object) &amp;&amp;
    PlayerObject.Player.Position.Distance(object.Position) &lt; 1000) {
  // enemies found in range
  FuncMoveTo(object)
}

}
}

But what if there are several enemies in the given range? How can i order them ?

sorting by life or distance, for example. So that my player move to the closest target, or to the lowest health target.

Besides, the whole thing has to reset somehow. The player should not stop after killing the target, he should automatically go to the next enemy with the lowest life/closest position.

#c++ #game-engine

What is GEEK

Buddha Community

Dylan Iqbal

1547892887

First of all change for loop to

for (auto i = 0; i < FuncObjectId.size(); i++)

Why only look for 100 enemies?

If player should move all the time just not look for the enemies that are closer then 1000 but You have to sort them by distance to player. To do this You should use std::sorthttp://www.cplusplus.com/reference/algorithm/sort/ You can use this function to sort enemies by parameter You want.

Archie Clayton

1547992863

For your given problem, I’d assume that you have a comparatively short list of enemies, below a thousand for instance. If that is the case, you don’t really need real sorting, simply search the smallest entry:

minimal health found = health of first enemy
corresponding index of enemy = index of first enemy
for all enemies:
    if health enemy < minimal health found:
        minimal health found = health enemy
        corresponding index of enemy = index enemy

If, however, for some reasons you still need to actually sort them, the simplest way is to store them in a sortable container (you can write one, but simply go with std::vector or std::list). Define a method within the enemy class that defines a “smaller than” relationship (bool health_lower(const PlayerObject& a, const PlayerObject& b)) and then use std::sort with that method as comparator.

Another way is that you write a class that stores the list of enemies, and every time that either an enemy is created or the health of one changes, the class bubbles that particular enemy, as the order of the other enemies to each other does not change.

Tamale  Moses

Tamale Moses

1624240146

How to Run C/C++ in Sublime Text?

C and C++ are the most powerful programming language in the world. Most of the super fast and complex libraries and algorithms are written in C or C++. Most powerful Kernel programs are also written in C. So, there is no way to skip it.

In programming competitions, most programmers prefer to write code in C or C++. Tourist is considered the worlds top programming contestant of all ages who write code in C++.

During programming competitions, programmers prefer to use a lightweight editor to focus on coding and algorithm designing. VimSublime Text, and Notepad++ are the most common editors for us. Apart from the competition, many software developers and professionals love to use Sublime Text just because of its flexibility.

I have discussed the steps we need to complete in this blog post before running a C/C++ code in Sublime Text. We will take the inputs from an input file and print outputs to an output file without using freopen file related functions in C/C++.

#cpp #c #c-programming #sublimetext #c++ #c/c++

Dicey Issues in C/C++

If you are familiar with C/C++then you must have come across some unusual things and if you haven’t, then you are about to. The below codes are checked twice before adding, so feel free to share this article with your friends. The following displays some of the issues:

  1. Using multiple variables in the print function
  2. Comparing Signed integer with unsigned integer
  3. Putting a semicolon at the end of the loop statement
  4. C preprocessor doesn’t need a semicolon
  5. Size of the string matters
  6. Macros and equations aren’t good friends
  7. Never compare Floating data type with double data type
  8. Arrays have a boundary
  9. Character constants are different from string literals
  10. Difference between single(=) and double(==) equal signs.

The below code generates no error since a print function can take any number of inputs but creates a mismatch with the variables. The print function is used to display characters, strings, integers, float, octal, and hexadecimal values onto the output screen. The format specifier is used to display the value of a variable.

  1. %d indicates Integer Format Specifier
  2. %f indicates Float Format Specifier
  3. %c indicates Character Format Specifier
  4. %s indicates String Format Specifier
  5. %u indicates Unsigned Integer Format Specifier
  6. %ld indicates Long Int Format Specifier

Image for post


A signed integer is a 32-bit datum that encodes an integer in the range [-2147483648 to 2147483647]. An unsigned integer is a 32-bit datum that encodes a non-negative integer in the range [0 to 4294967295]. The signed integer is represented in twos-complement notation. In the below code the signed integer will be converted to the maximum unsigned integer then compared with the unsigned integer.

Image for post

#problems-with-c #dicey-issues-in-c #c-programming #c++ #c #cplusplus

Tamale  Moses

Tamale Moses

1619563800

C Program For Bubble Sorting: Bubble Sort in C

Introduction

The sorting of an array holds a place of immense importance in computer science. Its utility is noticed when there is a need to arrange data in a specific order. There are different kinds of sorting algorithms. The most common and widely used sorting algorithm is the Bubble Sort.

Bubble Sort in C

The technique that is used for sorting in Bubble sort is simple and easy to understand. All it does is compare the current element with the next element and swap it if it is greater or lesser as dictated by the condition. The algorithm is very accurate. Each time an element is compared with other elements until its place is found, it is called a pass.

This algorithm is comparable to bubbles in water as it filters out the top of the array-like bubbles. Among all the algorithms used for sorting, Bubble sort is the easiest and the slowest with time complexity of O(n^2). However, the algorithm can be optimized through the use of a flag variable that exits the loop when swapping is completed. The best case for Bubble sort can be O(n) when the array is sorted.

#full stack development #bubble sort #bubble sort in c #c++

Aketch  Rachel

Aketch Rachel

1620390060

C Program For Bubble Sorting: Bubble Sort in C

Introduction

The sorting of an array holds a place of immense importance in computer science. Its utility is noticed when there is a need to arrange data in a specific order. There are different kinds of sorting algorithms. The most common and widely used sorting algorithm is the Bubble Sort.

Bubble Sort in C

The technique that is used for sorting in Bubble sort is simple and easy to understand. All it does is compare the current element with the next element and swap it if it is greater or lesser as dictated by the condition. The algorithm is very accurate. Each time an element is compared with other elements until its place is found, it is called a pass.

This algorithm is comparable to bubbles in water as it filters out the top of the array-like bubbles. Among all the algorithms used for sorting, Bubble sort is the easiest and the slowest with time complexity of O(n^2). However, the algorithm can be optimized through the use of a flag variable that exits the loop when swapping is completed. The best case for Bubble sort can be O(n) when the array is sorted.

#bubble sort #bubble sort in c #c++

Ari  Bogisich

Ari Bogisich

1589816580

Using isdigit() in C/C++

In this article, we’ll take a look at using the isdigit() function in C/C++. This is a very simple way to check if any value is a digit or not. Let’s look at how to use this function, using some simple examples.

#c programming #c++ #c #c#