Hannota classic DOS version TC source code

zhaozj2021-02-16  43

/ ************************************************** ********************** HANOI Tower V2.0 ** Turbo C 2.0 Compiler ** Source Program ** Made by bolman ** chencheng@vip.citiz .NET ********************************************************* ********************************** / # include "stdio.h" #include "cono.h" #include "stdlib.h" #include "DOS .h "#include" time.h "#include" graphics.h "

#define s setcolor # define f setfillstyle # Define r Rectangle # define c circle # define b bar # define b3d bar3d # define l line # define o Outtextxy

#define x 200 # Define Y 20

INT nstep = 0; int NRECORD [7] = {7, 15, 31, 63, 127, 255, 511}, nrec; int ndisk, ndisknum; int nBasenum; int nselectdeLay = 1; / ** USE in autoplay ** / float ndelay; char chmark [15];

Struct rod {int NDisk [10] [5]; int ndiskname [10];} Tree [3];

/ **************************************************** / NTOA (Int S ) {INT B [15]; INT I, J; for (i = 0; i <15; i ) chmark [i] = '/ 0'; for (i = 0; s> = 10; i ) {b [i] = S% 10; s / = 10;} b [i] = s; for (j = i; j> = 0; j--) chmark [ij] = b [j] '0'; }

Void initial () / ** game initial ** / {INT GD = Detect, GM = 0; RegisterBgidriver; INITGRAPH (& GD, & GM, "); setBkcolor (0);}

Void start_logo () {f (1, 8); B (200, 150, 439, 329); S (7); R (201, 151, 438, 328); S (White); R (199, 149, 440, 330); setTextStyle (default_font, horiz_dir, 2); O (233, 180, "Hanoi Tower"); S (1); O (232, 179, "Hanoi Tower"); s (White); setTextStyle (default_font, horiz_dir, 2); O (284, 204, "V 2.0"); s (1); O (283, 203, "V 2.0"); setTextStyle (default_font, horiz_dir, 1); s (White); O (236, 240, "CopyRight (C) 2002 by"); O (236, 250, "- ling dong studio --- "); S (7); O (236, 280," bolm@etang.com ");} void end () {char message [110] =" >>> if you want to get the source program / n / NPLEase Send AN E_MAIL TO TELL ME, AND I WILL SEND TO You !! ^ - ^ "; Int Num; Closegraph (); Sleep (1); Gotoxy (1, 10); for (NUM = 0; Num <110; Num ) {Printf ("% C", Message [Num]); Delay (500); Sound (0); DELAY (50); noid ();} Sleep (1);}

Void Flash_Rec () {INT NUM, X1 = 8, X2 = 10; Randomize (); for (Num = 0; Num <33; Num ) {f (1, Rand ()% 16); B (x1, 412, X2, 414); X1 = x1 20; x2 = x2 20;}}

Void Draw () {f (1,8); B (6, 80, 633, 100); / ** brown bar ** / b (6,415,633,430); b (6, 430, 633, 479); f (1, 7); B (6, 77, 633, 80); B (6, 430, 633, 432); F (1, 4); B (6, 100, 633, 102); B (6, 410, 633, 415); F (1, 7); / ** game background ** / b (7, 102, 632, 410); s (15); R (6, 0, 633, 479); s (15); setTextStyle (default_font, horiz_dir, 4); O (70, 30, "Hanoi Tower V2.0)); s (9); O (71, 31," Hanoi Tower V2.0 ");

S (7); / ** Show message ** / settextStyle (default_font, horiz_dir, 1); O (190, 440, "- Made by Bolman - Lingdong Studio-"); O (190, 450, "- Bolm@etang.com - ILMAN@sina.com- "); l (165, 419, 165, 425); s (12); O (170, 419," Message: "); / ** Message Box ** / s (7); O (20,419," Press ESC to quit "); F (1, 2); B (550, 450, 560, 460); F (1, 13); B (565, 450, 575, 460); f (1, Yellow); B (580, 450, 590, 460); f (1, 12); B (595, 450, 605, 460); Void Drawrod () {f (1,8); B (118, 150, 122, 400); / * ROD1 * / B (318, 150, 322, 400); / * ROD2 * / B (518, 150, 522, 400); / * ROD3 * / f (6 LightBlue; B (119, 151, 123, 401); B (319, 151, 323, 401); B (519, 151, 522, 401);} / * ==============================================================================================================================================================================================================================

Void Showinfo (int nrn, int nwhetdisk) {f (1,8); b (230, 418, 620, 428); setTextStyle (default_font, horiz_dir, 1); s (cyan); if (nrn == 0 && nthergetdisk == 0) O (235, 419, "You now at the first rod"); else if (nrn == 1 && nwhethergetdisk == 0) O (235, 419, "you now second rod"); else if (nrn == 2 && nthergetdisk == 0) O (235, 419, "You now at the third"); Else IF (nwhetdiTDisk == 1) {s (YELLOW); Switch (NRN) {Case 0: O (235, 419, "You Get the Top Disk At the first rod"); Break Case 1: O (235, 419, "YOU GET TOP Disk At the Second Rod"); Break; Case 2: O (235, 419, "You Get The Top Disk At the Third Rod"; Break; Default: Break; } Else if (nrn == 3 && nthergetdisk == nbasenum) {s (white); O (235, 419, "you shop do your best");} else if (nrn == 3 && nthergetdisk == nbasenum * 2) o (235, 419, " YOU SEEMS Play Not Very Good ... ^ _ ^ "); ELSE IF (nrn == 4 && nthergetdisk == 0) {s (13); O (235, 419," Ok You Have Finished Your Work "); SLEEP (1) Else O (235, 419, "You Have Get Down The Disk") } / * ==== End of funinfo ==== * / void showrecord () {setTextStyle (default_font, horiz_dir, 1); f (1, 8); B (78, 82, 90, 94); NTOA (NDISK); S (YELLOW); O (40, 86, "Disk:"); s (15); O (80, 86, chmark);

B (348, 82, 360, 94); NTOA (NREC); S (YELLOW); O (290, 86, "Record:"); s (15); O (350, 86, chmark);

B (560, 82, 610, 94); NTOA (NSTEP); S (YELLOW); O (520, 86, "Step:"); s (15); O (562, 86, chmark);} / * == == End of fun showrecord ==== * /

Void FillDisk (int X1, int y1, int x2, int y2, int color, int color1) {s (color); f (1, color); B3D (x1, y1, x2, y2, 5, 5); f (1, color1); B3D (x1 1, Y1 1, X2 1, Y2 1, 5, 5);} void fadein (void) {char R [256], G [256], B [256 Int nnum, nnotfinish;

For (nnum = 0; nnum <256; nnum ) {OUTPORTB (0x3c7, nnum); R [nnum] = inportb (0x3c9); g [nnum] = inportb (0x3c9); b [nnum] = inportb (0x3c9); } Nnotfinish = 1; while (nnotfinish == 1) {nnotfinish = 0; for (nNum = 0; nNum <256; nnum ) {if (r [nnum]! = 0) {nnotfinish = 1; r [nnum] - -;} if (g [nnum]! = 0) {nnotfinish = 1; g [nnum] -;} if (b [nnum]! = 0) {nnotfinish = 1; b [nnum] -;} Outportb (0x3c8, nnum); OUTPORTB (0x3c9, r [nnum]); OUTPORTB (0x3c9, g [nnum]); OUTPORTB (0x3c9, b [nnum]);} delay (1000);}} / * ==== End of fun fadein ==== * /

Void Fadeout (Void) {Char R [256], G [256], B [256]; CHAR RR [256], GG [256], BB [256]; int nNum, nNotfinish

For (nNum = 0; nnum <256; nnum ) {OUTPORTB (0x3c7, nnum); R [nnum] = rR [nnum] = inportb (0x3c9); g [nnum] = gg [nnum] = inportb (0x3c9); B [nnum] = bb [nnum] = inportb (0x3c9);} for (nnum = 0; nnum <256; nnum ) {r [nnum] = 0; g [nnum] = 0; b [nnum] = 0; OUTPORTB (0x3c8, nnum); OUTPORTB (0x3c9, 0); OUTPORTB (0x3c9, 0); OUTPORTB (0x3c9, 0);} delay (100); nnotfinish = 1; while (nnotfinish == 1) {nNotFinish = 0; For (nNum = 0; nnum <256; nnum ) {if (r [nnum]! = r [nNUM]) {nnotfinish = 1; r [nnum] ;} if (g [nnum]! = gg [nnum ]) {Nnotfinish = 1; g [nnum] ;} if (b [nnum]! = Bb [nnotfinish = 1; b [nnum] ;} outportb (0x3c8, nnum); OUTPORTB 0x3c9, r [nnum]); OUTPORTB (0x3c9, g [nnum]); OUTPORTB (0x3c9, b [nnum]);} delay (1500);}} / * ==== End of fun fadeout ==== * / void clrscreen (void) {Int Num; f (11, 9); for (Num = 84; Num <476; Num ) {B (7, Num, 632, Num 2); delay (20);} }

INT Ball (int NRN) {f (1,7); B (20, 105, 609, 130); F (1, RED); S (RED); C (118 (nrn * 200), 115, 10); floodfill (118 (nrn * 200), 115, red);

Void quit () {clrscreen (); setTextStyle (default_font, horiz_dir, 2); s (White); O (180, 210, "THANK You to Play"); O (180, 230, "2002.7"); s (red); O (181, 211, "Thank You to Play"); O (181, 231, "2002.7"); O (181, 260, "ANY Key to Quit"); S (Green); O (180, 180, "Game Over"); s (15 ); O (181, 181, "game over"); getCh (); fadein (); closEGRAPH (); end (); exit (0);} / * ==== end of fun quit ==== * /

INT iswin () {INT I, NSTEP_SUB_REC; INT NDiskNum = 0; for (i = 0; i

Void helpMessage () {s (15); L (7, 314, 632, 314); L (7, 432, 632, 432); S (12); setTextStyle (default_font, horiz_dir, 1); O (23, 320, "Help Message:"); s (7); O (50, 340, "1) ............. KEY: <-, ->, a, d: move the red ball to select a rod"); O (50, 365, "2) ............. Key: up, w: to select the top disk "); O (50, 390," 3) .................... , S: to get down the disk which select "); O (50, 415," 4) ............ Key: esc: quit the game "); s (12); o 50, 442, "5) .............................. = a basenum Than: you win"); O (50, 453, "6) .......... ... if step-record <= a baseum * 2 Than: Just Soso "); O (50, 464," 7) ................. Else: you bad bad ^ _ ^ ") } / * ==== end of fun helpMessage ======= Game: Player play ======== * / void game () {int nmovedisk [ 4], NuPDiskName1, NuPDiskName2, NupdiskNum1, NuPDisknum2, NHAVEMOVE = 0, i, J, NRN = 0; int Nstage, Nstage1, Nstage2, NRN1, NRN2; INT X1, Y1, X2, Y2; Int A = 0, b = 0; int nName = 1; NREC = NRECORD [NDisk-3]; Drawrod (); showrecord (); Flash_Rec ();

For (i = 0; i <3; i ) / * --- exist bit = 0 --- * / for (j = 0; j <9; j ) {Tree [i] .ndisk [j] [0 ] = 0; Tree [i] .ndiskname [j] = 0;}

For (i = 0; i

NName = nName 1; A = a 8; b = b 20;} for (i = 0; i

S (13); O (239, 419, "Game Start, Please Go !!); While (1) {IF (KBHIT ()) Switch (Getch ()) {Case 75: / ** left ** / case ' A ': Case' a ': nrn = ((nrn == 0)? 2: nRN-1); ball (nrn); showinfo (nrn, 0); flash_rec (); Break;

Case 77: / ** Right ** / Case 'D': Case 'D': nrn = ((nrn == 2)? 0: nrn 1); ball (nrn); showinfo (nrn, 0); flash_rec ();

Case 72: / ** UP ** / CASE 'W': Case 'W': for (i = 0; Tree [nrn] .ndisk [i] [0]! = 0; i ); if (i <1 Break; else {NUPDISKNAME1 = Tree [nrn] .ndiskname [i-1]; NupDiskNum1 = I-1; Nstage1 = I-1; nstage1 = I-1; nstage1 = nrn; for (i = 0; i <4; i ) nmovedisk [i ] = Tree [nrn] .ndisk [NUPDiskNum1] [i 1]; NHAVEMOVE = 0; / * Tree [nrn] .diskname [NUPDiskNum1] = 0; Tree [nrn] .disk [NupDiskNum1] [0] = 0; * /} Showinfo (nrn, 1); Break;

Case 80: / ** down ** / case 's': case 's': IF (nmovedisk [0] == 0) Break; for (i = 0; tree [nrn] .ndisk [i] [0] ! = 0; i ); if (i <1) {if (NHAVEMOVE == 1) Break; nstage2 = 0; nrn2 = nrn; Tree [nrn] .ndiskname [0] = NuPDiskName1; Tree [nrn] .ndisk [ 0] [0] = 1; / ** EXIST bit -> 1 ** / tree [nrn1] .ndiskname [NUPDiskNum1] = 0; Tree [nrn1] .ndisk [Nupdisknum1] [0] = 0; Nstage = Nstage1 -nstage2; x1 = nmovedisk [0] (nRN2-nRN1) * x; y1 = nmovedisk [1] nstage * y; x2 = nmovedisk [2] (nRN2-nRn1) * x; y2 = nMOVedisk [3] Nstage * Y; Tree [nrn] .ndisk [0] [1] = x1; Tree [nrn] .ndisk [0] [2] = Y1; Tree [nrn] .ndisk [0] [3] = x2; Tree [nrn] .ndisk [0] [4] = y2;} else {Nupdiskname2 = Tree [nrn] .ndiskname [i-1]; NupdiskNum2 = i; nstage2 = i; nrn2 = nrn; if (NupDiskName1> NupdiskName2) {IF (NHAVEMOVE == 1) Break; Tree [nrn] .ndiskname [Nupdisknum2] = NupDiskName1; Tree [nrn] .ndisk [NupDiskNum2] [0] = 1; / ** EXIST bit -> 1 ** / Tree [nrn1] .ndis KNAME [NUPDiskNum1] = 0; Tree [nrn1] .ndisk [NupdiskNum1] [0] = 0; Nstage = Nstage1-Nstage2; x1 = nmovedisk [0] (nRN2-nRN1) * x; Y1 = nmoveDisk [1] Nstage * y; x2 = nmovedisk [2] (nRN2-nrn1) * x; y2 = nmovedisk [3] nstage * y;

Tree [nrn] .ndisk [NupDiskNum2] [1] = x1; Tree [nrn] .ndisk [NUPDiskNum2] [2] = Y1; Tree [nrn] .ndisk [NupDiskNum2] [3] = x2; Tree [nrn]. NDisk [NupdiskNum2] [4] = Y2;} else {Sound (1000); DELAY (300); Nosound (); Break;}} FillDisk (nmovedisk [0], nmovedisk [1], nmovedisk [2], nmovedisk [ 3], White, White; FillDisk (nmovedisk [0], nmovedisk [1], nmovedisk [2], nmovedisk [3], 7, 7); FillDisk (x1, y1, x2, y2, 8, blue); nstep = nstep 1; showRecord (); Drawrod (); for (i = 0; i <4; i ) nmovedisk [i] = 0; NHAVEMOVE = 1; if (iswin () == 1 Return; / **** Check if Moves Are Finished **** / BREAK;

Case 27: quit (); break; default: Sound (100); delay (10); nosound (); Break;}}} / * ==== end of function game ==== * /

Void select () {INT NINPUT, I; DRAW (); setTextStyle (default_font, horiz_dir, 1); S (15); for (i = 1; i <75; i ) {delay (500); / * speed of The Sentence * / SetViewPort (0,0,50 i * 8, 479, 1); O (155, 230, "Please Input the number of disks (3..9):");} while ((Ninput = getch ()) <'3' || ninput> '9'); NINPUT = NINPUT-48; NDISK = NINPUT; DELAY (1000);

Void Mode_1 () / ** Player Play ** / {Again: Draw (); fadeout (); game (); / ** game ** / clearden; if (ndisk <9) ndisk ; nstep = 0; Goto Again;

Void initial_autoplay () {INT I, J, A = 0, B = 0; int nName = 1;

IF (nSelectDelay == 1) ndelay = 0.5; / ** 0.5 sec ** / else = = 1.0; / ** 1.0 sec ** / else nDELAY = 2.0; / ** 2.0 second * /

NREC = NRECORD [NDisk-3]; Drawrod (); showrecord ();

For (i = 0; i <3; i ) / * --- exist bit = 0 --- * / for (j = 0; j <9; j ) {Tree [i] .ndisk [j] [0 ] = 0; Tree [i] .ndiskname [j] = 0;} for (i = 0; i

NName = nName 1; a = a 8; b = b 20;}

For (i = 0; i

/ * ============ Game: Auto Play (MoveDisk) ====================== * / void MoveDisk (int nmovedisk [4] , NupdiskName1, NupdiskName2, NupdiskNum1, NupdiskNum2, I; Int Nstage, Nstage1, Nstage2; INT X1, Y1, X2, Y2; NRN1 = nRN1-1; NRN2 = nRN2-1; / * --------- -------------------------------------------------- --------- * / for (i = 0; tree [nrn1] .ndisk [i] [0]! = 0; i ); NupdiskName1 = Tree [nrn1] .ndiskname [i-1]; NupdiskNum1 = I-1; Nstage1 = I-1; for (i = 0; i <4; i ) nmovedisk [i] = tree [nrn1] .ndisk [NupdiskNum1] [i 1]; / * printf ("% D% D% D% D / N ", nmovedisk [0], nmovedisk [1], nmovedisk [2], nmovedisk [3]); * // * -------------- -------------------------------------------------- ---- * / Sleep (ndelay); / * ------------------------------------- ------------------------------- * / for (i = 0; tree [nrn2] .ndisk [i] [0 ]! = 0; i ); if (i <1) {nstage2 = 0; Tree [nrn2] .ndiskname [0] = NupdiskName1; Tree [nrn2] .ndisk [0] [0] = 1; / ** EXIST Bit -> 1 ** / Tree [nrn1] .ndiskname [NupdiskNum1] = 0; Tree [nrn1] .ndisk [NupdiskNum1] [0] = 0; Nstage = NS TAGE1-NSTAGE2; x1 = nmovedisk [0] (nRN2-nRN1) * x; y1 = nmovedisk [1] nstage * y; x2 = nmovedisk [2] (nRN2-nRN1) * x; y2 = nmovedisk [3 ] NStage * Y;

Tree [nrn2] .ndisk [0] [1] = x1; Tree [nrn2] .ndisk [0] [2] = Y1; Tree [nrn2] .ndisk [0] [3] = x2; Tree [nrn2]. NDisk [0] [4] = Y2;} else {NupdiskName2 = Tree [nrn2] .ndiskName [i-1]; NupdiskNum2 = i; nstage2 = i; if (NupDiskName1> NupdiskName2) {Tree [nrn2] .ndiskname [NupDisknum2 ] = NuPDiskName1; Tree [nrn2] .ndisk [NUPDiskNum2] [0] = 1; / ** EXIST bit -> 1 ** / tree [nrn1] .ndiskname [NupdiskNum1] = 0; Tree [nrn1] .ndisk [ NupdiskNum1] [0] = 0; Nstage = Nstage1-Nstage2; x1 = nmovedisk [0] (nRN2-nRN1) * x; Y1 = nmoveDisk [1] nstage * y; x2 = nmoveDisk [2] (nrn2- nrn1) * x; y2 = nmovedisk [3] Nstage * Y; Tree [nrn2] .ndisk [NUPDiskNum2] [1] = x1; Tree [nrn2] .ndisk [NupDisknum2] [2] = Y1; Tree [nrn2] .ndisk [NupDiskNum2] [3] = x2; Tree [nrn2] .ndisk [Nupdisknum2] [4] = Y2;

} / * Printf ("% D% D% D% D / N", nmovedisk [0], nmovedisk [1], nmovedisk [2], nmovedisk [3]); * / FillDisk [0], NMOVEDISK [ 1], NMOVEDISK [2], NMOVEDISK [3], White, White); DELAY (2000); FillDisk (nmovedisk [0], nmovedisk [1], nmovedisk [2], nmovedisk [3], 7 ,7); FillDisk (x1, y1, x2, y2, 8, blue); nstep = nstep 1; showrecord (); Drawrod ();

} / * End of func auto play: movedisk * /

Void AutoPlay (Int NDISK, INT One, INT TWO, INT THREE) {IF (NDisk == 1) MoveDisk (One, Three); Else {AutoPlay (NDisk-1, One, Three, Two); MoveDisk (One, Three ); AutoPlay (NDisk-1, Two, One, Three);}}

int SelectDelay () {ClrScreen (); S (7); R (98,278,200,295); R (268,278,370,295); R (437,278,539,295); L (149,278,149,200); L (319,278,319,200); L (486,278,486,200); L (149,200,590,200); / ** Up line ** / l (590, 200, 590, 390); O (130, 387, "Please select the auto play speed (delay time)"); f (1, 8); B (99, 279, 199, 294); B (269, 279, 369, 294) ); B (438, 279, 538, 294);

S (15); O (109, 284, "0.5 second"); O (279, 284, "1.0 Second"); O (448, 284, "2.0 second");

S (12); R (98, 278, 200, 295); O (350, 192, "_ Press To ENTER >>); While (1) {IF (KBHIT ()) Switch (Getch ()) {Case 75: Case ' A ': Case' A ': NSelectdeLay = ((nSelectdeLay == 1)? 3: nSelectdeLay-1); if (nSelectdeLay == 1) {s (12); R (98, 278, 200, 295); s (7); R (R); 268, 278, 370, 295); R (437, 278, 539, 295);} else IF (nselectdeLay == 2) {S (12); R (268, 278, 370, 295); S (7); R (98, 278, 200, 295); R (437, 278, 539, 295);} else {s (12) R (437, 278, 539, 295); S (7); R (98, 278, 200, 295); R (268, 278, 370, 295);} Break; Case 77: Case 'D': Case 'D': NSelectdeLay = ((NSELECTDELAY == 3)? 1: nselectdelay 1); if (nselectdelay == 1) {S (12); R (98, 278, 200, 295); s (7); R (268, 278, 370, 295); R (437, 278, 539, 295);} else f (nselectdeLay == 2) {S (12) R (268, 278, 370, 295); S (7); R (98, 278, 200, 295); R (437, 278, 539, 295); else {S (12); R (437, 278, 539, 295); S (7); R (98, 278, 200, 295); R (268, 278, 370, 295); } Break;

Case 27: clrscreen (); quit (); end (); break; case 60: clrscreen (); DRAW (); fadeout (); s (green); o (235, 419, "- press any key to start- - "); getCh (); initial_autoplay (); autoplay (ndisk, 1, 2, 3); / ***); b (230, 418, 620, 428); s (15); o 235, 419, "- Auto Play Over--"); SLEEP (1); Clrscreen (); Return; Break; Default: Sound (100); DELAY (10); nosound (); Break;}

}

Void Mode_2 () {selectdelay (); Return;}

Void GameMode (INT MODE) {if (Mode == 1) {clrscreen (); select (); MODE_1 ();} if (Mode == 2) {clrscreen (); select (); MODE_2 (); return; }

Void logo () {INT NPLAY_MODE = 1; DRAW (); clrscreen (); helpMessage (); / ** Help Message ** / f (1, 15); B (150, 200, 529, 300); f (1, 8); B (151, 201, 530, 300);

F (1, 12); / ** Draw Button ** / B (200, 275, 280, 290); B (400, 275, 480, 290); F (1, RED); B (201, 276, 281, 291); f (1, 9); B (401, 276, 481, 291);

S (12); O (265, 255, "Press to ENTER);

S (15); setTextStyle (default_font, horiz_dir, 1); O (230, 240, "Please select the play mode:"); O (205, 280, "you play"); O (405, 280, "auto play");

While (1) {IF (KBHIT ()) {Case 75: Case 'A': Case 'A': NPLAY_MODE = ((NPLAY_MODE == 1)? 2: 1); f (1, RED); if (nPLAY_MODE == 1) {B (201, 276, 281, 291); O (205, 280, "You Play"); F (1, 9); B (401, 276, 481, 291); O (405, 280, "Auto Play");} else {B (401, 276, 481, 291); O (405, 280, "Auto Play"); F (1,9); B (201, 276, 281, 291); O (205, 280, "You Play");} Break; Case 77: Case 'D': Case 'D': nPLAY_MODE = (NPLAY_MODE == 2)? 1: 2); f (1, red); if (nPLAY_MODE == 1) {B (201, 276, 281, 291); O (205, 280, "You Play"); f (1, 9); B (401, 276, 481, 291); O (405, 280, "Auto Play");} else {b (401, 276, 481, 291); O (405, 280, "Auto Play"); f (1, 9); B (201, 276, 281, 291) (205, 280, "you play");} Break; Case 60: Gamemode (NPLAY_MODE); Return; Break; Case 27: quit (); end (); exit (0); break; default: Sound (100) DELAY (10); nosound (); Break;

}}}

MAIN () {initial (); start_logo (); getch (); again: nstep = 0; logo (); goto again;} / ** end ** /

转载请注明原文地址:https://www.9cbs.com/read-26222.html

New Post(0)