Kuinka teen c:llä peliin pistelaskurin, kun quickbasicissa se tehdään tyyliin:
a = 1 input "testi: ", test$ if test$ = "testi" then a = a + 1 end if if test$ = "test" then a = a - 1 end if
#include <stdio.h>
#include <string.h>
int pisteet=0;
int main(void){
printf("Anna vaikka pisteesi: ");
scanf("%i",pisteet);
printf("Pisteet: %i",pisteet);
}Jotain tämmöistäkö tarkoitit?
Sen siis pitäisi lisätä oikeista vastauksista pisteen laskuriin niin, että pelin lopussa voidaan näyttää jotain statseja.
ps: Jostain syystä toi source ei toimi vaan valittaa Muistialueen ylitystä.
Tarkistus:
if (strcmp(kysymys, vastaus) == 0) {
oikeat++;
}
else
{
vaarat++;
}
//Statsit
printf("Oikeita vastauksia: %i",oikeat, "\n");
printf("Vääriä vastauksia: %i",vaarat, "\n");Hatusta vedettyä kuten aina...
Tässä on alkuperäinen koodi C-kielisenä:
#include <stdio.h>
#include <string.h>
int main(void) {
int a = 1;
char test[20];
printf("testi: ");
scanf("%s", test);
if (strcmp(test, "testi") == 0) {
a++;
}
if (strcmp(test, "test") == 0) {
a--;
}
return 0;
}Kaikkia näitä asioita käsitellään opasalueella olevissa C-oppaissa.
juhaz kirjoitti:
Jostain syystä toi source ei toimi vaan valittaa Muistialueen ylitystä.
Johtuu varmaan siitä, että scanf-funktiolle annetaan virheellisesti muuttujan arvo sen muistiosoitteen (&pisteet) asemesta.
remontti-reiska kirjoitti:
Hatusta vedettyä kuten aina...
No joo, printf-funktiota ei käytetä ihan noin. :)
hmm... kuinkas mä pystyinkään näyttämään tuon luvun tekstin perässä? Itse laitoin komenno printf("%a",a); niin tulee vain teksti 0x1.7ff8ep-1000
Kokeiles näin:
printf("%i",a);Näyttää oudolta kooderin silmiin, kun täällä tunnutaan käyttävän yleisesti tuota %i:tä muotoillessa integereitä merkkijonoon. Itse olen aina käyttänyt %d:tä.
Mutta %i on paljon loogisempi; integer.
Hmm... onkos sillä niin väliä? :)
Itte en käytä i:tä koska se on niin kapea merkki...
Aihe on jo aika vanha, joten et voi enää vastata siihen.