Prawdziwe oblicze Informatyki. Tysiące linijek kodu i kompilatory które nigdy nie wybaczają.
Awatar użytkownika

winuser

Zasłużony użytkownik
Posty: 1029
Rejestracja: 29 sie 2013, 12:15
    Windows 10 Chrome

Post09 sty 2016, 16:59

Cześć, muszę napisać (dość dla mnie dziwny, jako osoby nie korzystającej kilka lat z C++) program o takiej specyfikacji:
Należy stworzyć grę „w 33” wg poniższych założeń. Gra powinna być napisana w języku C++,
w formie aplikacji konsolowej lub okienkowej (do wyboru). Przebieg działania aplikacji:
Użytkownik podaje swoje imię. Następnie zaczyna się gra: użytkownik podaje liczbę od 1 do 3. Dalej
przeciwnik (czyli program o imieniu Komputer), losuje liczbę z zakresu od 1 do 3 i dodaje do liczby
podanej przez przeciwnika i wyświetla wynik dodawania. Jeśli liczba podana przez użytkownika
jest większa od 15, komputer sprawdza, czy może podać liczbę będącą wielokrotnością liczby 4
– jeśli może, podaje właśnie tą liczbę (przez to ma szansę na wygraną z człowiekiem).
Następne kroki to podawanie wyników sumy poprzedniej liczby z liczbami z zakresu od 1 do 3
na przemian. Podaną przez użytkownika liczbę należy zweryfikować, czy faktycznie jest sumą
poprzedniej liczby oraz liczby z zakresu od 1 do 3. Jeśli nie, upominamy użytkownika i prosimy o
podanie poprawnej wartości i tak w koło.
Gra toczy się aż do liczby 33. Kto jest zmuszony podać taką liczbę - przegrywa. Zwycięzcę należy
podać w formie: "Grę wygrywa <imię>!".
Z poprzedniego, podobnego programu, mam tyle:

Kod: Zaznacz cały

