Pokaż wyniki 1 do 4 z 4

Temat: Algorytm w C++

  1. #1
    Zarejestrowany
    Aug 2008
    Postów
    3

    Domyślnie Algorytm w C++

    Potrzebuję waszej pomocy mianowicie piszę program do gry w kółko i krzyżyk (nie smiać się dopiero zaczynam) Naturalnie plansza nie jest 3x3 jak normalnie tylko 10x10 żeby wygrać trzeba ułożyć 5 w linii (jak na kurniku). Mam problem z algorytmem sprawdzającym czy gra jest wygrana czy nie .. zupełnie nie wiem jak się do tego zabrać.. ify ? w programie robi się ogromny bałagan. Myślałem jeszcze żeby zrobić to rekurencyjnie coś na wzór konika szachowego i obiegu wszystkich pól ale nie za bardzo mi wyszło ..Z góry dzięki za pomoc..

  2. #2
    Zarejestrowany
    Jul 2008
    Postów
    17

    Domyślnie

    Ify : )
    W programie nie zrobi się bałagan jeśli zrobisz to w oddzielnej funkcji. W programie będziesz mieć samo wywołanie i brak bałaganu.
    Swoją drogą właśnie sobie zdałem sprawę ży nigdy nie pisałem XO, najwyższa pora : )

  3. #3
    Zarejestrowany
    Aug 2008
    Postów
    1

    Domyślnie :)

    Myślę że mam pomysł jak ci pomóc.
    1 Po pierwsze oznacz sobie pola np jak na szachach, ale możesz każde pole nazwać inaczej.
    2 Krzyżyki oznacz np jako 1, a kółka jako 2.
    3 Po po drugie wyznacz sobie możliwe kombinacje wygranych( pamiętaj przy tym że nie wszystkie wygrane to koniecznie 5 ułożonych obok siebie kółek, ale tutaj tym się nie martw bo jak wyznaczysz wszystkie "piątki" to nawet jak będzie 6 ułożonych to piątka w tym będzie. (Problem w tym że może to wyglądać jak dwie wygrane ale nie jestem pewien co się do końca stanie.)
    4 I teraz jak już wyznaczyłeś możesz przejść do sprawdzania:
    (w tym przykładzie pola są oznaczone z lewej do prawej literami alfabetu)
    if(a==b==c==d==e==1)
    {
    wygrana krzyżyków();
    }
    if(a==b==c==d==e==2)
    {
    wygrana kółek();
    }
    5 Jeszcze odnośnie punktu 3 odnośnie większej ilości kółek w rzędzie możesz zrobić zagnieżdżoną pętle
    if(a==b==c==d==e==1)
    {
    if(a==b==c==d==e==f==1)
    wygrana krzyżyków();
    else
    wygrana krzyżyków();
    }
    ale pamiętaj żeby ten kodzik:
    if(a==b==c==d==e==1)
    {
    if(a==b==c==d==e==f==1)
    wygrana krzyżyków();
    else
    wygrana krzyżyków();
    }
    był tylko tu/\ a w tym\/ miejscu nic nie robił:
    if(b==c==d==e==f==1)
    {
    if(a==b==c==d==e==f==1)

    else
    wygrana krzyżyków();
    }
    Są oczywiście inne sposoby ale myślę że ten będzie dla ciebie dość dobry I pamiętaj najpierw usiądź z kartką i długopisem a potem zacznij programować.
    Jak skończysz chciałbym zobaczyć twoja gierkę;p

  4. #4
    Zarejestrowany
    Aug 2008
    Postów
    3

    Domyślnie

    Już sobie poradziłem z tym problemem Zrobiłem trzy oddzielne pętle które przeszukują całą tablicę i wszystko śmiga jak należy. Tutaj jest kod:

    bool poziom(POLE (&tab)[10][10])
    {

    unsigned short int Ile_w_linii=0;
    for(int k=0;k<y;k++) //Sprawdzamy poziom
    {
    for(int l=0;l<x;l++)
    {
    if(tab[k][l]==static_cast<POLE>(1))
    {
    Ile_w_linii++;
    if(Ile_w_linii==5)
    return true;
    }
    else
    Ile_w_linii=0;
    }
    Ile_w_linii=0;
    }
    }
    To tylko pętla sprawdzająca poziom, pion i przekątne robimy analogicznie zamieniając miejscami dwie zmienne

Podobne wątki

  1. IPHASH - algorytm
    By tom502 in forum Kryptografia
    Odpowiedzi: 8
    Autor: 02-26-2009, 14:45
  2. Algorytm
    By slawek14 in forum Delphi/Pascal/Lisp
    Odpowiedzi: 2
    Autor: 05-19-2007, 15:40

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj

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