Witamy w Nieoficjalnym polskim support'cie AMX Mod X
Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
|

#1
Napisano 04.01.2013 21:52
Twoim zadaniem domowym jest napisanie prostej gry, która ma działać następująco:
1. Program losuje liczbę z przedziału od 1 do 1000.
2. Użytkownik zgaduje liczbę, która została wylosowana.
3. Jeżeli podana liczba jest za duża (za mała) gra wypisuje stosowny komunikat i powraca do kroku 2.
4. Jeżeli gracz trafi liczbę wylosowaną to progam kończy działanie, wypisując na ekran wylosowaną liczbę oraz liczbę 'strzałów', które oddał gracz.
Gra ma być zabezpieczona przed możliwością wprowadzenia błędnych wartości liczbowych.
#2
Napisano 04.01.2013 22:26
2. Znam tylko podstawy C++ i możliwe, że kod dało się napisać i ładniej i lepiej.
3. Chyba działa, więc święto.
4. Pisane na Code:Blocks
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68.
#include <iostream> #include <cstdlib> #include <ctime> int main() { srand( time( NULL ) ); int liczba =( rand() % 999 ) + 1; int ile_razy = 0; int twoja; std::cin.clear(); std::cin.sync(); std::cout << "Zgadnij liczbe!" << std::endl << std::endl; std::cin >> twoja; if(twoja < 1 || twoja > 1000){ do{ std::cin.clear(); std::cin.sync(); std::cout << "Jeszcze raz!" << std::endl << std::endl; std::cin >> twoja; }while(twoja < 1); do{ std::cin.clear(); std::cin.sync(); std::cout << "Jeszcze raz!" << std::endl << std::endl; std::cin >> twoja; }while(twoja > 1000); } if(std::cin.good()){ do{ if(twoja > liczba){ ile_razy++; std::cin.clear(); std::cin.sync(); std::cout << "Za duzo!" << std::endl << std::endl; std::cin >> twoja; } else { ile_razy++; std::cin.clear(); std::cin.sync(); std::cout << "Za malo!" << std::endl << std::endl; std::cin >> twoja; } }while(liczba != twoja); } else { std::cin.clear(); std::cin.sync(); std::cout << "Jeszcze raz!" << std::endl << std::endl; std::cin >> twoja; } if(liczba == twoja){ std::cout << "Zgadles!!! Zgadywales: " << ile_razy << std::endl; std::cin >> twoja; //zeby program sie nie zamknal :D } return 0; }
Piszę pluginy pod: AMX MOD X oraz SOURCE MOD!
Na zlecenie i bez zlecenia zresztą też!
#3
Napisano 04.01.2013 22:43
#4
Napisano 04.01.2013 22:47

