C++ Yardımı...
-
arkadaslar proj ödewimiz warda takıldığım 1-2 nokta war c++ dan anlayan arkadasalr yardım edebilrmi acaba?
-
Anlayanlar yardım etmek için burda zaten. Sen yaz buraya takıldığın yerleri, eder onlar.
-
La sorunu direkt yazsana :)
-
800 satırlık bişr kod war elimde bunun birkısmında takıldım ama sadece bu noktayı yazsamm anlam cıkmaya bşlr ama söle yazayım
void elSirala() {
int i=0;
int j=eldekiKartlar.size();
Kart* savasciTut;
Kart* buyucuTut;
while (i<eldekiKartlar.size()){
if ( !(eldekiKartlar[i]->savasciKart)) {
buyucuTut = eldekiKartlar[i];
while ( j>0 ){
if(i == j) break;
j--;
if(eldekiKartlar[j]->savasciKart) {
savasciTut = eldekiKartlar[j];
eldekiKartlar[i] = savasciTut;
eldekiKartlar[j] = buyucuTut;
break;
}
}
}
if(i == j) break;
i++;
}
}bu sekilde yazdığımz bir oyun içindeki kartları sıralayan bir döngü budöngü çalışıor ama amaç bu döngüyu kullnmamamk farklı br yapıda olstrmak
buyu kartlarını we sawas kartlarını değişik sıralamak o yuzden yardıum edebilecek akdr ii olan arklar mesaj olarak maillerini atsınar ricamdırr
burda buyukartları wektörün içnde we karışık haldedir bnm yapmam gereken bu kartların okunması içn daha kolay bir hale getirmek... bu sekilde br kodum war bu çalışıor ama bunu hoca ile beraber yazdık o yuzden daha farklı br kod yazmm lazım amac wektörün son kısmında önce savas kartları daha sonra buyu katlarını tutmaktırr
-
Algoritma:
Önce vektörün tamamını oku, burda büyücü kartı ve savaşçı kartı sayısını ve adres bilgilerini bul.
Bundan sonra uygun boyutlarda yeni Arrayler oluşturarak ayırmış ol?
Bu mudur istediğin?
-
budurr kardeşim budur amaa su an yaklaşık hiç uyku uyumadan 40 saatr bu kodlarla çalışıom en son care burda yardım aradım bi deneyeym yazmayı ins yaparızz ;)
edit: algoritmam aslında biraz zayıftırr bu bnm için dezavantaj oluşturuyor zaten
-
//Arrayleri baştan oluşturabilmek için ilk başta bu bilgiye ihtiyaç var.
int buyucuKartSay()
{
int retVal = 0;
for(int i = 0; i < eldekiKartlar.size(); i++)
{
if(eldekiKartlar[i] -> buyucuKart)
retVal++;
}
return retVal;
}
int savasciKartSay()
{
int retVal = 0;
if(eldekiKartlar[i] -> savasciKart)
savasciKartSayisi++;
}
void elSirala()
{
int[] buyucuAdres = new int[buyucuKartSay()];
int[] savasciKartSay = new int[savasciKartSay()];
int savasciKartSayisi = 0;
int buyucuKartSayisi = 0;
for(int index = 0; index < eldekiKartlar.size(); index++)
{
if(eldekiKartlar[index] -> savasciKart)
{
savasciKartAdres[savasciKartSayisi] = index;
savasciKartSayisi++;
}
else if(eldekiKartlar[index] -> buyucuKart)
{
buyucuKartAdres[buyucuKartSayisi] = index;
buyucuKartSayisi++;
}
}
}Bu işlemlerin sonunda, buyucuAdres ve savasciAdres arraylerinde, hangi kartın buyucu ya da savasçı olduğu listelenmiştir, eli tekrar sıralı mı kurmak istersin yoksa burdan işlem mi yapmak istersin sana kalmış. Ama eli tekrar kuracaksan, biraz gereksiz oldu bu kadar detaylı ayırmak. (Kusura bakma, kodları editörsüz yazdım ama düzenlersin, arada syntax hatası falan olabilir.)
Neyse, ben güzelim SQL'e döneyim :P
-
cok sağol uykuya dalmıştım kod yuzunden tekrr uyandımm br bakayım kardeşim sağolasınn,,,
ama retval i çözemedim ?
-
returnValue ? çözemediğin tam olarak nedir ? retVal burda sana elindeki tüm kartlar arasındaki büyücü kartlarının sayısını veriyor...
-
retVal düşük seviyeli programlama dillerinde sıklıkla kullanılan "Dönecek değer" yani "ReturnValue" nun kısaltılmışıdır.
Aslında biraz da artislik olsun diye yazılır diyebilirim, ama uzun metodların, özellikle de matematiksel işlem içeren metodların daha anlaşılabilir olmasını sağlar.
Özetle sadece bir değişken adı.
Tanıdığımız x'den, index'den bir farkı yok.
