Odjechani.com.pl

Pełna wersja: c++-prosta gra w konsoli
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Siema

Dzisiaj napisałem prostą grę w c++. Ma za zadanie pomóc uczenia się szybkiego liczenia w pamięci. Na początek trzeba podać z ilu cyfr mają się składać liczby do policzenia, potem czy chce się dodawać czy odejmować. Pojawią się dwie liczby i trzeba je możliwie jak najszybciej dodać lub odjąć(w zależności od tego co się wybrało). Jeśli dobrze się policzy te liczby, program o tym poinformuje i wyświetli czas w jakim to się zrobiło.
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <time.h>
using namespace std;
clock_t start, stop;
int a,b,wynik,odp;
short int cyfry=1, wybor=1;
int main()
{
    for(;;)
    {
    cout<<"Podaj z ilu cyfr maksymalnie ma sie skladac liczba(1-4): ";cin>>cyfry;
    switch(cyfry)
    {
    case 1:
    cyfry=10;
    break;
    case 2:
    cyfry=100;
    break;
    case 3:
    cyfry=1000;
    break;
    case 4:
    cyfry=10000;
    break;
    default:
    exit(0);
    break;
    }
    cout<<"Podaj czy chcesz dodawac czy odejmowac(1-dodawanie,2-odejmowanie): ";cin>>wybor;
    srand( time( NULL ) );
    a=(rand()%cyfry)-1;
    b=(rand()%cyfry)-1;
    cout<<"Pierwsza liczba: "<<a<<endl<<"Druga liczba: "<<b<<endl;
    if(wybor==1)
    {
    wynik=a+b;
    }
    else if(wybor==2)
    {
    wynik=a-b;
    }
    else
    {
    exit(0);
    }
    cout<<"Podaj wynik: ";
    start=clock();
    cin>>odp;
    if(odp==wynik)
    {
    stop=clock();
    cout<<"Dobra odpowiedz !"<<endl;
    cout<<"Czas odpowiedzi to: "<<(double)(stop-start)/CLOCKS_PER_SEC<<" sekund."<<endl<<endl;
    }
    else
    {
    cout<<"Zla odpowiedz."<<endl<<endl;
    }
    }
    return 0;
}
http://przeklej.org/file/hkcfHi/Jaka.liczba.exe
Ciekawy program, szczerze powiem, że z trzycyfrowymi liczbami miałem problem, bo nie są one generowane w stylu 300-250, tylko np. 373-47 Ok

Dobrze przećwicza liczenie w pamięci.
Ech... Gdyby nie to że szybkie liczenie w pamięci mam już za sobą chętnie bym skorzystał.

Powodzenia w dalszym pisaniu!
Już napisałem trochę lepszą wersję, choć i tak nie wszystko działa po mojej myśli.


#include <iostream>
#include <cstdlib>
#include <ctime>
#include <math.h>
using namespace std;
clock_t start, stop;
int a,b,wynik,odp,x=10;
int cyfry=1, wybor=1;
int main()
{
    cout<<"NIEDOKONCZONA WERSJA"<<endl<<endl;
    for(;;)
    {
    cout<<"Podaj z ilu cyfr maksymalnie ma sie skladac liczba: ";cin>>cyfry;
    x=pow(10, cyfry);
    cout<<"Podaj czy chcesz dodawac czy odejmowac(1-dodawanie,2-odejmowanie): ";cin>>wybor;
    srand( time( NULL ) );
    a=(rand()%x);
    b=(rand()%x);
    if(wybor==1)
    {
    wynik=a+b;
    cout<<a<<"+"<<b<<"=";
    }
    else if(wybor==2)
    {
    wynik=a-b;
    cout<<a<<"-"<<b<<"=";
    }
    else
    {
    exit(0);
    }
    start=clock();
    cin>>odp;
    if(odp==wynik)
    {
    stop=clock();
    cout<<"Dobra odpowiedz !"<<endl;
    cout<<"Czas odpowiedzi to: "<<(double)(stop-start)/CLOCKS_PER_SEC<<" sekund."<<endl<<endl;
    }
    else
    {
    cout<<"Zla odpowiedz. Prawidlowa odpowiedz to: "<<wynik<<endl<<endl;
    }
    }
    return 0;
}


http://przeklej.org/file/ewBU5Y/jaka.liczba.v2.exe
Dobre, tylko po wpisaniu dużej liczby cyfr program wpada w błędne koło.
Wiem, są pewne niedociągnięcia. W wolnej chwili będę nad nimi pracował. Docelowo program nie będzie w konsoli ale w oknie z przyciskami.
No dobra, już ostatecznie ustaliłem jak ma to dokładnie wyglądać. http://przeklej.org/file/qaH0cQ/Algorytm...liczba.pdf
Przepisałem ten program na C.
#include <stdio.h>
#include <time.h>
clock_t start, stop;
int a,b,wynik,odp;
short int cyfry=1, wybor=1;
int main()
{
    for(;;)
    {
    printf("Podaj z ilu cyfr maksymalnie ma sie skladac liczba(1-4): ");scanf("%d",&cyfry);
    switch(cyfry)
    {
    case 1:
    cyfry=10;
    break;
    case 2:
    cyfry=100;
    break;
    case 3:
    cyfry=1000;
    break;
    case 4:
    cyfry=10000;
    break;
    default:
    exit(0);
    break;
    }
    printf("Podaj czy chcesz dodawac czy odejmowac(1-dodawanie,2-odejmowanie): ");scanf("%d",&wybor);
    srand( time( NULL ) );
    a=(rand()%cyfry)-1;
    b=(rand()%cyfry)-1;
    printf("Pierwsza liczba: %d\nDruga liczba: %d\n",a,b);
    if(wybor==1)
    {
    wynik=a+b;
    }
    else if(wybor==2)
    {
    wynik=a-b;
    }
    else
    {
    printf("Blad");
    }
    printf("Podaj wynik: ");
    start=clock();
    //cin>>odp;
    scanf("%d",&odp);
    if(odp==wynik)
    {
    stop=clock();
    printf("Dobra odpowiedz !\n");
    double r=(double)(stop-start)/CLOCKS_PER_SEC;
    printf("Czas odpowiedzi to: %f sekund\n",r);
    }
    else
    {
    printf("Zla odpowiedz.\n\n");
    }
    }
    return 0;
}