• “Как найти ближайший танк”
  • “Как двигаться”
  • Как найти расстояние до объекта?”




    Download 103,17 Kb.
    bet6/13
    Sana24.01.2024
    Hajmi103,17 Kb.
    #144805
    1   2   3   4   5   6   7   8   9   ...   13
    Bog'liq
    adhambek11011107

    Как найти расстояние до объекта?”


    Чтобы эффективно справиться с управлением, часто вам придется узнавать расстояние до другого объекта - снаряда, или другого танка. Сделать это очень просто - в этом нам поможет всем известная теорема Пифагора. В данном случае - расстояние между объектами является гипотенузой.
    public static int getDistantion(Shell shell, Player thisPlayer){
    return (int) Math.sqrt(Math.pow(shell.mXy.x - thisPlayer.mXy.x, 2) + Math.pow(shell.mXy.y - thisPlayer.mXy.y,2));
    Эта функция может принимать на вход другой объект: в данном примере - снаряд, и ваш танк. Возвращает - текущее расстояние. Если вы хотите найти расстояние не до снаряда, а, например, до танка, то просто замените в аргументах функции объект Shell на обьект Player.

    “Как найти ближайший танк?”


    public static Player getNearestEnemy(WorldState state, Player thisPlayer){
    if (state.mPlayerList.size()<2 || thisPlayer == null || state == null)
    return null; // Если что-то не так - выходим

    Player nearestEnemy = null;


    int dist = state.mPlayerList.get(0).mUser.equals(thisPlayer.mUser) ? getDistantion(state.mPlayerList.get(1), thisPlayer) : getDistantion(state.mPlayerList.get(0), thisPlayer);
    for (Player player : state.mPlayerList){ // проходим по списку игроков
    int n = getDistantion(player, thisPlayer); // находим дистанцию по функции выше
    if (dist >= n && !thisPlayer.mUser.equals(player.mUser)){ // если дистанция меньше
    dist = n; // то сохраняем ссылку на
    nearestEnemy = player; // этого соперника
    }
    }
    return nearestEnemy; // Ура, мы нашли ближайшего соперника)
    }

    “Как двигаться”


    @Override
    public Input doSomething(WorldState state) {
    Input i = new Input(); // создаем новый ввод
    i.move = new XY(1.0f, 0.0f); //двигаемся точно вправо, x = 1.0, y = 0
    //i.move = new XY(0.0f, 1.0f); //двигаемся точно вниз x = 0.0, y = 1.0
    //i.move = new XY(0.0f, -1.0f); //двигаемся точно вверх x = 0.0, y = -1.0
    i.fire = true; // а по ходу движения стреляем
    return i; // возвращаем новый ввод
    }
    MAVZU: CHARACTER VA BOOLEAN QOBIQLARI
    Char sozi charactersozini qisqartmasi.
    Char biror bir soni yokida belgini, harfni bittali '' ichiga begilab qoyishimiz mumkin.Undan ortiq belgilarni saqlab qo'ya olmimiz.Faqatgina bir dona belgi saqlash mumkin.
    int a =10;
    float b =10.5;
    double c =10.2536488;
    string d = "ikkichilar";

    // char => character (belgi);


    char belgi = 65;


    int son = 'A';
    //int son = 3;

    cout << belgi << " " << son;


    return 0;
    }
    Butun son bilan belgini o'rnini o'zgartishimiz ham mumkin. Misol uchun
    int a = 65;
    char b = 'z';

    cout<< char (a);


    cout << endl << int (b);

    return 0;


    }
    Bool bu booleansozini qisqartmasi.True-False ya'ni tori yoki notog'riligini bilishimiz mumkin.True 1 ga teng.False esa 0 ga teng.
    // bool => boolean
    bool a = true;
    cout << (10 < 5);
    return 0;
    }
    Sonlarni yahlitlash uchun niz yangi bir kutubxona chaqaramiz.Bu kutubxonani nomi buni ichidan bizga kerakak bo'ladi round.
    #include
    #include
    using namespace std;
    int main5 (){
    float a;
    cin>>a;
    cout << round(a);
    return 0;
    }
    ASCIIjadvalida katta harflarA~Zva kichik harflara~zketma-ket joylashtirilgan. Ushbu hususiyatdan foydalanib bitta kichik harf qabul qiling va katta harfga convert qilib chop etishni o'rganamiz.
    char c = 97-32;
    cout << c ;

    return 0;


    }
    #include
    #include
    using namespace std;
    int main7 (){
    char a;
    cin >> a;
    cout << char (a - 32) ;

    return 0;


    }
    Boolean ( ba'zan Boolga qisqartiriladi) mantiqiy va mantiqiy algebraning ikkita haqiqat qiymatini ifodalash uchun mo'ljallangan ikkita mumkin bo'lgan qiymatdan biriga (odatda rost va noto'g'ri deb belgilanadi) ega bo'lgan ma'lumotlar turidir . U birinchi marta 19-asrning o'rtalarida algebraik mantiq tizimini aniqlagan Jorj Bul sharafiga nomlangan . Mantiqiy ma'lumotlar turi, birinchi navbatda, shartli bayonotlar bilan bog'liq bo'lib, ular dasturchi tomonidan belgilangan mantiqiy shartni rost yoki noto'g'ri deb baholashiga qarab boshqaruv oqimini o'zgartirish orqali turli harakatlarni amalga oshirishga imkon beradi . Bu umumiy mantiqiy ma'lumotlar turining alohida holati - mantiq har doim ham mantiqiy bo'lishi shart emas (qarang, ehtimollik mantiqi ).

    Download 103,17 Kb.
    1   2   3   4   5   6   7   8   9   ...   13




    Download 103,17 Kb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Как найти расстояние до объекта?”

    Download 103,17 Kb.