Maximvdw
Gebruiker
- Lid geworden
- 7 feb 2009
- Berichten
- 921
Hallo,
Ik wil een spel maken in C# met ASCII art. Een soort Papi Fall, maar dan voor console
.
Het spel zelf heb ik geen probleem mee met het maken, maar het is vooral de ASCII art die me dwars zit.
Ik genereer dus nu een tunnel. (Dieper en dieper). Maar ik wil het effect wekken dat het 'donker' word hoe dieper je gaat.
Ik dacht aan deze 3 symbolen om de kleur donkerder te maken
[TABLE="class: wikitable chset nounderlines, width: 100%"]
[TR]
[TD="bgcolor: #FFEFAF"]░
2591
176[/TD]
[TD="bgcolor: #FFEFAF"]▒
2592
177[/TD]
[TD="bgcolor: #FFEFAF"]▓
2593
178[/TD]
[/TR]
[/TABLE]
Maar dit geeft niet echt een mooi effect:
Ik ben niet zo weggelegd met het grafisch inzicht in ASCII art.. Iemand die een idee heeft om het verloop van kleuren, wat mooier te laten verlopen?
Het moet niet echt code zijn dat ik nodig heb, gewoon tips om het verloop wat te breken is ook al goed
Code:
Even voor de duidelijkheid: dit is gewoon maar een voorstelling van het genereren van de tunnel, niet het spel
Ik wil een spel maken in C# met ASCII art. Een soort Papi Fall, maar dan voor console

Het spel zelf heb ik geen probleem mee met het maken, maar het is vooral de ASCII art die me dwars zit.
Ik genereer dus nu een tunnel. (Dieper en dieper). Maar ik wil het effect wekken dat het 'donker' word hoe dieper je gaat.
Ik dacht aan deze 3 symbolen om de kleur donkerder te maken
[TABLE="class: wikitable chset nounderlines, width: 100%"]
[TR]
[TD="bgcolor: #FFEFAF"]░
2591
176[/TD]
[TD="bgcolor: #FFEFAF"]▒
2592
177[/TD]
[TD="bgcolor: #FFEFAF"]▓
2593
178[/TD]
[/TR]
[/TABLE]
- Ik begin met Green
- Vervolgens Green Background met symbool 176 in het DarkGreen
- Vervolgens Green Background met symbool 177 in het DarkGreen
- Vervolgens Green Background met symbool 178 in het DarkGreen
Maar dit geeft niet echt een mooi effect:

Ik ben niet zo weggelegd met het grafisch inzicht in ASCII art.. Iemand die een idee heeft om het verloop van kleuren, wat mooier te laten verlopen?
Het moet niet echt code zijn dat ik nodig heb, gewoon tips om het verloop wat te breken is ook al goed
Code:
Even voor de duidelijkheid: dit is gewoon maar een voorstelling van het genereren van de tunnel, niet het spel
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Journey_To_the_Center_of_the_Earth
{
class Program
{
static void Main(string[] args)
{
char c1 = (char)Encoding.GetEncoding(437).GetChars(new byte[] { 219 })[0];
char c2 = (char)Encoding.GetEncoding(437).GetChars(new byte[] { 221 })[0];
char c3 = (char)Encoding.GetEncoding(437).GetChars(new byte[] { 222 })[0];
char c4 = (char)Encoding.GetEncoding(437).GetChars(new byte[] { 176 })[0];
char c5 = (char)Encoding.GetEncoding(437).GetChars(new byte[] { 177 })[0];
char c6 = (char)Encoding.GetEncoding(437).GetChars(new byte[] { 178 })[0];
int posEnd = 0;
int posStart = 25;
int line = 1;
int sizeField = 50;
int sizeHole = 21;
int sizeTunnel = 30;
int lng = 5;
int color = 0;
Decimal _x;
int x;
while (true)
{
int[,] field = new int[sizeField + 23, sizeTunnel + 1];
Random rTunnel = new Random();
int xMin = posStart - lng;
int xMax = posStart + lng;
if (xMin < 0)
xMin = 0;
if (xMax > sizeField)
xMax = sizeField;
posEnd = rTunnel.Next(xMin,xMax);
int posDif = posEnd - posStart;
for (int i = 1; i < sizeTunnel -1 ; i++)
{
_x = (Decimal)(i * ((Decimal)posDif / (sizeTunnel - 3)));
x = (int)Math.Round(_x,0,MidpointRounding.ToEven);
for (int k = x - (sizeHole / 2); k <= x + (sizeHole / 2); k++)
{
field[posStart + k + 11,i] = 1;
}
}
for (int k = posStart - (sizeHole / 2); k <= posStart + (sizeHole / 2); k++)
{
field[k + 11, 0] = 1;
}
for (int k = posEnd - (sizeHole / 2); k <= posEnd + (sizeHole / 2); k++)
{
field[k + 11, sizeTunnel - 1] = 1;
}
posStart = posEnd;
line += 1;
if (line % 5 == 0 && sizeTunnel > 5)
{
sizeTunnel -= 1;
}
if (line % 15 == 0 && sizeHole > 5)
{
sizeHole -= 2;
}
if (line % 5 == 0 && lng < 15)
{
lng++;
}
if (line % 10 == 0)
{
color++;
}
// Show field
for (int i = 0; i < sizeTunnel; i++)
{
for (int j = 0; j < sizeField + 23; j++)
{
x = field[j, i];
if (x == 1)
{
Console.BackgroundColor = ConsoleColor.Blue;
Console.Write(" ");
}
else
{
switch (color)
{
case 0:
Console.ForegroundColor = ConsoleColor.Green;
Console.BackgroundColor = ConsoleColor.Green;
Console.Write(c1);
break;
case 1:
Console.ForegroundColor = ConsoleColor.DarkGreen;
Console.BackgroundColor = ConsoleColor.Green;
Console.Write(c4);
break;
case 2:
Console.ForegroundColor = ConsoleColor.DarkGreen;
Console.BackgroundColor = ConsoleColor.Green;
Console.Write(c5);
break;
case 3:
Console.ForegroundColor = ConsoleColor.DarkGreen;
Console.BackgroundColor = ConsoleColor.Green;
Console.Write(c6);
break;
case 4:
Console.ForegroundColor = ConsoleColor.DarkGreen;
Console.BackgroundColor = ConsoleColor.Green;
Console.Write(c6);
break;
default:
Console.ForegroundColor = ConsoleColor.DarkGreen;
Console.BackgroundColor = ConsoleColor.Green;
Console.Write(c1);
break;
}
}
}
Console.BackgroundColor = ConsoleColor.Black;
Console.WriteLine();
}
System.Threading.Thread.Sleep(500);
}
}
}
}