Hirdetés

Keresés

Új hozzászólás Aktív témák

  • disy68
    aktív tag

    Heló!

    Ezzel osztom el, hogy a pályán milyen valószínűséggel forduljanak elő az adott dolgok. Kicsit lehet hülyén van kivitelezve, de működik. Szakközép óta nem foglalkoztam javával, szóval 1-2 dolgot át kellett ismételnem a beadandóhoz. :D Úgy tudom, hogy a zárójelben lévő szám a legnagyobb, amit randomizálhat, a +0 meg a legkisebb.

    Nullát adni egy számhoz fölösleges, szerintem erre célzott a kolléga :)
    Ami viszont fontosabb, hogy a max érték exclusive, szóval a nextInt(50) 0 és 49 között ad neked egy random számot. Lásd: doksi

  • Aethelstone
    addikt

    Üdv!

    Egy kis segítséget szeretnék kérni. Egy játékot szeretnék írni java nyelven, viszont a pálya legenerálásával gondjaim akadtak. Azt szeretném, hogy a pálya legalább fele üres terület legyen, a többi részén pedig 5 különböző dolog megfelelő előfordulási valószínűséggel.
    A pálya egy 100x100-as 2D-s tömb lenne. A gond az, hogy mindenhova csak üres területet ('_' karakter) és fákat ('T' betű) generál, és utóbbiból is úgy néz ki, hogy túl sok van.

    Így néz ki a kódrészlet, ami a pálya generálását csinálja:
    for(int i=0; i<100; i++){
    for(int j=0; j<100; j++){
    Random randm=new Random();
    randmap=randm.nextInt(265)+0;
    if(randmap>=133 && 164<=randmap){
    map[j][i]='T';
    }else if(randmap>=165 && 174<=randmap){
    map[j][i]='Q';
    }else if(randmap>=175 && 216<=randmap){
    map[j][i]='w';
    }else if(randmap>=217 && 258<=randmap){
    map[j][i]='y';
    }else if(randmap>=259 && 265<=randmap){
    map[j][i]='*';
    }else{
    map[j][i]='_';
    }
    }
    }

    Tudna valaki segíteni, hogy hogy lehetne ezt megoldani? Előre is köszönöm a segítséget! :R

    Hali.

    A randm.nextInt(256)+0; mire való? Csak kíváncsiságból. Nem +1 akart lenni?

  • skoda12
    aktív tag

    Üdv!

    Egy kis segítséget szeretnék kérni. Egy játékot szeretnék írni java nyelven, viszont a pálya legenerálásával gondjaim akadtak. Azt szeretném, hogy a pálya legalább fele üres terület legyen, a többi részén pedig 5 különböző dolog megfelelő előfordulási valószínűséggel.
    A pálya egy 100x100-as 2D-s tömb lenne. A gond az, hogy mindenhova csak üres területet ('_' karakter) és fákat ('T' betű) generál, és utóbbiból is úgy néz ki, hogy túl sok van.

    Így néz ki a kódrészlet, ami a pálya generálását csinálja:
    for(int i=0; i<100; i++){
    for(int j=0; j<100; j++){
    Random randm=new Random();
    randmap=randm.nextInt(265)+0;
    if(randmap>=133 && 164<=randmap){
    map[j][i]='T';
    }else if(randmap>=165 && 174<=randmap){
    map[j][i]='Q';
    }else if(randmap>=175 && 216<=randmap){
    map[j][i]='w';
    }else if(randmap>=217 && 258<=randmap){
    map[j][i]='y';
    }else if(randmap>=259 && 265<=randmap){
    map[j][i]='*';
    }else{
    map[j][i]='_';
    }
    }
    }

    Tudna valaki segíteni, hogy hogy lehetne ezt megoldani? Előre is köszönöm a segítséget! :R

    Rosszak a feltételeid. Pl első if-ben 164<=randmap és másodikban randmap>=165 átfedik egymást. Érdemes úgy szervezni a kódod, hogy a kisebb érték legyen mindig az operátor bal oldalán és nyílván csak a <= operátort használva, így elkerülhető az ilyen nehezen kiszúrható hiba. Vagy fordítva a másik operátorral, de mixelni nem szerencsés őket.

Új hozzászólás Aktív témák