Bakgrund
I en tid då alla använde telefoner från Nokia (eller eventuellt Ericsson) så var spelet Masken, eller ”Snake”, något som alla kände till. Spelet är ett bra exempel på en enkel idé som ändå ger mycket spelglädje.
Här hittar du källkod till Youtube-genomgången.
Masken i Console
Snake.cs
using System;
using System.Collections.Generic;
using System.Diagnostics;
namespace Snake
{
class Program
{
struct Point
{
public Point(int x, int y)
{
X = x;
Y = y;
}
public int X { get; }
public int Y { get; }
}
static void Main(string[] args)
{
string[,] map =
{
{". ", ". ", ". ", ". ", ". ", ". ", ". ", ". ", ". ", ". "},
{". ", ". ", ". ", ". ", ". ", ". ", ". ", ". ", ". ", ". "},
{". ", ". ", ". ", ". ", ". ", ". ", ". ", ". ", ". ", ". "},
{". ", ". ", ". ", ". ", ". ", ". ", ". ", ". ", ". ", ". "},
{". ", ". ", ". ", ". ", ". ", ". ", ". ", ". ", ". ", ". "},
{". ", ". ", ". ", ". ", ". ", ". ", ". ", ". ", ". ", ". "},
{". ", ". ", ". ", ". ", ". ", ". ", ". ", ". ", ". ", ". "},
{". ", ". ", ". ", ". ", ". ", ". ", ". ", ". ", ". ", ". "},
{". ", ". ", ". ", ". ", ". ", ". ", ". ", ". ", ". ", ". "},
{". ", ". ", ". ", ". ", ". ", ". ", ". ", ". ", ". ", ". "}
};
Point direction = new Point(1, 0);
List<Point> masken = new List<Point>();
masken.Add(new Point(4, 4));
masken.Add(new Point(4, 4));
masken.Add(new Point(4, 4));
while (true)
{
Console.Clear();
//Rita spelet
for (int y = 0; y < map.GetLength(0); y++)
{
for (int x = 0; x < map.GetLength(1); x++)
{
Point currentPosition = new Point(x, y);
if (masken.Contains(currentPosition))
{
Console.BackgroundColor = ConsoleColor.Blue;
Console.Write(" ");
Console.BackgroundColor = ConsoleColor.Black;
}
else
Console.Write(map[y, x]);
}
Console.WriteLine();
}
//Vänta på input i ca 500ms
Stopwatch sw = Stopwatch.StartNew();
while (sw.ElapsedMilliseconds < 500)
{
if (Console.KeyAvailable)
{
var key = Console.ReadKey(true);
if (key.Key == ConsoleKey.LeftArrow)
{
direction = new Point(direction.Y, -direction.X);
}
if (key.Key == ConsoleKey.RightArrow)
{
direction = new Point(-direction.Y, direction.X);
}
}
}
//Göra förflyttning och logik etc.
Point head = masken[0];
Point newPosition = new Point(head.X + direction.X, head.Y + direction.Y);
masken.Insert(0, newPosition);
masken.RemoveAt(masken.Count - 1);
}
}
}
}
Masken - Console
Ladda ned
7,99 KB
Senaste kommentarer