📄 rpg.c
字号:
(ir.Event.MouseEvent.dwMousePosition.Y == START_Y+9) )
{
// deleting the warning text
SetColor (FRONT_GREY);
clrscr (START_X-2, START_Y+11, 47, 0);
// about text
SetColor (FRONT_WHITE);
gotoxy (START_X+12, START_Y+11);
printf ("Author: Ga鏿er Raj鏴k");
gotoxy (START_X+9, START_Y+12);
printf ("E-mail: gape.korn@volja.net");
}
// generate password button
if ( (ir.Event.MouseEvent.dwMousePosition.X >= START_X+27) &&
(ir.Event.MouseEvent.dwMousePosition.X <= START_X+34) &&
(ir.Event.MouseEvent.dwMousePosition.Y == START_Y+3) )
{
if ( (!OptionLowerCaseLetters) && (!OptionUpperCaseLetters) && (!OptionNumbers) && (!OptionSymbols) )
{
// deleting the about text
SetColor (FRONT_GREY);
clrscr (START_X+9, START_Y+11, 26, 1);
// warning text
SetColor (FRONT_LIGHTRED);
gotoxy (START_X-2, START_Y+11);
printf ("You have to enable at least one password option!");
}
else
{
// deleting the previous text
SetColor (FRONT_GREY);
clrscr (START_X+9, START_Y+11, 26, 1);
SetColor (FRONT_GREY);
clrscr (START_X-2, START_Y+11, 47, 0);
// loop for generating a random password
for (i = 0; i < MAX_NOOF_CHARS; i++)
{
if (i < MaxNoOfChars)
{
Generator[LOWERCASE_LETTERS] = START_LOWERCASE_LETTERS + (rand () % (END_LOWERCASE_LETTERS+1 - START_LOWERCASE_LETTERS)); // izbere 歵evilko med START_LOWERCASE_LETTERS in END_LOWERCASE_LETTERS+1-1
Generator[UPPERCASE_LETTERS] = START_UPPERCASE_LETTERS + (rand () % (END_UPPERCASE_LETTERS+1 - START_UPPERCASE_LETTERS)); // izbere 歵evilko med START_UPPERCASE_LETTERS in END_UPPERCASE_LETTERS+1-1
Generator[NUMBERS] = START_NUMBERS + (rand () % (END_NUMBERS+1 - START_NUMBERS)); // izbere 歵evilko med START_NUMBERS in END_NUMBERS+1-1
Generator[SYMBOLS] = START_SYMBOLS + (rand () % (END_SYMBOLS+1 - START_SYMBOLS)); // izbere 歵evilko med START_SYMBOLS in END_SYMBOLS+1-1
if (OptionLowerCaseLetters) Password[i] = (char) Generator[LOWERCASE_LETTERS];
if (OptionUpperCaseLetters) Password[i] = (char) Generator[UPPERCASE_LETTERS];
if (OptionNumbers) Password[i] = (char) Generator[NUMBERS];
if (OptionSymbols) Password[i] = (char) Generator[SYMBOLS];
if ( (OptionLowerCaseLetters) && (OptionUpperCaseLetters) )
{
Choice[LOWERCASE_LETTERS] = rand () % 2;
Choice[UPPERCASE_LETTERS] = rand () % 2;
if (Choice[LOWERCASE_LETTERS])
{
Password[i] = (char) Generator[LOWERCASE_LETTERS];
}
else if (Choice[UPPERCASE_LETTERS])
{
Password[i] = (char) Generator[UPPERCASE_LETTERS];
}
}
if ( (OptionLowerCaseLetters) && (OptionNumbers) )
{
Choice[LOWERCASE_LETTERS] = rand () % 2;
Choice[NUMBERS] = rand () % 2;
if (Choice[LOWERCASE_LETTERS])
{
Password[i] = (char) Generator[LOWERCASE_LETTERS];
}
else if (Choice[NUMBERS])
{
Password[i] = (char) Generator[NUMBERS];
}
}
if ( (OptionLowerCaseLetters) && (OptionSymbols) )
{
Choice[LOWERCASE_LETTERS] = rand () % 2;
Choice[SYMBOLS] = rand () % 2;
if (Choice[LOWERCASE_LETTERS])
{
Password[i] = (char) Generator[LOWERCASE_LETTERS];
}
else if (Choice[SYMBOLS])
{
Password[i] = (char) Generator[SYMBOLS];
}
}
if ( (OptionUpperCaseLetters) && (OptionNumbers) )
{
Choice[UPPERCASE_LETTERS] = rand () % 2;
Choice[NUMBERS] = rand () % 2;
if (Choice[UPPERCASE_LETTERS])
{
Password[i] = (char) Generator[UPPERCASE_LETTERS];
}
else if (Choice[NUMBERS])
{
Password[i] = (char) Generator[NUMBERS];
}
}
if ( (OptionUpperCaseLetters) && (OptionSymbols) )
{
Choice[UPPERCASE_LETTERS] = rand () % 2;
Choice[SYMBOLS] = rand () % 2;
if (Choice[UPPERCASE_LETTERS])
{
Password[i] = (char) Generator[UPPERCASE_LETTERS];
}
else if (Choice[SYMBOLS])
{
Password[i] = (char) Generator[SYMBOLS];
}
}
if ( (OptionNumbers) && (OptionSymbols) )
{
Choice[NUMBERS] = rand () % 2;
Choice[SYMBOLS] = rand () % 2;
if (Choice[NUMBERS])
{
Password[i] = (char) Generator[NUMBERS];
}
else if (Choice[SYMBOLS])
{
Password[i] = (char) Generator[SYMBOLS];
}
}
if ( (OptionLowerCaseLetters) && (OptionUpperCaseLetters) && (OptionNumbers) )
{
Choice[LOWERCASE_LETTERS] = rand () % 2;
Choice[UPPERCASE_LETTERS] = rand () % 2;
Choice[NUMBERS] = rand () % 2;
if (Choice[LOWERCASE_LETTERS])
{
Password[i] = (char) Generator[LOWERCASE_LETTERS];
}
else if (Choice[UPPERCASE_LETTERS])
{
Password[i] = (char) Generator[UPPERCASE_LETTERS];
}
else if (Choice[NUMBERS])
{
Password[i] = (char) Generator[NUMBERS];
}
}
if ( (OptionLowerCaseLetters) && (OptionUpperCaseLetters) && (OptionSymbols) )
{
Choice[LOWERCASE_LETTERS] = rand () % 2;
Choice[UPPERCASE_LETTERS] = rand () % 2;
Choice[SYMBOLS] = rand () % 2;
if (Choice[LOWERCASE_LETTERS])
{
Password[i] = (char) Generator[LOWERCASE_LETTERS];
}
else if (Choice[UPPERCASE_LETTERS])
{
Password[i] = (char) Generator[UPPERCASE_LETTERS];
}
else if (Choice[SYMBOLS])
{
Password[i] = (char) Generator[SYMBOLS];
}
}
if ( (OptionLowerCaseLetters) && (OptionNumbers) && (OptionSymbols) )
{
Choice[LOWERCASE_LETTERS] = rand () % 2;
Choice[NUMBERS] = rand () % 2;
Choice[SYMBOLS] = rand () % 2;
if (Choice[LOWERCASE_LETTERS])
{
Password[i] = (char) Generator[LOWERCASE_LETTERS];
}
else if (Choice[NUMBERS])
{
Password[i] = (char) Generator[NUMBERS];
}
else if (Choice[SYMBOLS])
{
Password[i] = (char) Generator[SYMBOLS];
}
}
if ( (OptionUpperCaseLetters) && (OptionNumbers) && (OptionSymbols) )
{
Choice[UPPERCASE_LETTERS] = rand () % 2;
Choice[NUMBERS] = rand () % 2;
Choice[SYMBOLS] = rand () % 2;
if (Choice[UPPERCASE_LETTERS])
{
Password[i] = (char) Generator[UPPERCASE_LETTERS];
}
else if (Choice[NUMBERS])
{
Password[i] = (char) Generator[NUMBERS];
}
else if (Choice[SYMBOLS])
{
Password[i] = (char) Generator[SYMBOLS];
}
}
if ( (OptionLowerCaseLetters) && (OptionUpperCaseLetters) && (OptionNumbers) && (OptionSymbols) )
{
Choice[LOWERCASE_LETTERS] = rand () % 2;
Choice[UPPERCASE_LETTERS] = rand () % 2;
Choice[NUMBERS] = rand () % 2;
Choice[SYMBOLS] = rand () % 2;
if (Choice[LOWERCASE_LETTERS])
{
Password[i] = (char) Generator[LOWERCASE_LETTERS];
}
else if (Choice[UPPERCASE_LETTERS])
{
Password[i] = (char) Generator[UPPERCASE_LETTERS];
}
else if (Choice[NUMBERS])
{
Password[i] = (char) Generator[NUMBERS];
}
else if (Choice[SYMBOLS])
{
Password[i] = (char) Generator[SYMBOLS];
}
}
}
else Password[i] = ' ';
}
Password[i] = '\0';
SetColor (BACK_WHITE);
gotoxy (START_X+15, START_Y+3);
printf ("%s", Password);
}
}
// password length option - arrow up
if ( (ir.Event.MouseEvent.dwMousePosition.X == START_X+38) &&
(ir.Event.MouseEvent.dwMousePosition.Y == START_Y+6) )
{
if (MaxNoOfChars < 10)
{
SetColor (BACK_WHITE);
gotoxy (START_X+35, START_Y+6);
printf ("%02d", ++MaxNoOfChars);
}
}
// password length option - arrow down
if ( (ir.Event.MouseEvent.dwMousePosition.X == START_X+38) &&
(ir.Event.MouseEvent.dwMousePosition.Y == START_Y+7) )
{
if (MaxNoOfChars > 1)
{
SetColor (BACK_WHITE);
gotoxy (START_X+35, START_Y+6);
printf ("%02d", --MaxNoOfChars);
}
}
// lower case letters option
if ( (ir.Event.MouseEvent.dwMousePosition.X >= START_X) &&
(ir.Event.MouseEvent.dwMousePosition.X <= START_X+21) &&
(ir.Event.MouseEvent.dwMousePosition.Y == START_Y+6) )
{
SetColor (FRONT_GREY | BACK_DARKGREEN);
if (!OptionLowerCaseLetters)
{
gotoxy (START_X+1, START_Y+6);
printf ("x");
OptionLowerCaseLetters = 1;
}
else
{
gotoxy (START_X+1, START_Y+6);
printf (" ");
OptionLowerCaseLetters = 0;
}
}
// upper case letters option
if ( (ir.Event.MouseEvent.dwMousePosition.X >= START_X) &&
(ir.Event.MouseEvent.dwMousePosition.X <= START_X+21) &&
(ir.Event.MouseEvent.dwMousePosition.Y == START_Y+7) )
{
SetColor (FRONT_GREY | BACK_DARKGREEN);
if (!OptionUpperCaseLetters)
{
gotoxy (START_X+1, START_Y+7);
printf ("x");
OptionUpperCaseLetters = 1;
}
else
{
gotoxy (START_X+1, START_Y+7);
printf (" ");
OptionUpperCaseLetters = 0;
}
}
// numbers option
if ( (ir.Event.MouseEvent.dwMousePosition.X >= START_X) &&
(ir.Event.MouseEvent.dwMousePosition.X <= START_X+10) &&
(ir.Event.MouseEvent.dwMousePosition.Y == START_Y+8) )
{
SetColor (FRONT_GREY | BACK_DARKGREEN);
if (!OptionNumbers)
{
gotoxy (START_X+1, START_Y+8);
printf ("x");
OptionNumbers = 1;
}
else
{
gotoxy (START_X+1, START_Y+8);
printf (" ");
OptionNumbers = 0;
}
}
// symbols option
if ( (ir.Event.MouseEvent.dwMousePosition.X >= START_X) &&
(ir.Event.MouseEvent.dwMousePosition.X <= START_X+10) &&
(ir.Event.MouseEvent.dwMousePosition.Y == START_Y+9) )
{
SetColor (FRONT_GREY | BACK_DARKGREEN);
if (!OptionSymbols)
{
gotoxy (START_X+1, START_Y+9);
printf ("x");
OptionSymbols = 1;
}
else
{
gotoxy (START_X+1, START_Y+9);
printf (" ");
OptionSymbols = 0;
}
}
break;
}
}
// keyboard
if ( (ir.EventType == KEY_EVENT) && (ir.Event.KeyEvent.bKeyDown) )
{
switch (ir.Event.KeyEvent.wVirtualKeyCode)
{
case VK_ESCAPE: // quit the application
Loop = 0;
break;
}
}
}
}
// clear the whole screen and return 0 to the os
SetColor (FRONT_GREY);
clrscr (0, 0, 79, 24);
return 0;
}
void gotoxy (short x, short y)
{
COORD coord;
coord.X = x;
coord.Y = y;
SetConsoleCursorPosition (GetStdHandle (STD_OUTPUT_HANDLE), coord);
}
void clrscr (short x, short y, short EraseLength, short NoOfLines)
{
short i = 0, j = 0, k = 0;
char Erase[30][85];
if (NoOfLines == 0) k = 0; else k = 1;
for (i = 0; i <= NoOfLines+k; i++)
{
for (j = 0; j <= EraseLength; j++)
{
Erase[i][j] = ' ';
}
Erase[i][j] = '\0';
SetColor (FRONT_GREY);
gotoxy (x, y+i);
printf ("%s", Erase);
}
}
BOOL SetColor (WORD Color)
{
HANDLE hOutput;
hOutput = GetStdHandle (STD_OUTPUT_HANDLE);
return SetConsoleTextAttribute (hOutput, Color);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -