Jump to content

Recommended Posts

Posted

 

So Download and install dev-cpp from the link I provided, The original dev-cpp has been discontinued but this version keeps being updated.

 

Okay so once you have dev-cpp open click File on the top right then click new > project. Then click empty project.

 

p1.PNG

 

p2.PNG

 

Save the .dev file in a place you will remember, it is used to reopen the project later.

 

Now click the little + next to the Project you just created then right click on the file and rename it to main.cpp and save it to same directory where you saved the .dev file.

 

p3.PNG

 

Now we are going to actually start writing some code I hope you are as excited as I am. :D

 

First we want to include our preprocessor for the compiler we use two preprocessors in this tutorial string and iostream. iostream includes the declarations of the basic standard input-output library in C++, and it is included because its functionality is going to be used later in the program. The string preprocessor is a standard representation for a string of text.

 

p4.PNG

 

Now we want to write our prototypes. A function prototype or function interface in C++ is a declaration of a function that omits the function body but does specify the function's return type, name, arity and argument types. While a function definition specifies what a function does, a function prototype can be thought of as specifying its interface.

 

so our Prototypes will look like this.

 

p5.PNG

 

So now we need to make the Dialogue function.

 

p6.PNG

 

std:: is preferred to using namespace std because with std:: you can call exactly what you need and nothing you don't.

 

cout prints text to the screen and endl is the newline indicator, you could also use \n.

 

Now we need to make our GetResponse function

 

p7.PNG

 

std::cin is the input from the user.

 

Now time to construct our StartGame function, it holds all the code required to deal with dialogue and responses.

 

p8.PNG

 

\n does the same thing endl; does.

 

now time to make a simple cross platform ClearScreen function

p9.PNG

 

now time for the entree point int main()

p10.PNG

 

now our simple c++ cross platform text game is done.

 

All we need to do now is compile and run.

 

to do that hit f11 in dev-cpp.

 

Finished code:

//preprocessors
#include <iostream>
#include <string>

/* Prototype */
void Dialogue(std::string); //A Void that requires a string (prints Dialogue to the screen)
std::string GetResponse(); // A String that returns the users response 
void StartGame(); // the actual game code
void Cls(); //clears the screen

/*Entree point*/
int main()
{
Cls(); //clears screen 
StartGame(); //runs our game code
std::cin.get(); //keeps the game open after your game has been ran until you press any key
return 0; //you have to return 0 because main is an int.
}

/* Prints the Dialog to the screen*/
void Dialogue(std::string text)
{
std::cout<< text << std::endl; //prints the text to console then \n(endl)
}

/* Used to get the Response of a user*/
std::string GetResponse()
{
std::string _data; // creates a new string variable named _data
std::cin >> _data; //sets _data = userinput
return _data; //returns _data
}

/* The actual Game code*/
void StartGame()
{
    /* Your game is constructed in this function*/
Dialogue("Welcome to Saw. Would you like to play a game? \n Yes or No?" );// print our firstline
if(GetResponse() == "Yes") // if response = yes then
{
	Dialogue("Okay Good! Me to"); // print this
}else if(GetResponse() == "No"){ //else if no
	Dialogue("You die!"); //prints this
}else{ //anything else
        Dialogue("Not a valid answer.");
    }

}

/*Cross platform way to clear the screen!*/
void Cls()
{
std::cout << std::string( 150, '\n' );//prints 150 empty lines
}

 

Finished game in use

p11.PNG

 

 

I hope you like it!

Posted

very good tutorial Nicolás™

 

Seriously? Do you even know what this code does? For example at college we are doing stuff x100 more complicated than this child's play.

Posted

Seriously? Do you even know what this code does? For example at college we are doing stuff x100 more complicated than this child's play.

 

Then why you don't open an x100 server to make money if you are working so seriously and do so better things? Some people never appreciate whatever effort by someone else and buddy you are in the bunch of them.

Posted

Seriously? Do you even know what this code does? For example at college we are doing stuff x100 more complicated than this child's play.

are you blind or? can you check the title of topic? How to make a simple cross platform text game

 

Go and learn better on your college mr programmer

 

