atarionline.pl Pomocna dłoń przy C++ szukana - Forum Atarum

Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.

  • :
  • :

Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.

    • 1:
       
      CommentAuthorMaW
    • CommentTime1 Sep 2012 zmieniony
     
    Szukam pomocy przy przeniesieniu projektu z innego języka - m.in. cały panel muszę zrobić od nowa, a np. takie wygenerowanie widoku tabeli sudoku [3x(3x3)x3] to dla mnie czarna magia. Jeżeli ktoś byłby chętny mi pomóc, proszę o kontakt. Z góry dziękuję - mam nadzieję, że będę mógł się w jakiś sposób odwdzięczyć.
    • 2: CommentAuthorilmenit
    • CommentTime2 Sep 2012
     
    Opisz w czym na priv, albo najlepiej tutaj :-)
    • 3:
       
      CommentAuthorMaW
    • CommentTime2 Sep 2012
     
    ...albo przynajmniej może ktoś wie, jaki element(komponent) widoku w visual studio 2010 express odpowiada tabeli ew. jak pod datagrid podłączyć array 2x2 bez używania komponentów database/sql ?
    • 4:
       
      CommentAuthorMaW
    • CommentTime4 Sep 2012
     
    chyba zacznę sam do siebie gadać :-)
    static function shuffle (arr:Array):Array {
    //
    var rnd:Function = function ():Number {
    //
    return ((Math.random() * 2) ? -1 : 1);
    };
    return (arr.sort (rnd));
    }
    jak powinien wyglądać odpowiednik tej metody w C++ (tasowanie tabeli) ?
    • 5: CommentAuthorilmenit
    • CommentTime4 Sep 2012 zmieniony
     
    #include <algorithm>
    int n[4] = {0,1,2,3};
    random_shuffle(n, n+4);


    Zamiast tablicy używaj w C++ vectora. Właściwie same zalety, w tym w wersji debug jest kontrola zakresów.

    #include <algorithm>

    std::vector <int> tablica;

    random_shuffle(tablica.begin(), tablica.end());


    Przykłady:
    ->link<-
    ->link<-
    ->link<-
    ->link<-

    Co do komponentów i widoków to wiele nie pomogę, ale i tak podaj z wykorzystaniem jakiej biblioteki to piszesz? MFC? WTL? .NET?
    Jak chodzi o docelowo platformy mobilne, to C++ nie jest najlepszym rozwiązaniem. Na Androida piszesz w Javie. Na Iphone w ObjectiveC. Jeżeli chcesz pisać na jedno i na drugie, to pozostaje jakaś wieloplatformowa biblioteka. A tych do wyboru-do koloru. Konkretnej nie polecę. Sam próbuję robić coś w cocos2d-x, ale same przygotowanie środowiska pracy to katorga, nie mówiąc już o debugowaniu kodu.
    • 6:
       
      CommentAuthorMaW
    • CommentTime4 Sep 2012 zmieniony
     
    Dzięki, nawet nie wiedziałem, że w C++ jest "gotowiec" - z tego, co oglądałem w googlach wszyscy skłaniali się do rozwiązywania tego za pomocą sortowania "bogo" (zwariowanego).

    Też uważam, że objC jest lepszy - niestety, chcąc nie chcąc ten jeden jedyny projekt muszę zrobić w C++ (targetem nie jest mobile-to po prostu projekt, który muszę zrobić :( ).

    Korzystam z dotNeta - to chyba jedyna biblioteka, jaka w VS2010express jest dostępna (ale jestem kompletnym noobem w tym temacie, więc mogę się mylić).

    Korzystając z tego, że jesteśmy na forum atarowskim - dla używających basic-ów: tasowanie można zrobić w postaci przejść z losowym przestawianiem - im więcej iteracji się zrobi, tym tasowanie dokładniejsze (poniżej).

    10 DIM A(10):B=0
    20 FOR I=0 TO 9:A(I)=I:? A(I);",";:NEXT I:?
    30 FOR ITER=0 TO 2
    40 TRAP 70:FOR I=1 TO 9
    50 IF ((RND(0)*2)<1) THEN B=A(I):A(I)=A(I-1):A(I-1)=B
    60 ? A(I);" ";A(I-1)
    70 NEXT I
    80 NEXT ITER
    90 FOR I=0 TO 9:? A(I);",";:NEXT I:?
    • 7: CommentAuthorilmenit
    • CommentTime4 Sep 2012 zmieniony
     
    Dla dotNeta wygodniej będzie pewnie użyć C# niż C++, bo zarządzany C++ to unikalny język od MS.
    • 8:
       
      CommentAuthorMaW
    • CommentTime6 Sep 2012 zmieniony
     
    Obecnie piszę tego appsa pod ActionScript3 (stwierdziłem, że będzie szybciej) - jakbym komuś objaśnił sposób działania (algorytmy raczej są do przeniesienia 1:1), to czy ktoś mógł by mi go przenieść do C++ ? Oczywiście nie za friko-trochę już jestem przyparty do muru :(.

    (@Ilmenit: dzięki za bieżącą pomoc; szkoda, że nie masz więcej czasu :( )