#include <iostream> #include <limits> #include <stdlib.h> #include <time.h> using namespace std; main(){ srand(time(0)); int g_RandomNumber = rand() % 1000 + 1, g_Number, g_Attempt = 0; cout<<"Podaj liczbe, ktora wedlug Ciebie zostala wylosowana:"<<endl; while(g_Number != g_RandomNumber){ if(cin>>g_Number){ if(g_RandomNumber != g_Number){ cout<<"Blad, podaj liczbe jeszcze raz:"<<endl; g_Attempt++; } } else{ cout<<"Tylko liczby ! Podaj liczbe jeszcze raz:"<<endl; cin.clear(); cin.ignore(numeric_limits<int>::max(), '\n'); } } cout<<"Podana liczba zgadza sie z wylosowana. Ilosc prob: "<<g_Attempt<<endl; }
If you can dream it, you can do it.
#5
Napisano 05.01.2013 12:32
Przy losowaniu musi być
#include <iostream> #include <limits> #include <stdlib.h> #include <time.h> using namespace std; main(){ srand(time(0)); int g_RandomNumber = rand() % 1001, // Musi być 1001, ponieważ 1000 to zakres od 0 do 999. g_Number, g_Attempt = 0; cout<<"Podaj liczbe, ktora wedlug Ciebie zostala wylosowana:"<<endl; while(g_Number != g_RandomNumber){ if(cin>>g_Number){ if(g_RandomNumber != g_Number){ cout<<"Blad, podaj liczbe jeszcze raz:"<<endl; g_Attempt++; } } else{ cout<<"Tylko liczby ! Podaj liczbe jeszcze raz:"<<endl; cin.clear(); cin.ignore(numeric_limits<int>::max(), '\n'); } } cout<<"Podana liczba zgadza sie z wylosowana. Ilosc prob: "<<g_Attempt<<endl; }
int g_RandomNumber = rand() % 1000 + 1bo ma losować od 1 do 1000, do tego nie pokazuje czy podana przez nas liczba jest mniejsza, czy większa.
Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo
#6
Napisano 05.01.2013 12:42
Przy losowaniu musi być
#include <iostream> #include <limits> #include <stdlib.h> #include <time.h> using namespace std; main(){ srand(time(0)); int g_RandomNumber = rand() % 1001, // Musi być 1001, ponieważ 1000 to zakres od 0 do 999. g_Number, g_Attempt = 0; cout<<"Podaj liczbe, ktora wedlug Ciebie zostala wylosowana:"<<endl; while(g_Number != g_RandomNumber){ if(cin>>g_Number){ if(g_RandomNumber != g_Number){ cout<<"Blad, podaj liczbe jeszcze raz:"<<endl; g_Attempt++; } } else{ cout<<"Tylko liczby ! Podaj liczbe jeszcze raz:"<<endl; cin.clear(); cin.ignore(numeric_limits<int>::max(), '\n'); } } cout<<"Podana liczba zgadza sie z wylosowana. Ilosc prob: "<<g_Attempt<<endl; }int g_RandomNumber = rand() % 1000 + 1bo ma losować od 1 do 1000, do tego nie pokazuje czy podana przez nas liczba jest mniejsza, czy większa.
Fakt, nie doczytałem

#include <iostream> #include <limits> #include <stdlib.h> #include <time.h> using namespace std; main(){ srand(time(0)); int g_RandomNumber = rand() % 1000 + 1, g_Number, g_Attempt = 0; cout<<"Podaj liczbe, ktora wedlug Ciebie zostala wylosowana:"<<endl; while(g_Number != g_RandomNumber){ if(cin>>g_Number){ if(g_RandomNumber != g_Number){ g_Number < g_RandomNumber ? cout<<"Podana liczba jest mniejsza od wylosowanej"<<endl : cout<<"Podana liczba jest wieksza od wylosowanej"<<endl; cout<<"Podaj liczbe jeszcze raz:"<<endl; g_Attempt++; } } else{ cout<<"Tylko liczby ! Podaj liczbe jeszcze raz:"<<endl; cin.clear(); cin.ignore(numeric_limits<int>::max(), '\n'); } } cout<<"Podana liczba zgadza sie z wylosowana. Ilosc prob: "<<g_Attempt<<endl; }
If you can dream it, you can do it.
#7
Napisano 16.08.2013 17:11
Sry za odkop, ale może komuś się jeszcze przyda.
Wszystkie wasze odpowiedzi są błędne, gdyż poza pierwszą użyto tu rzeczy, których nauka trwa w późniejszych etapach kursu.
Przesyłam wam moje rozwiązanie:
#include <iostream> #include <cstdlib> #include <ctime> using namespace std; int main() { srand( time (NULL) ); cout << " Zgadnij liczbe od 1 do 1000" <<endl; int liczba = (rand() %1000); long liczba2; int strzaly = liczba2- liczba2; do { cin >> liczba2; cin.clear(); cin.sync(); strzaly = strzaly++; if ( liczba == liczba2) cout << " Zgadles" << liczba <<endl; if (liczba < liczba2) cout << "Twoja liczba jest za duzo" <<endl; if (liczba > liczba2) cout << " Twoja liczba jest za mala" <<endl; }while (liczba != liczba2); cout << " Ilosc strzalow " << strzaly <<endl; cout << "KONIEC Wszelkie prawa itp :D by Maclaw :P" <<endl; return 0; }
Użytkownik maclaw01 edytował ten post 16.08.2013 17:15
JestMega.pl i Wszystko Jasne
#8
Napisano 16.08.2013 20:52
Sry za odkop, ale może komuś się jeszcze przyda.
Wszystkie wasze odpowiedzi są błędne, gdyż poza pierwszą użyto tu rzeczy, których nauka trwa w późniejszych etapach kursu.
Przesyłam wam moje rozwiązanie:
#include <iostream> #include <cstdlib> #include <ctime> using namespace std; int main() { srand( time (NULL) ); cout << " Zgadnij liczbe od 1 do 1000" <<endl; int liczba = (rand() %1000); long liczba2; int strzaly = liczba2- liczba2; do { cin >> liczba2; cin.clear(); cin.sync(); strzaly = strzaly++; if ( liczba == liczba2) cout << " Zgadles" << liczba <<endl; if (liczba < liczba2) cout << "Twoja liczba jest za duzo" <<endl; if (liczba > liczba2) cout << " Twoja liczba jest za mala" <<endl; }while (liczba != liczba2); cout << " Ilosc strzalow " << strzaly <<endl; cout << "KONIEC Wszelkie prawa itp :D by Maclaw :P" <<endl; return 0; }
No chyba nie bardzo
swoją drogą ciekawa gra do wygrania w max 10 krokach

Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka
GG:6022845 (nie pomagam za free osobom ponizej rangi MoD)