Peace

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Posts

    • Added the protection module to the demo.   DDoS Guard Pro v2.0 is a system protection module for PlayMMO CMS designed to reduce the load on the website during HTTP floods, bot activity, suspicious frequent requests, and attacks on individual pages or API methods. Unlike simple global limiters, DDoS Guard Pro v2.0 supports flexible rules based on routes and HTTP methods. This allows you to block the entire site in a targeted manner, rather than blocking the entire site equally. You can set up protection for specific areas of the site, such as login, registration, APIs, administration, forms, and other sensitive areas. What is the purpose of the module? DDoS Guard Pro v2.0 helps protect your site from basic L7 attacks at the HTTP request level. The module is useful when your site receives: frequent requests from a single IP address; HTTP page floods; login or registration form flooding; automatic requests from bots; URL scanning; frequent API requests; suspicious activity spikes; load on individual CMS methods or pages. The module helps to reduce the load on PHP and CMS by limiting suspicious activity before it starts to create a serious load on the site. Main features Per-route and per-method Rate Limit In the new version, protection is configured not only globally, but also according to specific rules. You can set limits separately for: GET; POST; PUT; PATCH; DELETE; ALL. This allows you to flexibly protect different parts of your website. For example: for the login page, you can set a strict limit; for registration, you can set a separate limit; for the API, you can set a limit for reading and a limit for changing data; for regular website pages, you can set a soft limit or not set a limit at all. This approach reduces the risk of accidentally blocking regular users and makes the protection more accurate. Flexible rule system The module supports setting rules in the following format: METHODS|PATTERN|LIMIT|WINDOW|BURST_LIMIT|BURST_WINDOW|BLOCK_SECONDS|IDENTITY|NAME Example of rules: POST|*login*|10|60|5|10|600|ip|login_post POST|*register*|8|60|4|10|600|ip|register_post GET|*api*|300|60|80|10|120|ip|api_get PUT,PATCH,DELETE|*api*|80|60|20|10|300|ip|api_write This allows you to specify exactly: which HTTP methods to protect; which URLs or URL patterns to consider; how many requests are allowed; over what time period; what burst limit to use;  how many seconds to block the offender;  by which ID to count the limit;  what the rule is called. Burst protection against sharp spikes  In addition to the regular request limit, the module monitors sharp spikes of activity.  This is useful when a bot makes many requests in a few seconds. In this case, the protection can be activated faster, without waiting for the overall limit per minute.  Burst protection is especially useful for: authorization pages; registration; API; search; data submission forms; administrative sections. Support for different types of requests DDoS Guard Pro v2.0 works not only with POST requests. The module can control: GET — regular pages, API requests, search; POST — forms, login, registration, data submission; PUT — updating data via API; PATCH — partial data update; DELETE — data deletion; ALL — all methods at once. This makes the module suitable not only for regular sites, but also for CMS with API, personal accounts, game panels and administrative actions. Limit storage: Redis, APCu and file fallback In the new version, the module supports several options for storing temporary data. Available modes: Redis; APCu; file fallback. The auto mode tries to use the most suitable option: Redis; APCu; file storage as a fallback. Redis or APCu are suitable for more efficient operation, while the file storage is left as a fallback option for simple hosting environments that do not have additional extensions. JSONL logging The module records protection events in JSON Lines format. Logs are saved in the following file: storage/logs/ddos_guard.jsonl This format is more convenient than a regular text log, because each event is stored as a separate JSON record. The logs can record the following information: event time; IP address; HTTP method; URL; name of the triggered rule; reason for blocking; number of requests; action status; user-agent; protection mode. The JSONL format is convenient for analysis by external tools, log agents, and monitoring systems. Prometheus metrics DDoS Guard Pro v2.0 adds an endpoint for receiving metrics in Prometheus format. Endpoint: /?ddos_guard_metrics=TOKEN The token is set in the module settings. Metrics allow you to track: the number of processed requests; the number of rule activations; the number of blocks; activity by limits; protection events; module status. This allows you to connect monitoring and configure alerts so that the administrator can see when suspicious activity starts on the site. LOG ONLY mode The module has a LOG ONLY mode. In this mode, DDoS Guard Pro does not block users, but only records events and potential triggers in the log. This mode is recommended to be used after installation, in order to first see which rules are triggered, and only then to enable the real blocking.  This helps to avoid too strict limits and random blocking of regular users.  Support for Cloudflare and proxy  The module supports working behind Cloudflare or another reverse proxy.  With proper configuration, it is possible to take into account the real IP of the user, and not the IP of the proxy server.  This is important for sites that use:  Cloudflare; nginx reverse proxy; load balancers; CDN; hosting proxy protection. Nginx-recommendations DDoS Guard Pro v2.0 contains an example nginx-config: modules/ddos_guard/nginx-ddos-guard-example.conf This allows you to use the module as an additional application layer of protection, and to move the main coarse limits to the nginx level. Recommended protection scheme: Cloudflare / nginx / firewall → DDoS Guard Pro → PlayMMO CMS This approach is more correct than trying to solve all problems only at the PHP level.
  • Topics

×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..