Xp till nästa level kalkulator i C

Permalänk

Xp till nästa level kalkulator i C

Tjenare SWEC!
Har nyligen börjat lära mig att programmera i C.
För att få lite challange frågade en kompis om han behövde någon typ av verktyg till sitt RuneScape spelande,
han sade att en kalkulator som beräknar tid till nästa level skulle vara bra att ha.
Förtillfället är jag på Build 18 och tycker den fungerar hyfsat bra.
Förutom RuneScape så fungerar den igentligen till alla spel som har xp krävande levels

(Om jag ej är tillåten att publicera .exe filer här ber jag om ursäkt)
Dropbox download

Källkod:

#include <stdio.h> #include <windows.h> #include <time.h> #include <stdlib.h> #define STARTCOLORTEXT SetConsoleTextAttribute (h, FOREGROUND_GREEN | FOREGROUND_INTENSITY ) #define ENDCOLORTEXT SetConsoleTextAttribute (h, WOldColorAttrs) #define TITLE printf("Warning__3's xp-to-lvl calculater\nBuild 18\n\n") int main(void){ int startxp, slutxp=0, hourxp, displayxp, tid, tim, min, choosenmin, minxp; int xpone=0, xptwo=0, xpthree=0, xpfour=0, xpfive=0, xpsix=0, xpseven=0, xpeight=0, xpnine=0, xpten=0; char askxplog; FILE *xplog; HANDLE h = GetStdHandle(STD_OUTPUT_HANDLE); WORD WOldColorAttrs; CONSOLE_SCREEN_BUFFER_INFO csbiInfo; GetConsoleScreenBufferInfo(h, &csbiInfo); WOldColorAttrs=csbiInfo.wAttributes; STARTCOLORTEXT; TITLE; SetConsoleTextAttribute (h, FOREGROUND_GREEN ); printf("1. Enter the time you want between the calculations.\n"); printf("2. Enter the current xp to next level in the skill you choose.\n"); printf("3. When the countdown reach zero you will hear a sound,\n"); printf("then enter the xp to next level again.\n\n"); printf("Tips 'n' tricks!\n"); ENDCOLORTEXT; printf("If choosen, logfile will be saved at \"C:\\W3XTL\\xplog.txt\"\n"); printf("If you want to reset the xp just enter 0 xp after the countdown.\n"); printf("You can pause the countdown using the PAUSE-button on your keyboard.\n"); printf("---------------------------------------------------------------------\n\n"); printf("\nDo you want a xp log saved at \"C:\\W3XTL\\\" (Y/N)? "); STARTCOLORTEXT; scanf("%s", &askxplog); ENDCOLORTEXT; while(askxplog != 'y' || askxplog != 'Y' || askxplog != 'N' || askxplog != 'n'){ if (askxplog == 'y' || askxplog == 'Y') { if( !chdir("c:\\W3XTL") ); else system("mkdir c:\\W3XTL"); xplog=fopen("C:\\W3XTL\\xplog.txt", "a+"); fprintf(xplog, "Logfile of Warning__3's xp-to-lvl calculator.\n\n"); fclose(xplog); xplog=fopen("C:\\W3XTL\\xplog.txt", "a+"); break; } else if (askxplog == 'N' || askxplog == 'n'){ break; } printf("Error input, try again! "); STARTCOLORTEXT; scanf("%s", &askxplog); ENDCOLORTEXT; } printf("Minutes between the calculations (1-60): "); STARTCOLORTEXT; scanf("%d", &choosenmin); ENDCOLORTEXT; while (choosenmin == 0 || choosenmin > 60){ printf("Error input, try again!\n"); printf("Minutes between the calculations (1-60): "); STARTCOLORTEXT; scanf("%d", &choosenmin); ENDCOLORTEXT; } while (1){ time_t now; time(&now); if(slutxp < 1){ printf("\nExperience left to next level: "); STARTCOLORTEXT; scanf("%d", &startxp); ENDCOLORTEXT; } else { printf("\nExperience left to next level: "); STARTCOLORTEXT; printf("%d\n", slutxp); ENDCOLORTEXT; startxp=slutxp; } int counterseca=9, countersecb=5, countermin=choosenmin; STARTCOLORTEXT; printf("\nWaiting for %d minutes 00 seconds", countermin); countermin--; sleep(1000); ENDCOLORTEXT; while (counterseca>0){ STARTCOLORTEXT; printf("\rWaiting for %d minutes %d%d seconds", countermin, countersecb, counterseca); sleep(1000); counterseca--; ENDCOLORTEXT; if (countermin==0 && countersecb==0 && counterseca==0){ STARTCOLORTEXT; printf("\rWaiting for 0 minutes 00 seconds"); sleep(1000); ENDCOLORTEXT; printf("\rExperience to level after %d min: \a",choosenmin); STARTCOLORTEXT; } else if (counterseca==0 && countersecb==0){ STARTCOLORTEXT; printf("\rWaiting for %d minutes 00 seconds", countermin); sleep(1000); countermin--; countersecb=5; counterseca=9; ENDCOLORTEXT; } else if (counterseca==0){ STARTCOLORTEXT; printf("\rWaiting for %d minutes %d0 seconds", countermin, countersecb); sleep(1000); counterseca=9; countersecb--; ENDCOLORTEXT; } } STARTCOLORTEXT; scanf("%d", &slutxp); ENDCOLORTEXT; while (slutxp >= startxp){ printf("Error input, try again!\n"); printf("\rExperience to level after %d min: ",choosenmin); STARTCOLORTEXT; scanf("%d", &slutxp); ENDCOLORTEXT; } if (xpone == 0) { xpone=startxp-slutxp; displayxp=xpone; minxp=xpone; hourxp=minxp/choosenmin*60; } else if (xptwo == 0) { xptwo=startxp-slutxp; displayxp=xptwo; minxp=(xpone+xptwo)/2; hourxp=minxp/choosenmin*60; } else if (xpthree == 0) { xpthree=startxp-slutxp; displayxp=xpthree; minxp=(xpone+xptwo+xpthree)/3; hourxp=minxp/choosenmin*60; } else if (xpfour == 0) { xpfour=startxp-slutxp; displayxp=xpfour; minxp=(xpone+xptwo+xpthree+xpfour)/4; hourxp=minxp/choosenmin*60; } else if (xpfive == 0) { xpfive=startxp-slutxp; displayxp=xpfive; minxp=(xpone+xptwo+xpthree+xpfour+xpfive)/5; hourxp=minxp/choosenmin*60; } else if (xpsix == 0) { xpsix=startxp-slutxp; displayxp=xpsix; minxp=(xpone+xptwo+xpthree+xpfour+xpfive+xpsix)/6; hourxp=minxp/choosenmin*60; } else if (xpseven == 0) { xpseven=startxp-slutxp; displayxp=xpseven; minxp=(xpone+xptwo+xpthree+xpfour+xpfive+xpsix+xpseven)/7; hourxp=minxp/choosenmin*60; } else if (xpeight == 0) { xpeight=startxp-slutxp; displayxp=xpeight; minxp=(xpone+xptwo+xpthree+xpfour+xpfive+xpsix+xpseven+xpeight)/8; hourxp=minxp/choosenmin*60; } else if (xpnine == 0) { xpnine=startxp-slutxp; displayxp=xpnine; minxp=(xpone+xptwo+xpthree+xpfour+xpfive+xpsix+xpseven+xpeight+xpnine)/9; hourxp=minxp/choosenmin*60; } else if (xpten == 0) { xpten=startxp-slutxp; displayxp=xpten; minxp=(xpone+xptwo+xpthree+xpfour+xpfive+xpsix+xpseven+xpeight+xpnine+xpten)/10; hourxp=minxp/choosenmin*60; xpone=minxp; xptwo=0; xpthree=0; xpfour=0; xpfive=0; xpsix=0; xpseven=0; xpeight=0; xpnine=0; xpten=0; } tid=slutxp/minxp*choosenmin; tim=tid/60; min=tid-tim*60; printf("\nLevel up in: "); STARTCOLORTEXT; printf("%d", tim); ENDCOLORTEXT; printf(" hours and "); STARTCOLORTEXT; printf("%d", min); ENDCOLORTEXT; printf(" minutes!\n"); printf("You gained: "); STARTCOLORTEXT; printf("%d", displayxp); ENDCOLORTEXT; printf(" xp in %d min, ",choosenmin); STARTCOLORTEXT; printf("%d", hourxp); ENDCOLORTEXT; printf(" xp per hour!\n"); printf("----------------------------------------------\n\n"); if (askxplog == 'y' || askxplog == 'Y') { fprintf(xplog,"-------------------------------------------------------------------------------%s", ctime(&now)); fprintf(xplog,"Starting xp: %d, ending xp %d!\n",startxp, slutxp); fprintf(xplog,"%d hours and %d minutes to level up. ", tim, min); fprintf(xplog,"%d xp in %d min, %d xp per hour!\n", displayxp, choosenmin, hourxp); } } }

