Witam znacie jakieś dobre książki i kursy?
Mam zamiar używać kurs darmowy pana Mirosława Zelenta oraz książke Symfonia c++
Symfonia to klasyka, od Zelenta uciekaj.
Od siebie proponuje "C++ Szkoła programowania"
https://helion.pl/ksiazki/jezyk-c-szkola-programowania-wydanie-vi-stephen-prata,cppri6.htm
Bardzo dobrze napisana, autor wszystko bardzo dobrze tłumaczy.
Ze swojej strony polecę Programowanie. Teoria i praktyka z wykorzystaniem C++. Jeśli chodzi o Grębosza, to jeśli, to tylko najnowsza. Starsze wydania są oparte na zbyt starym standardzie, by miało to jakikolwiek sens.
Zelent uczy złych nawyków, więc lepiej trzymać się z daleka. Na dodatek używa C++ Builder, co jest już przestarzałe (ostatnie dobre wydanie było 15 lat temu).
Tu masz długą listę: https://4programmers.net/Forum/C_i_C++/140817-Materialy_dostepne_w_sieci
Czy ta ksiazka bedzie dobra?
https://helion.pl/ksiazki/jezyk-c-kompendium-wiedzy-wydanie-iv-bjarne-stroustrup,jcppkw.htm#format/d
Ja tylko dodam, że sama książka / kurs nic nie da ;) Wyznacz sobie jakieś zadanie np. napisz snejka ;)
Polecam też: tutorialspoint_cpp
Napisałem w C# grę rpg konsolową bardzo prostą z minimalistycznym AI. Nie wiem czy to starczy do tego Kompedium wiedzy c++..
Co do: https://helion.pl/ksiazki/programowanie-teoria-i-praktyka-z-wykorzystaniem-c-bjarne-stroustrup,pcpptp.htm#format/d To nie ma standardu c++11 ;/
Kod gry:
using System;
namespace Gra_RPG
{
class Program
{
public static void Main(string[] args)
{
//Podstawa
int gold;
gold = 0;
int exp;
exp = 100;
int lvl;
lvl = 1;
//Staty
//int str; // 1 punkt = +10 do życia i +5 do ataku
//str = 1;
//int dex; // ?? (Statystyka nieużywana);
//dex = 1;
//int inta; // 1 punkt = +10 do many i +1 do ataku
//inta = 1;
//Dodatkowe Staty
int hp;
hp = 100;
int dmgBroni;
dmgBroni = 0;
int dmg;
dmg = 10;
int mana;
mana = 100;
//----------------- OTHER
string Klasa = null;
//-----Itemy-----//
string weapon = null;
string armor = null;
string artifacts = null;
string ring = null;
string CrystalOfPower = null;
string helmet = null;
string essence = null;
//--------------//
string[] Ekwipunek = new string[7];
//-----------------
//-----------------
int zdrowieGladiatora;
zdrowieGladiatora = 100;
int dmgGladiatora;
dmgGladiatora = 666666666;
//Start
Console.WriteLine("-----------------");
Console.WriteLine("Witaj w grze RPG!");
Console.WriteLine("-----------------");
System.Threading.Thread.Sleep(1000);
Console.Clear();
//--------------------------------------
Console.Write("Wpisz swój nick: ");
string nick = Console.ReadLine();
//--------------------------------------
Console.Clear();
Console.WriteLine("-----------------");
Console.WriteLine("Twój nick: " + nick);
Console.WriteLine("-----------------");
System.Threading.Thread.Sleep(2000);
Console.Clear();
//--------------------------------------
while (Klasa == null){
Console.WriteLine("Wybierz swoją klase: ");
Console.WriteLine("1. Wojownik");
Console.WriteLine("2. Łucznik");
Console.WriteLine("3. Zabójca");
Console.WriteLine("4. Mag");
Console.WriteLine("5. Czarnoksiężnik");
Console.WriteLine("6. Templariusz");
Console.WriteLine("7. Wampir");
Console.WriteLine("8. Łupieżca");
Console.Write("> ");
string selectClass = Console.ReadLine();
switch (selectClass){
case "1":
Klasa = "Wojownik";
Console.WriteLine("Wybrałeś klase: " + Klasa);
weapon = "Laga";
System.Threading.Thread.Sleep(1000);
Console.Clear();
break;
case "2":
Klasa = "Łucznik";
Console.WriteLine("Wybrałeś klase: " + Klasa);
weapon = "Łuk";
System.Threading.Thread.Sleep(1000);
Console.Clear();
break;
case "3":
Klasa = "Zabójca";
Console.WriteLine("Wybrałeś klase: " + Klasa);
weapon = "Nóż Kuchenny";
System.Threading.Thread.Sleep(1000);
Console.Clear();
break;
case "4":
Klasa = "Mag";
Console.WriteLine("Wybrałeś klase: " + Klasa);
weapon = "Mop";
System.Threading.Thread.Sleep(1000);
Console.Clear();
break;
case "5":
Klasa = "Czarnoksiężnik";
Console.WriteLine("Wybrałeś klase: " + Klasa);
weapon = "Kij";
System.Threading.Thread.Sleep(1000);
Console.Clear();
break;
case "6":
Klasa = "Templariusz";
Console.WriteLine("Wybrałeś klase: " + Klasa);
weapon = "Drewniana Buława";
System.Threading.Thread.Sleep(1000);
Console.Clear();
break;
case "7":
Klasa = "Wampir";
Console.WriteLine("Wybrałeś klase: " + Klasa);
weapon = "Kastet";
System.Threading.Thread.Sleep(1000);
Console.Clear();
break;
case "8":
Klasa = "Łupieżca";
Console.WriteLine("Wybrałeś klase: " + Klasa);
weapon = "Długi kij";
System.Threading.Thread.Sleep(1000);
Console.Clear();
break;
default:
Console.WriteLine("Nieprawidłowa komenda.");
System.Threading.Thread.Sleep(1000);
Console.Clear();
break;
}
}
Console.WriteLine("Komendy: menu");
Console.Write("> ");
//-------------Bronie_Początkowe------------------//
if (weapon == "Laga"){//Wojownik
dmgBroni = 5;
}
//-----------------------------------------------//
while(true){
string select = Console.ReadLine();
switch (select){
case "menu":
Console.Clear();
Console.WriteLine("Nick: " + nick + " " + "Złoto: " + gold + " " + "Exp: " + exp + " " + "Poziom: " + lvl + " " + "Klasa: " + Klasa);
Console.WriteLine("1. Przygoda");
Console.WriteLine("2. Arena");
Console.WriteLine("3. Kowal");
Console.WriteLine("4. Dungeony");
Console.WriteLine("5. Statystyki");
Console.WriteLine("6. Ekwipunek");
Console.WriteLine("7. Sklep");
Console.Write("> ");
break;
case "2":
Console.Clear();
Console.WriteLine("Walczysz z Gladiatorem Klasa: [Wojownik]");
Console.WriteLine(" ");
System.Threading.Thread.Sleep(1000);
for(int i = 1; i <= zdrowieGladiatora; i++){
Console.WriteLine("<" + nick + " HP: " + hp + "> " + "Atakuje " + "<" + "Gladiatora" + " HP: " + zdrowieGladiatora + "> " + " \nZadając: " + dmg + " " + "Obrażenia Broni: " + dmgBroni);
Console.WriteLine(" ");
zdrowieGladiatora -= dmg+dmgBroni;
System.Threading.Thread.Sleep(1000);
Console.WriteLine("<" + "Gladiator" + " HP: " + zdrowieGladiatora + "> " + "Atakuje " + "<" + nick + " HP: " + hp + "> " + "\nZadając: " + dmgGladiatora );
Console.WriteLine(" ");
hp -= dmgGladiatora;
System.Threading.Thread.Sleep(1000);
if (hp <= 0){
Console.WriteLine("Przegrałeś!");
System.Threading.Thread.Sleep(1000);
break;
}if (zdrowieGladiatora <= 0){
Console.WriteLine("Wygrałeś!");
gold = gold + 5;
exp = exp + 10;
System.Threading.Thread.Sleep(1000);
break;
}
}
Console.ReadKey();
goto case "menu";
default:
Console.WriteLine("Nieprawidłowa komenda. Powracanie do menu głównego...");
System.Threading.Thread.Sleep(1000);
Console.Clear();
goto case"menu";
case "5":
Console.Clear();
Console.WriteLine("Życie: " + hp + "|" + "Mana: " + mana + "|" + "Obrażenia: " + dmg + "|" + "Obrażenia Broni: " + dmgBroni);
Console.Write("> ");
break;
case "6":
Console.Clear();
for (int indeks = 0; indeks < Ekwipunek.Length; indeks++)
{
Console.WriteLine(Ekwipunek[indeks]);
}
Console.WriteLine("Kliknij dowolny klawisz by powrócic do menu głównego");
Console.ReadKey();
goto case"menu";
case "add dmg":
dmg = dmg+10;
goto case"5";
case "add hp":
hp = hp+10;
goto case"5";
case "set weapon null":
weapon = null;
goto case"menu";
}
Ekwipunek[0] = "Broń: " + weapon;
Ekwipunek[1] = "Zbroja: " + armor;
Ekwipunek[2] = "Artefakt: " + artifacts;
Ekwipunek[3] = "Pierścień: " + ring;
Ekwipunek[4] = "Kryształ Mocy: " + CrystalOfPower;
Ekwipunek[5] = "Hełm: " + helmet;
Ekwipunek[6] = "Esencja: " + essence;
if (weapon == null){
dmgBroni = 0;
}
}
}
}
}
Ta jest zacna.
https://www.ifj.edu.pl/private/grebosz/opus.html