Про Китай
3 weeks ago
Esprit curieux
#include <stdio.h> void main() { puts("#include <stdio.h>"); char *qstr = "void main() { puts(\"#include <stdio.h>\"); char *qstr = \"%s\"; printf(qstr, qstr); }"; printf(qstr, qstr); }
#include <stdio.h>
#include <windows.h>
void SetColor(DWORD color)
{
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hConsole, color);
}
void main()
{
SetColor(FOREGROUND_RED | FOREGROUND_INTENSITY);
printf("Red\n");
SetColor(FOREGROUND_GREEN | FOREGROUND_INTENSITY);
printf("Green\n");
SetColor(FOREGROUND_BLUE | FOREGROUND_INTENSITY);
printf("Blue\n");
SetColor(BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE | BACKGROUND_INTENSITY);
printf("White\n");
SetColor(0x0F);
printf("\n");
}//------------------------------------------------------------------------------
// Build a new tree
//------------------------------------------------------------------------------
void BuildTree(Point startPoint, Point endPoint, int k)
{
Random rnd = new Random((int)DateTime.Now.Ticks);
Pen pen = new Pen(Color.Black, k);
if (hasLeaves)
{
// set the color to rnd green and width = 5 for last branch as for a leaf
if (k < 1) pen = new Pen(Color.FromArgb(0, rnd.Next(80, 160), 0), 5);
}
m_Graphics.DrawLine(pen, startPoint, endPoint);
if (k > 0)
{
Point pNext = new Point();
// add branch to the right
pNext = new Point(endPoint.X + rnd.Next(0, spread), endPoint.Y - rnd.Next(0, speed));
BuildTree(endPoint, pNext, k - 1);
// add branch to the left
pNext = new Point(endPoint.X - rnd.Next(0, spread), endPoint.Y - rnd.Next(0, speed));
BuildTree(endPoint, pNext, k - 1);
Application.DoEvents();
}
}
* This source code was highlighted with Source Code Highlighter.