using System; using System.Collections; using System.Threading; public class Snake { public static void Main() { ArrayList posx = new ArrayList(); ArrayList posy = new ArrayList(); int dx, dy, foodx, foody, skor, i, j , enemyx, enemyy, enemyTimer, batasAtas , delaySpeed; String foodChar = "f"; String enemyChar = "e"; delaySpeed = 100; Random r = new Random(); for (i=0; i<6; i++) { posx.Add(35+i); posy.Add(13); } bool selesai = false; foodx = 10; foody = 10; enemyx = 70; enemyy = 20; enemyTimer = 150; dx = -1; dy = 0; skor = 0; batasAtas = 1; ConsoleKeyInfo key = new ConsoleKeyInfo(); while(!selesai) { Console.Clear(); Console.SetCursorPosition(1,0); Console.Write("Score : " + skor); Console.SetCursorPosition(60,0); Console.Write("Speed : " + (100-delaySpeed)); // cetak for (i=0; iif you use windows 7, you can compile by typing :0; i--) { if ((int)posx[0] == (int)posx[i] && (int)posy[0] == (int)posy[i]) { // tabrak badan sendiri selesai = true; } posx[i] = posx[i-1]; posy[i] = posy[i-1]; } posx[0] = (int)posx[0] + dx; posy[0] = (int)posy[0] + dy; if ((int)posx[0] < 1) posx[0] = Console.BufferWidth-1; else if ((int)posx[0] > Console.BufferWidth-2) posx[0] = 1; if ((int)posy[0] < batasAtas) posy[0] = Console.BufferHeight-1; else if ((int)posy[0] > Console.BufferHeight-2) posy[0] = batasAtas; if ((int)posx[0] == foodx && (int)posy[0] == foody) { skor++; Console.Beep(); // Always 5, 6, 7, 8 or 9. // Console.WriteLine(r.Next(5, 10)); foodx = r.Next(1, Console.BufferWidth-2); foody = r.Next(2, Console.BufferHeight-2); posx.Add((int)posx[posx.Count-1]-dx); posy.Add((int)posy[posy.Count-1]-dy); if (skor % 10 == 0) { delaySpeed -= 10; if (delaySpeed <= 0) delaySpeed = 0; skor++; } Console.Beep(); } if ((int)posx[0] == enemyx && (int)posy[0] == enemyy) { selesai = true; } enemyTimer--; if (enemyTimer <= 0) { enemyx = r.Next(1, 80); enemyy = r.Next(2, 23); enemyTimer = 150; } Console.SetCursorPosition(1, Console.BufferHeight-1); if (Console.KeyAvailable) key = Console.ReadKey(); if (key.Key == ConsoleKey.Escape) selesai = true; if (key.Key == ConsoleKey.UpArrow) { if (dy != 1) { dy = -1; dx = 0; } } else if (key.Key == ConsoleKey.DownArrow) { if (dy != -1) { dy = 1; dx = 0; } } else if (key.Key == ConsoleKey.LeftArrow) { if (dx != 1) { dy = 0; dx = -1; } } else if (key.Key == ConsoleKey.RightArrow) { if (dx != -1) { dy = 0; dx = 1; } } else if (key.KeyChar == ' ') { // spasi untuk pause Console.SetCursorPosition(35, 0); Console.Write("PAUSED"); key = new ConsoleKeyInfo(); do { key = Console.ReadKey(); Console.Write("\b \b"); } while (key.KeyChar != ' '); key = new ConsoleKeyInfo(); } Thread.Sleep(delaySpeed); } for (i=10; i<20; i++) { for (j=15; j<55; j++) { Console.SetCursorPosition(j, i); if (i==10 || i == 19 || j == 15 || j == 54) Console.Write("*"); else Console.Write(" "); } } Console.SetCursorPosition(30, 12); Console.Write("GAME OVER"); Console.SetCursorPosition(17, 14); Console.Write("YOUR SCORE : " + skor); Console.SetCursorPosition(16, 20); Console.Write("f = food"); Console.SetCursorPosition(16, 21); Console.Write("e = enemy"); Console.SetCursorPosition(1, Console.BufferHeight-1); Console.ReadKey(); } } // end of code
c:\Windows\Microsoft.NET\Framework\v2.0.50727\csc file_name.cs
No comments:
Post a Comment