#include <iostream> #include <cstdlib> #include <ctime> using namespace std; int main() { int x=0, suma=1,turn=1; srand( time( NULL ) ); cout << suma << endl; while (suma<33) { if (turn==1) { cin >> x; if ((x>0)&&(x<4)&&(suma+x<=33)) { suma+=x; cout << suma << endl; turn=2; } } else if (turn==2) { x=( rand() % 2 ) + 1; if (suma+x<=33) { suma+=x; cout << suma << endl; turn=1; } } if (suma==33) { cout << (turn==1?"Wygrales!":"Przegrales!"); } } }
Jak to zmodyfikować, jakie warunki muszę dodać w pętli, żeby to działało jak powinno ? Stawiam browary każdemu, kto pomoże, bo muszę to mieć na jutro, więc nockę raczej zarwę \\ :(
Mój PC:
Intel Core i5 2400S @2.5GHz + SilentiumPC SpartanPro | Gateway DT71 | ATI Radeon HD5450 1GB | 8 GB RAM Kingston| Patriot Blaze SSD 120 GB | Seagate ST2000DM001 HDD 2TB | Windows 7 Pro x64
Laptop:
Lenovo IdeaPad Y580 | Intel Core i7 3630QM @ 3.4 GHz| nVidia GeForce GTX650M | 16GB RAM Kingston | Kingston mSATA 128GB + 2x HGST 1TB | MacOS Sierra 10.12.6 i Windows 10
Serwer:
HP Thin T610 | AMD G-T56N @ 1.65GHz | Radeon HD 6320 | 6GB RAM Kingston | HGST 500GB + Seagate 2TB | Debian 9 Testing x64
Apple iPhone SE | Apple A9 @1.85 GHz | PowerVR GT7600 | 2GB RAM | 128GB PAMIĘCI | iOS 11.0.2
PlayStation 4 | CUH-1116A | 1TB |
Inne telefony:
Spoilerpokaż
Apple iPhone 5 | Apple A6 @1.3 GHz | PowerVR G6430 | 1GB RAM | 32GB PAMIĘCI | iOS 10.3
Nokia N9 | TI OMAP3630 @1,1GHz OC | PowerVR SGX-530 | 1GB RAM LPDDR | 16 GB PAMIĘCI | MeeGo 1.2 Harmattan
Lumia 520 | Qualcomm MSM8227 @ 1GHz | Qualcomm Adreno 305 | 512MB RAM | 8GB PAMIĘCI| WP 8.1 GDR2

Awatar użytkownika

bsystem

Zasłużony użytkownik
Posty: 652
Rejestracja: 03 lis 2010, 16:44
    Linux Firefox

Post09 sty 2016, 17:35

KOCHAM NAZWY ZMIENNYCH W DWÓCH JĘZYKACH
Spoilerpokaż
Asus n61v | c2d p7450 | GT 240m | 4GB DDR3 | 320GB | Windows 8.1 x64
Fujitsu Siemens Esprimo V5505 | C2D T7550 2,2GHz 4MB Cache L2 (Merom) | 4GB RAM DDR2| 120GB| Windows 8.1 x64
Pentium 4 |Pentium 4 3.0GHz (Prescott) | 1 GB RAM DDR1 | 60 GB |Windows 8 RTM
Toshiba Satellite 1400-503 | Celeron-S 1,33GHz (tualatin :hyhy:) | 768 MB SD-RAM | 40GB | Windows XP SP3
K6-2| AMD K6-2 300MHz | 64MB SD-RAM |1GB| Windows 2000 Fresh by Rublik
Serwer 'Sempik': AMD Sempron 2800+ | ASUS K8V-MX | 1024 MB RAM DDR1 | S3 Graphics DeltaChrome Pro IGP | 20GB + 500GB | Windows 2k8
Pentium 4 1,7 GHz| OEM Fujitsu | 512MB SD RAM| 40GB
Sempron 2200+ | jakieś mobo MSI | 128MB DDR | 40GB
Intel Pentium III Coppermine | mobo na intelu | 128MB SD RAM | 80GB
Sempron 2800+ | ASRock K8NF4G-SATA2 | 512MB DDR | 160GB RAID0
Pentium II | mobo na slot1 | 128MB SD RAM | 2GB


Komputery mniej lub bardziej kompletne:

Amilo M7400 | Pentium M 1,3 GHz (Banias)| 512 MB RAM | dysk zbrickowany | +15" CRT
iPhone 5c + Dell e6230

Awatar użytkownika

pc.qwerty

Zasłużony użytkownik
Posty: 3273
Rejestracja: 01 lip 2010, 11:28
    Windows 7 Chrome

Post09 sty 2016, 19:51

Nie wiem czy dobrze zrozumiałem polecenie ale program nawet działa (pisałem od zera). Wiem że kod jest brzydki jak noc, jak chcesz to mogę dodać komentarze.

Kod: Zaznacz cały

#include <iostream> #include <cstdlib> #include <ctime> using namespace std; int main(){ int liczba_uzytkownik,liczba_komputer,licznik=0,suma=0,komputer_zakres; komputer_zakres=4; srand(time(NULL)); string imie; cout<<"Podaj imie: "; cin>>imie; do{ cout<<"Podaj liczbe [1-3]: "; cin>>liczba_uzytkownik; } while(liczba_uzytkownik==0||liczba_uzytkownik>3); suma+=liczba_uzytkownik; do(liczba_komputer=rand()%4); while(liczba_komputer==0); suma+=liczba_komputer; cout<<"Komputer podaje: "<<suma<<"\n"; for(;;){ if(suma==32){cout<<"Wygral komputer";break;} if(suma==33){cout<<"Wygral "<<imie; break;} licznik++; cout<<"Podaj liczbe: ["<<suma<<"+[1-3]: "; cin>>liczba_uzytkownik; if(liczba_uzytkownik<=suma||liczba_uzytkownik>suma+3){cout<<"Bledna liczba\n";} else{ suma=liczba_uzytkownik; if(suma>15&&licznik<2){ for(int i=1;i<9;i++){ if(4*i>suma&&4*i<33){ liczba_komputer=4*i; break; } } suma=liczba_komputer; cout<<"Komputer podaje: "<<suma<<"\n"; } else{ if(suma==32){liczba_komputer=1;} else{ if(suma>30) komputer_zakres=2; do{ liczba_komputer=rand()%komputer_zakres; if(liczba_komputer!=0&&suma+liczba_komputer<34) break; } while(1); } suma+=liczba_komputer; cout<<"Komputer podaje: "<<suma<<"\n"; } } } }
There is no cloud. It's just someone else's computer.

Awatar użytkownika

winuser

Zasłużony użytkownik
Posty: 1029
Rejestracja: 29 sie 2013, 12:15
    Windows 7 Chrome

Post09 sty 2016, 23:08

@pc.qwerty, wiszę Ci dobre piwo co najmniej :) Wielkie dzięki :)
Mój PC:
Intel Core i5 2400S @2.5GHz + SilentiumPC SpartanPro | Gateway DT71 | ATI Radeon HD5450 1GB | 8 GB RAM Kingston| Patriot Blaze SSD 120 GB | Seagate ST2000DM001 HDD 2TB | Windows 7 Pro x64
Laptop:
Lenovo IdeaPad Y580 | Intel Core i7 3630QM @ 3.4 GHz| nVidia GeForce GTX650M | 16GB RAM Kingston | Kingston mSATA 128GB + 2x HGST 1TB | MacOS Sierra 10.12.6 i Windows 10
Serwer:
HP Thin T610 | AMD G-T56N @ 1.65GHz | Radeon HD 6320 | 6GB RAM Kingston | HGST 500GB + Seagate 2TB | Debian 9 Testing x64
Apple iPhone SE | Apple A9 @1.85 GHz | PowerVR GT7600 | 2GB RAM | 128GB PAMIĘCI | iOS 11.0.2
PlayStation 4 | CUH-1116A | 1TB |
Inne telefony:
Spoilerpokaż
Apple iPhone 5 | Apple A6 @1.3 GHz | PowerVR G6430 | 1GB RAM | 32GB PAMIĘCI | iOS 10.3
Nokia N9 | TI OMAP3630 @1,1GHz OC | PowerVR SGX-530 | 1GB RAM LPDDR | 16 GB PAMIĘCI | MeeGo 1.2 Harmattan
Lumia 520 | Qualcomm MSM8227 @ 1GHz | Qualcomm Adreno 305 | 512MB RAM | 8GB PAMIĘCI| WP 8.1 GDR2

Awatar użytkownika

pc.qwerty

Zasłużony użytkownik
Posty: 3273
Rejestracja: 01 lip 2010, 11:28
    Windows 7 Chrome

Post09 sty 2016, 23:21

Cieszę się, że działa zgodnie z założeniami.
There is no cloud. It's just someone else's computer.

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 3 gości