#9
Napisano 16.08.2013 21:35
Jeśli toSry za odkop, ale może komuś się jeszcze przyda.
Wszystkie wasze odpowiedzi są błędne, gdyż poza pierwszą użyto tu rzeczy, których nauka trwa w późniejszych etapach kursu.
Przesyłam wam moje rozwiązanie:#include <iostream> #include <cstdlib> #include <ctime> using namespace std; int main() { srand( time (NULL) ); cout << " Zgadnij liczbe od 1 do 1000" <<endl; int liczba = (rand() %1000); long liczba2; int strzaly = liczba2- liczba2; do { cin >> liczba2; cin.clear(); cin.sync(); strzaly = strzaly++; if ( liczba == liczba2) cout << " Zgadles" << liczba <<endl; if (liczba < liczba2) cout << "Twoja liczba jest za duzo" <<endl; if (liczba > liczba2) cout << " Twoja liczba jest za mala" <<endl; }while (liczba != liczba2); cout << " Ilosc strzalow " << strzaly <<endl; cout << "KONIEC Wszelkie prawa itp :D by Maclaw :P" <<endl; return 0; }
cout << " Zgadnij liczbe od 1 do 1000" <<endl;zamienisz na
cout << " Zgadnij liczbe od 0 do 999" <<endl;to będziesz miał rację (o ile "gra" działa). I po coś jest "else if", którego u Ciebie jednak brakuje.
Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo
#10
Napisano 23.08.2013 10:38
Jeśli toSry za odkop, ale może komuś się jeszcze przyda.
Wszystkie wasze odpowiedzi są błędne, gdyż poza pierwszą użyto tu rzeczy, których nauka trwa w późniejszych etapach kursu.
Przesyłam wam moje rozwiązanie:#include <iostream> #include <cstdlib> #include <ctime> using namespace std; int main() { srand( time (NULL) ); cout << " Zgadnij liczbe od 1 do 1000" <<endl; int liczba = (rand() %1000); long liczba2; int strzaly = liczba2- liczba2; do { cin >> liczba2; cin.clear(); cin.sync(); strzaly = strzaly++; if ( liczba == liczba2) cout << " Zgadles" << liczba <<endl; if (liczba < liczba2) cout << "Twoja liczba jest za duzo" <<endl; if (liczba > liczba2) cout << " Twoja liczba jest za mala" <<endl; }while (liczba != liczba2); cout << " Ilosc strzalow " << strzaly <<endl; cout << "KONIEC Wszelkie prawa itp :D by Maclaw :P" <<endl; return 0; }cout << " Zgadnij liczbe od 1 do 1000" <<endl;zamienisz nacout << " Zgadnij liczbe od 0 do 999" <<endl;to będziesz miał rację (o ile "gra" działa). I po coś jest "else if", którego u Ciebie jednak brakuje.
Dzięki za uwage
#include <iostream> #include <cstdlib> #include <ctime> using namespace std; int main() { srand( time (NULL) ); cout << " Zgadnij liczbe od 1 do 1000" <<endl; int liczba = (rand() %1000) +1; long liczba2; int strzaly = liczba2- liczba2; do { cin >> liczba2; cin.clear(); cin.sync(); strzaly = strzaly++; if ( liczba == liczba2) cout << " Zgadles" << liczba <<endl; if (liczba < liczba2) cout << "Twoja liczba jest za duzo" <<endl; if (liczba > liczba2) cout << " Twoja liczba jest za mala" <<endl; }while (liczba != liczba2); cout << " Ilosc strzalow " << strzaly <<endl; cout << "KONIEC Wszelkie prawa itp :D by Maclaw :P" <<endl; return 0; }
Kod oczywiscie działa Teraz powinno być od 1 do 1000
JestMega.pl i Wszystko Jasne
#11
Napisano 24.08.2013 19:01
int liczba = (rand() %1000) +1;
skoro jest to liczba od 1 do 1000 to wystarczy unsigned short int
long liczba2;
zamiast long ponownie usingned short int
liczba2- liczba2;
przecież to jest 0 , po za tym zawsze inicjalizuj zmienne przed ich używaniem
odnosze się tutaj do
long liczba2;
po za tym konstrukcja if , else if i else a nie 3 ify
skoro już używasz clear to warto sprawdzać czy trzeba je wywoływać
http://stackoverflow...r-reading-input
Użytkownik DarkGL edytował ten post 24.08.2013 19:02
💸 SellYourSkins.com - Łatwo sprzedaj swoje skiny do CS:GO
💸⇄🃏 Automatyczny Bot Levelowania Steam - LVLUPSteam.com
🛒Coinsy CSGOPolygon Za SMS, PSC, Przelew - CoinSell.pro
Twój Sklep CS2 - CSGOPAKA
Coinsy do CSGOPolygon, CSGO500, CSGOEmpire - CSGOLombard.com
💸 Graj w CS2 / CS 1.6 i zarabiaj - BoostProject.pro
CS2 Gambling Sites and Free Betting Codes - DreamCodes.gg
Otwieraj skrzynki i wygrywaj najlepsze skiny CS2 na SkinsProject.gg
🤑 Accept CS2 skins for online payments and donations - SkinsMoney
Płatności SMS Premium Rate oraz Direct Biling - SimPay.pl
Szukasz noclegu? Kwatery, noclegi, tanie noclegi, wakacje oferty, wczasy nad jeziorem - RuszajWPolske.pl
#12
Napisano 25.08.2013 08:55
Wiesz te zadania są po to żebyś się sprawdził a nie pisał na forum o pomoc i kiedy skopiujesz czyiś kod przeszedł do następnej części kursu. Mam nadzieję że choć raz spróbowałeś samodzielnie napisać ten program.
#13
Napisano 01.12.2014 17:17
#14
Napisano 01.12.2014 17:32
#include <iostream> #include <cstdlib> #include <ctime> using namespace std; int main() { cout << "Losowanie liczby..."<<endl; srand( time( NULL ) ); int liczba =( rand() % 1000 ) + 1; int strzal, liczba_strzalow=0; do { cout<<"Podaj liczbe od 1 do 1000: "; cin>> strzal; if (strzal < 1 || strzal> 1000) { continue; } ++liczba_strzalow; if (strzal> liczba) { cout << "Wylosowana liczba jest mniejsza od Twojej typowanej." << endl; cout << "Sprobuj ponownie" << endl; } else if (strzal< liczba) { cout << "Wylosowana liczba jest wieksza od Twojej typowanej."; cout << "Sprobuj ponownie" << endl; } }while( strzal != liczba ); cout << "Brawo, trafiles we wlasciwa liczbe!"<<endl; cout << "Wylosowana liczba jest: "<< liczba<<endl; cout << "Strzelales "<<liczba_strzalow<<" razy!"<<endl; return 0; }Używaj "continue" i staraj się jednak przestrzegać zasady "DRY".
Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo
#15
Napisano 01.12.2014 17:52
Skompilowałem co napisałeś i działa poprawnie.
Jednakże nie rozumiem co robi "continue" w if-ie (robie kurs c++ w necie i nie doszedlem do tematu o tym)
nie spotkałem się dotąd z określeniem "zasady "DRY""
aha. no i jak jest że mam zabezpieczyć przed wprowadzeniem błędnych danych, np. "b"
to robie na początku pętli tak?
cin.sync(); cin.clear();
#16
Napisano 01.12.2014 17:55
http://pl.wikipedia.org/wiki/DRY
Jednakże nie rozumiem co robi "continue" w if-ie (robie kurs c++ w necie i nie doszedlem do tematu o tym)
continue odnosi się do pętli
💸 SellYourSkins.com - Łatwo sprzedaj swoje skiny do CS:GO
💸⇄🃏 Automatyczny Bot Levelowania Steam - LVLUPSteam.com
🛒Coinsy CSGOPolygon Za SMS, PSC, Przelew - CoinSell.pro
Twój Sklep CS2 - CSGOPAKA
Coinsy do CSGOPolygon, CSGO500, CSGOEmpire - CSGOLombard.com
💸 Graj w CS2 / CS 1.6 i zarabiaj - BoostProject.pro
CS2 Gambling Sites and Free Betting Codes - DreamCodes.gg
Otwieraj skrzynki i wygrywaj najlepsze skiny CS2 na SkinsProject.gg
🤑 Accept CS2 skins for online payments and donations - SkinsMoney
Płatności SMS Premium Rate oraz Direct Biling - SimPay.pl
Szukasz noclegu? Kwatery, noclegi, tanie noclegi, wakacje oferty, wczasy nad jeziorem - RuszajWPolske.pl
#17
Napisano 01.12.2014 18:06
http://pl.wikipedia.org/wiki/DRY
Jednakże nie rozumiem co robi "continue" w if-ie (robie kurs c++ w necie i nie doszedlem do tematu o tym)
continue odnosi się do pętli
tak do pętli, ale ja nwm co wogóle robi to "continue" :-D
#18
Napisano 01.12.2014 18:34
http://pl.wikipedia.org/wiki/DRY
Jednakże nie rozumiem co robi "continue" w if-ie (robie kurs c++ w necie i nie doszedlem do tematu o tym)
continue odnosi się do pętli
tak do pętli, ale ja nwm co w ogóle robi to "continue" :-D
Bardzo ładnie rozpisane http://cpp0x.pl/kurs...tinue-break/295
Również z jednym lub większą ilością słów kluczowych: c++
C++
amxx client_putinserver w dllNapisany przez csMaster, 26.07.2020 ![]() |
|
![]() |
|||
![]() |
C++
[ROZWIĄZANE] Wyciągnięcie danych z tablicy 2dNapisany przez Alelluja, 06.04.2020 ![]() |
|
![]() |
||
C++
Wyświetlanie zdjęcia na pulpicieNapisany przez Booom, 01.10.2019 ![]() |
|
![]() |
|||
C++
FilterKeySetter[Arrow Keys]Napisany przez qrNt, 29.01.2019 ![]() |
|
![]() |
|||
C++
Dekompilacja pliku exeNapisany przez RaS_, 05.02.2016 ![]() |
|
![]() |
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych