Ich bin gerade dabei mein erstes kleines Programm in C zu schreiben.
Der Code ist erstmal einfach so hingekotzt und ich weiss, es gibt 100 bessere Alternativen.
Der Compiler zeigt mir ein bestimmten Fehler an.
Könnte mir jemand erklären, wieso das nicht geht.
So wie ich es verstanden habe, sollen im Speicher 10 Bytes reserviert werden um ein String speichern zu können(Siehe Code).
Nach dem Switch sollen dann die Werte in der Adresse vom Char abgelegt werden.
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
#include <stdio.h>
#include <stdlib.h>
int main(void){
int hp = 100;
int dmg = 20;
int enemyHp = 0;
int enemyDmg = 0;
char enemyName[10];
short enemy = 0;
short alive = 1;
int run = 1;
int r;
char opt = ' ';
while(run){
alive = 1;
r = rand() % 2;
switch(enemy){
//Compiler Error: Assignment to expression with Array Type
case 0: enemyName = "Creeper"; enemyHp = 40; enemyDmg = 10;
break;
case 1: enemyName = "Zombie"; enemyHp = 40; enemyDmg = 10;
break;
case 2: enemyName = "Skeleton"; enemyHp = 40; enemyDmg = 10;
}
while(alive){
printf("%s angreifen?",enemyName);
scanf("%c",&opt);
if(opt == 'a'){
enemyHp -= dmg;
hp -= enemyDmg;}
else break;
if(enemyHp <= 0)
alive = 0;
}
if(hp <= 0)
run = 0;
}
return 0;
}
|