• 16-09-2018, 03:19:00
    #1
    yazdığım oyundaki işlem şeması şu şekilde

    -oda sahipleri
    -odalar
    -işlemler

    her odada toplam 50 işlem oluyor ve birkaç tanesi işlemi sonuçlanıyor.
    ben işlem kaydı tutarken şu şekilde tutmaktayım,

    islemler[odasahibi][oda][islem] = {uye=xx}
    bu işlemi ayrıca veritabanına da kaydediyorum.

    Soru 1
    şimdi ben sonuçlanma olduğunda kazanan işlemi kontrol etmek için hangisini yapmam daha mantıklı?

    1. for döngüsü ile oda sahipleri ve odalar içerisindeki kazanan işlem numaralarını kontrol ederek sonucu kaydettirmek mi?
    2. veritabanı içinde sadece kazanan işlem kayıtlarını çekip o dönü içinde kazananları kaydettirmek mi?

    Soru 2
    Şu anda işlemler her oyun başında sıfırlanıyor, bu döngüm şu şekilde

    var islemler = {};
    sql.query("select id from uyeler where yetkili='evet',function(e,r){
    if(!e) { if(r.length > 0) { for(var x=0; x<r.length; ++x) {
    var odasahibi = r[x].id;
    islemler[odasahibi] = {};
    sql.query("select id from odalar where yetkili=?",[odasahibi],function(e,r1) {
    if(!e) { if(r.length > 0) { for(var y=0;y <r1.length; ++y) {
    var oda = r1[y].id;
    islemler[odasahibi][oda] = {};
    for(var z=1; z<=50; z++) {
    islemler[odasahibi][oda][z] = {uye:0};
    }
    } } }
    });
    } } }
    });
    Bunun yerine bu döngüyü böyle yazmam mı daha mantıklı olur ?
    var islemler = {};
    for(var z = 1; z<=50; z++) {
    islemler[z] = {};
    }
    böyle işlemleri boş alıp, işlem olduğunda yapılan işlemi bu şekilde kaydederim;
    islemler[islem] = {odasahibi: xx, oda: xx, uye: xx};
    sonrasında kontrol işlemi yaparken;
    if(islemler[islem].length > 0) {
    ....
    }
    will be !!