Forum huvudsida -> Programmering -> Vad är felet i mitt spel?
Sidor: 1
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?
Du får inte posta i den här tråden | Till toppen
Datum
2024-05-05 21:34
Vecka: 18
Besökare
Inloggade: 0
Gäster: 605
Medlemmar
Medlemmar: 53576
Forum
Senaste inlägget: HAHA MÄNNISKAN LEVER ÄN (13:45 - 18:e Januari 2019, av Hetzz)
Wiki
Senaste ändringen:
3D (rev: 1, tid: 09:40 - 13:e November 2015)
Chatt
#blinkenlights @ Libera.Chat
Gratis shellkonton för IRC, webbsidor mm.