Dold text

Skulle bli väldigt glad för vilken kommentar som helst om ni vill testa eller ej

Permalänk
Medlem
Skrivet av Warning__3:

Tjenare SWEC!
Har nyligen börjat lära mig att programmera i C.
För att få lite challange frågade en kompis om han behövde någon typ av verktyg till sitt RuneScape spelande,
han sade att en kalkulator som beräknar tid till nästa level skulle vara bra att ha.
Förtillfället är jag på Build 18 och tycker den fungerar hyfsat bra.
Förutom RuneScape så fungerar den igentligen till alla spel som har xp krävande levels

http://i44.tinypic.com/23wwpxs.png

(Om jag ej är tillåten att publicera .exe filer här ber jag om ursäkt)
Dropbox download

Källkod:

#include <stdio.h> #include <windows.h> #include <time.h> #include <stdlib.h> #define STARTCOLORTEXT SetConsoleTextAttribute (h, FOREGROUND_GREEN | FOREGROUND_INTENSITY ) #define ENDCOLORTEXT SetConsoleTextAttribute (h, WOldColorAttrs) #define TITLE printf("Warning__3's xp-to-lvl calculater\nBuild 18\n\n") int main(void){ int startxp, slutxp=0, hourxp, displayxp, tid, tim, min, choosenmin, minxp; int xpone=0, xptwo=0, xpthree=0, xpfour=0, xpfive=0, xpsix=0, xpseven=0, xpeight=0, xpnine=0, xpten=0; char askxplog; FILE *xplog; HANDLE h = GetStdHandle(STD_OUTPUT_HANDLE); WORD WOldColorAttrs; CONSOLE_SCREEN_BUFFER_INFO csbiInfo; GetConsoleScreenBufferInfo(h, &csbiInfo); WOldColorAttrs=csbiInfo.wAttributes; STARTCOLORTEXT; TITLE; SetConsoleTextAttribute (h, FOREGROUND_GREEN ); printf("1. Enter the time you want between the calculations.\n"); printf("2. Enter the current xp to next level in the skill you choose.\n"); printf("3. When the countdown reach zero you will hear a sound,\n"); printf("then enter the xp to next level again.\n\n"); printf("Tips 'n' tricks!\n"); ENDCOLORTEXT; printf("If choosen, logfile will be saved at \"C:\\W3XTL\\xplog.txt\"\n"); printf("If you want to reset the xp just enter 0 xp after the countdown.\n"); printf("You can pause the countdown using the PAUSE-button on your keyboard.\n"); printf("---------------------------------------------------------------------\n\n"); printf("\nDo you want a xp log saved at \"C:\\W3XTL\\\" (Y/N)? "); STARTCOLORTEXT; scanf("%s", &askxplog); ENDCOLORTEXT; while(askxplog != 'y' || askxplog != 'Y' || askxplog != 'N' || askxplog != 'n'){ if (askxplog == 'y' || askxplog == 'Y') { if( !chdir("c:\\W3XTL") ); else system("mkdir c:\\W3XTL"); xplog=fopen("C:\\W3XTL\\xplog.txt", "a+"); fprintf(xplog, "Logfile of Warning__3's xp-to-lvl calculator.\n\n"); fclose(xplog); xplog=fopen("C:\\W3XTL\\xplog.txt", "a+"); break; } else if (askxplog == 'N' || askxplog == 'n'){ break; } printf("Error input, try again! "); STARTCOLORTEXT; scanf("%s", &askxplog); ENDCOLORTEXT; } printf("Minutes between the calculations (1-60): "); STARTCOLORTEXT; scanf("%d", &choosenmin); ENDCOLORTEXT; while (choosenmin == 0 || choosenmin > 60){ printf("Error input, try again!\n"); printf("Minutes between the calculations (1-60): "); STARTCOLORTEXT; scanf("%d", &choosenmin); ENDCOLORTEXT; } while (1){ time_t now; time(&now); if(slutxp < 1){ printf("\nExperience left to next level: "); STARTCOLORTEXT; scanf("%d", &startxp); ENDCOLORTEXT; } else { printf("\nExperience left to next level: "); STARTCOLORTEXT; printf("%d\n", slutxp); ENDCOLORTEXT; startxp=slutxp; } int counterseca=9, countersecb=5, countermin=choosenmin; STARTCOLORTEXT; printf("\nWaiting for %d minutes 00 seconds", countermin); countermin--; sleep(1000); ENDCOLORTEXT; while (counterseca>0){ STARTCOLORTEXT; printf("\rWaiting for %d minutes %d%d seconds", countermin, countersecb, counterseca); sleep(1000); counterseca--; ENDCOLORTEXT; if (countermin==0 && countersecb==0 && counterseca==0){ STARTCOLORTEXT; printf("\rWaiting for 0 minutes 00 seconds"); sleep(1000); ENDCOLORTEXT; printf("\rExperience to level after %d min: \a",choosenmin); STARTCOLORTEXT; } else if (counterseca==0 && countersecb==0){ STARTCOLORTEXT; printf("\rWaiting for %d minutes 00 seconds", countermin); sleep(1000); countermin--; countersecb=5; counterseca=9; ENDCOLORTEXT; } else if (counterseca==0){ STARTCOLORTEXT; printf("\rWaiting for %d minutes %d0 seconds", countermin, countersecb); sleep(1000); counterseca=9; countersecb--; ENDCOLORTEXT; } } STARTCOLORTEXT; scanf("%d", &slutxp); ENDCOLORTEXT; while (slutxp >= startxp){ printf("Error input, try again!\n"); printf("\rExperience to level after %d min: ",choosenmin); STARTCOLORTEXT; scanf("%d", &slutxp); ENDCOLORTEXT; } if (xpone == 0) { xpone=startxp-slutxp; displayxp=xpone; minxp=xpone; hourxp=minxp/choosenmin*60; } else if (xptwo == 0) { xptwo=startxp-slutxp; displayxp=xptwo; minxp=(xpone+xptwo)/2; hourxp=minxp/choosenmin*60; } else if (xpthree == 0) { xpthree=startxp-slutxp; displayxp=xpthree; minxp=(xpone+xptwo+xpthree)/3; hourxp=minxp/choosenmin*60; } else if (xpfour == 0) { xpfour=startxp-slutxp; displayxp=xpfour; minxp=(xpone+xptwo+xpthree+xpfour)/4; hourxp=minxp/choosenmin*60; } else if (xpfive == 0) { xpfive=startxp-slutxp; displayxp=xpfive; minxp=(xpone+xptwo+xpthree+xpfour+xpfive)/5; hourxp=minxp/choosenmin*60; } else if (xpsix == 0) { xpsix=startxp-slutxp; displayxp=xpsix; minxp=(xpone+xptwo+xpthree+xpfour+xpfive+xpsix)/6; hourxp=minxp/choosenmin*60; } else if (xpseven == 0) { xpseven=startxp-slutxp; displayxp=xpseven; minxp=(xpone+xptwo+xpthree+xpfour+xpfive+xpsix+xpseven)/7; hourxp=minxp/choosenmin*60; } else if (xpeight == 0) { xpeight=startxp-slutxp; displayxp=xpeight; minxp=(xpone+xptwo+xpthree+xpfour+xpfive+xpsix+xpseven+xpeight)/8; hourxp=minxp/choosenmin*60; } else if (xpnine == 0) { xpnine=startxp-slutxp; displayxp=xpnine; minxp=(xpone+xptwo+xpthree+xpfour+xpfive+xpsix+xpseven+xpeight+xpnine)/9; hourxp=minxp/choosenmin*60; } else if (xpten == 0) { xpten=startxp-slutxp; displayxp=xpten; minxp=(xpone+xptwo+xpthree+xpfour+xpfive+xpsix+xpseven+xpeight+xpnine+xpten)/10; hourxp=minxp/choosenmin*60; xpone=minxp; xptwo=0; xpthree=0; xpfour=0; xpfive=0; xpsix=0; xpseven=0; xpeight=0; xpnine=0; xpten=0; } tid=slutxp/minxp*choosenmin; tim=tid/60; min=tid-tim*60; printf("\nLevel up in: "); STARTCOLORTEXT; printf("%d", tim); ENDCOLORTEXT; printf(" hours and "); STARTCOLORTEXT; printf("%d", min); ENDCOLORTEXT; printf(" minutes!\n"); printf("You gained: "); STARTCOLORTEXT; printf("%d", displayxp); ENDCOLORTEXT; printf(" xp in %d min, ",choosenmin); STARTCOLORTEXT; printf("%d", hourxp); ENDCOLORTEXT; printf(" xp per hour!\n"); printf("----------------------------------------------\n\n"); if (askxplog == 'y' || askxplog == 'Y') { fprintf(xplog,"-------------------------------------------------------------------------------%s", ctime(&now)); fprintf(xplog,"Starting xp: %d, ending xp %d!\n",startxp, slutxp); fprintf(xplog,"%d hours and %d minutes to level up. ", tim, min); fprintf(xplog,"%d xp in %d min, %d xp per hour!\n", displayxp, choosenmin, hourxp); } } }

Dold text

Skulle bli väldigt glad för vilken kommentar som helst om ni vill testa eller ej

Kul!
En god idé är att börja titta på metoder/funktioner.

Visa signatur

ηλί, ηλί, λαμά σαβαχθανί!?