/* * Koen Noens * December 2002 * oefening blz 198 : simulatie van beweging met ascii text * * Walking the Dog * */ #include #include #include // voor gotoxy #include // om desnoods zelf een functie gotoyx() te schrijven void maak(char dier [][12]); void beweeg(char dier [][12]); void gotoxy(int x, int y) {/* plaats cursor op kolom x, rij y in een dos text scherm * * is dit assembler ? * het werkt in ieder geval niet. */ union REGS r; r.h.ah = 2; r.h.dh = y; r.h.dl = x; r.h.bh = 0; int86(0x10, &r, &r); } void main() { //declareer tweedimensionele array die 4x12 ascii-tekens kan bevatten char hond [4][12]; // vul die arry met strings die samen een hond voorstellen maak(hond); // simuleer beweging beweeg(hond); } void maak(char dier [][12]) { // dier bestaat uit 3 strings die onder elkaar een dier voorstellen //string 2 en 3 zullen afgewisseld worden om loopbeweging te simuleren strcpy(dier[0],"\\ XXX"); strcpy(dier[1]," XXXXX "); strcpy(dier[2]," / \\ "); strcpy(dier[3],"\\ / "); } void beweeg(char dier [][12]) { //beweging wordt gesimuleerd door afwisselend string 2 en 3 te tonen //voortbeweging dmv gotoyx : bepaalt positie van de cursor, //tekst wordt ingevoegd aan de cursor // 3 strings worden getekend op lijn 12, 13 en 14 // kolom wordt aangegeven door 'pos' // dos scherm in text modus = 25 lijnen van 80 (zichtbare) tekens for(int pos=1; pos < 66; pos++) { gotoxy(pos,12); cout << dier[0]; gotoxy(pos,13); cout << dier [1]; gotoxy(pos,14); //wisselen adhv even/oneven pos if (pos %2 == 0) { cout << dier[2]; } else { cout << dier[3]; } } }