Forum: Vad är felet i mitt spel?

Forum huvudsida -> Programmering -> Vad är felet i mitt spel?

Sidor: 1

Till botten

vekk 15:47 - 12:a December 2007 | Post #1
Medlem
Inlägg: 1


Skicka PM
Tjenare, jag har gjort ett spel i C därav jag översatt mycket av min kod från C++. När jag startar spelet så finns 4 alternativ att välja på och när jag så väljer ett av dem så rullar allt fram och tebax, rent ut sagt så går allt åt helvete så jag tänkte fråga om någon här kunde se vad felet är i min kod.



#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
#include <string.h>


inline void type_of_word(char f);


int main()
{ char c,h,ch,ch1,ch2;
char word[25];
char word2[25];

int l,i,ng,n,k,x,MAX;

do{ do{//clrscr();
c=''\0'';
printf("\n\t\t H A N G M A N\n\n\n");
printf("(E) Skriv in ett ord\n\n(C) Datorn väljer ordet\n\n(A) Ett nytt ord i listan\n\n(Q) Quit\n\n\nSkriv in ditt val (E - C - Q): ");
scanf ("ch2");
}while (ch2!=''C'' && ch2!=''c'' && ch2!=''E'' && ch2!= ''e'' && ch2!=''Q'' && ch2!= ''q''&& ch2!=''A'' && ch2!= ''a'');
if (ch2 == ''Q'' || ch2==''q'') exit (0);

if (ch2 == ''C'' || ch2==''c'');

{

FILE *f;
int x;
f=fopen("hangword.txt", "w");
if(!f)
return 1;
for (x=1; x<=MAX; x++)
fprintf(f,"%d\n",x);
fclose(f);
return 0;

}

if (ch2 == ''A'' || ch2==''a'')


{
FILE *f;
char s[1000];

f=fopen("hangword.txt","r");
if (!f)
return 1;
while (fgets(s,1000,f)!=NULL)
printf("%s",s);
fclose(f);
return 0;
}



if (ch2 == ''E'' || ch2==''e'')
{
scanf ("ch2");
printf("\t\t\t Skriv in ditt ord : ");
scanf (word, 25);
}
if (ch2 == ''E'' || ch2==''e'' || ch2 == ''C'' || ch2==''c'')
{
l=strlen(word);
char choosen[25]="\0";
n=0;k=0;



for (i=0; i=24;i++);

{
if (word[i]==''\0'') {word2[i]=''\0'';break;}
if (word[i]=='' '') {word2[i]='' ''; n++;}
if (word[i]!='' '') word2[i]=''-'';
}
ng=l+2-n; //only 2 guesses extra
do{//clrscr();
there: type_of_word(c);
if (k!=0)
printf("\n\n\t\t\tValda bokstaver : %d\n");
printf("\n\n\n\t\t\t \n\n\nDu har gissningar kvar, valj en bokstav : ");

for (i=0; i=25;i++) if (choosen[i]==ch) {//clrscr();
printf("\a\t\t !!Du har valt redan!\n");goto there;}
ng--; choosen [k]=ch; choosen [k+1]='','';k+=2;

for (i=0; i=24;i++);

for (i=0;i=24;i++) if (word[i]==ch || word[i]==ch+32 || word[i]==ch-32) word2[i]=ch;
if (!strcmpi (word2,word)); {
printf ("\n\t\t\t \n\n\t\t\tGrattis! :-()\n"); break;}

}while(ng);0 || !strcmpi (word2,word);


if (strcmpi (word2,word)) printf(("\nTyvärr, kanske nästa gång.\n\nOrdet var : "));
}

printf("\nVill du spela igen? (Y - N) : ");
scanf(ch1); scanfget();

}while (ch1==''y'' || ch1==''Y'');
system("PAUSE");
return 0;
}




inline void type_of_word(char f)

{ if (f==''m'') printf("\t\t\t\tMOVIE");
if (f==''a'') printf("\t\t\t\tANIMAL");
if (f==''p'') printf("\t\t\t\tSPORT");
if (f==''s'') printf("\t\t\t\tSONG");
}



Senast redigerad 15:47 - 12:a December 2007


Nissebosselasse 16:02 - 12:a December 2007 | Post #2
Medlem
Inlägg: 490


Skicka PM
Jag har bara skummat koden, men det första jag reagerade på var att din scanf är felformaterad (i main-funktionen).
Läs mer om scanf här: http://cppreference.com/stdio/scanf.html

-------------------------
http://pushingcows.se
Gula Nallen



Sidor: 1

Forum huvudsida -> Programmering -> Vad är felet i mitt spel?
Atom feed

Du får inte posta i den här tråden | Till toppen