Hjälp med program som använder <curses.h>
Hej!
Jag har skrivit ett program, MaxDice, som simulerar en tärning med n antal sidor, främst tänkt för användning i rollspel.
Programmet är inte särskilt komplicerat, och det är skrivet i C. Jag använder som tidigare nämnt <curses.h>, och det
kompilerar och körs felfritt i Windows (med MinGW och PDCurses). När jag kompilerar programmet i ett GNU/Linux-system
(med gcc och ncurses) inträffar inget fel, och det går att köra. Problemet är att ibland får jag en siffra för mycket i resultatet
(OBS! händer bara i GNU/Linux). Jag har testat både i Fedora 17 och Ubuntu 12.04.
Till exempel så här ska det se ut:
Tärningskast: 5 av 6
Tärningskast: 1 av 6
Tärningskast: 1 av 6
Tärningskast: 2 av 6
men ibland blir det till exempel så här:
Tärningskast: 5 av 6
Tärningskast: 44av 6
Tärningskast: 42av 6
Tärningskast: 41av 6
När man har gjort så många tärningskast att man befinner sig på den understa raden flyttas alla rader två steg upp för att
göra plats åt nya tärningskast. Den översta titelraden är däremot statisk. Jag misstänker att min funktion för detta kan vara
problemet:
void mv_down(void)
{
int i, j, ch;
for (i = 1; i < 21; i++)
for (j = 0; j < 80; j++) {
ch = mvinch(i + 2, j);
mvaddch(i, j, ch);
}
for (i = 0; i < 80; i++) {
mvaddch(22, i, ' ');
mvaddch(23, i, ' ');
}
move(22, 0);
return;
}
Detta säger nog inte så mycket i sig själv utan resten av programmet, men eftersom det är på 130 rader skriver jag inte det
här utan länkar till det i min dropbox:
https://dl.dropbox.com/u/44436922/MaxDice.c
Jag har inte kommenterat koden, så ifall ni tycker att det är obegripligt kan jag göra detta på efterfrågan.
Jag har försökt googla på problemet, men detta är lite väl specifikt för att jag ska kunna hitta en lösning verkar det som.