Ein Vortrag von Timon Stampfli auf der GPN19.
C++ / Snake Programming Workshop
There will be 2 parts. In the first part we will talk about the C++ specifics that are useful for writing a snake game bot. Things like - Strings (C-Strings and C++ STL Strings) aka how do I log something - STL Datastructures aka how do I resize my array - Whatever you want to know about C++
In the second part we can discuss some snake bot strategies or algorithms. Your participation, questions is the basis for this part
This is not a introduction into programming but learning to use C++ for writing snake bots for creatures already familiar with another programming language.
Workshop Pad Content
Copy of pad content:
CPP-Snake // server: https://schlangen.bytewerk.org/ #include <bits/stdc++.h> using namespace std; void log(string str, Api* api){ api->log(str.c_str()); } bool step(Api* api) { api->log(string("Hello C-String World")); string str="Debug Value1: "; str+= 3 + ", some more text"; log(string("some string") + 5.1); log(string()+3); } ich mache das: string logtxt = "bla" + to_string(irgendeine integer variable); api->log(logtxt.c_str()); int main(){ vector<int> vec(10,20); vec.push_back(200); } /* C-Arrays: Legacy DO NOT USE */ int main(){ int some_array[23] = {5,2,3}; some_array[103]; *(some_array + 3) return 0; } void caller(){ int a = 23; call_by_value(a); call_by_adress(&a); // a is now 24 call_by_reference(a); // a is now 25 } void call_by_value(int a){ a++; } void call_by_adress(int * a){ (*a)++; } void call_by_reference(int& a){ a++; } api.functions_name(); (*api).funktions_name(); api->funktions_name(); ist das da in Ordnung? Ich habe so meine Probleme mit Pointer, vectoren in funktionen... void add(vector<int> *clc, int pos, int add) { (*clc)[pos] += add; } https://schlangen.bytewerk.org/static/docs/doxygen_cpp/html/bot__api_8h_source.html https://schlangen.bytewerk.org/static/docs/doxygen_cpp/html/ipc__format_8h_source.html https://de.cppreference.com/w/cpp/container/set https://de.cppreference.com/w/cpp/container/map