2016-04-05 24 views
0

C++ 'da oyun yapmaya çalışıyorum. Editörüm Code :: Blocks ve derleyicim MinGW. Oyun, açlık, susuzluk, sıcaklık ve seçim değişkenlerine sahip, metin tabanlı bir hayatta kalma oyunudur. Oyuncuya açlığın, susuzluğun ve sıcaklığın değerlerini anlatmaya çalıştığımda, bana bu sorunun başlığının verildiği hatası veriyor. Ben nispeten yeni bir programcıyım ama temelleri anlıyorum. Ben şimdi kullanılan kod yazdırır: onlar, ben oyuncuya kodunu söyle aynı işlevdeC + + Hata: ifade, aşırı yüklenmiş işlevin yerini çözemiyor

int wood() 
{ 
cout<< "You have chosen find firewood!"<< endl; 
if ((rand() % 2) == 2){ 
    cout<< "You found firewood!"<<endl; 
    warmth = warmth + 1; 
} 
else{ 
    cout<< "You could not find any firewood"<< endl; 
} 
} 

: değişkenler değişti burasıdır

cout<< "Your hunger is"; hunger; endl; 
cout<< "Your warmth is"; warmth; endl; 
cout<< "Your thirst is"; thirst; endl; 

(bu bir örnektir) Buna başına her değişkende bir puan kaybeder gerekiyordu:

warmth = warmth - 1; 
hunger = hunger - 1; 
thirst = thirst - 1; 

kod 100'den fazla satır uzunluğundadır, bu yüzden sordum sürece kod yapıştırdığınızdan alışkanlık. değişkenlerin herhangi 0'a alırsanız, oyun biter:

if (hunger = 0){ 
    cout<< "You starved!"<< endl; 
    cout<< "Game over!"<< endl; 
    return 0; 
} 
if (thirst = 0){ 
    cout<< "You became dehydrated!"<< endl; 
    cout<< "Game over!"<< endl; 
    return 0; 
} 
if (warmth = 0){ 
    cout<< "You froze!"<< endl; 
    cout<< "Game over!"<< endl; 
    return 0; 
} 
+0

Derleme hatası aldığınızda Btw, belirli bir çizgiyi işaret eder, en azından iletiyi gönderen iletinin size ve işaret ettiği yere tam olarak yapıştırması gerekir. – Slava

cevap

1

Olmalıdır:

cout<< "Your hunger is" << hunger << endl; 

ve böylece

1

on size kodunda birkaç yazım hatası var. Hepsini aç Hepsini kapa Belirtiler Bir çıkış deyimi yerine 3 deyim var.

Hangi zincirleri birlikte zincirliyorsunuz? Aksi halde, endl() numaralı telefonu aramak zorunda kalmaz, ancak ilişkili bir akış nesnesi olmadığından bu mümkün değildir.

Ayrıca, ifadeleriniz varsa hepinizle ilgili bir sorununuz var. Eğer 0 olduğunu 0 için hunger ayar sonucunu değerlendirdiklerini olarak

if (hunger = 0) 

her zaman false olacak. Eşit bir karşılaştırma yapmak için == öğenizdeki = kullanımlarının tamamını değiştirmeniz gerekir.

İlgili konular