⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rpg.c

📁 一个随机密码产生器代码
💻 C
📖 第 1 页 / 共 2 页
字号:
							 (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 + -