- 1
- 2
- 3
// Всем привет. Я тоже принёс говнокода, но в необычном формате.
// А именно, я написал мини-книгу "60 антипаттернов для С++ программиста".
// https://pvs-studio.ru/ru/blog/posts/cpp/1053/
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+1
// Всем привет. Я тоже принёс говнокода, но в необычном формате.
// А именно, я написал мини-книгу "60 антипаттернов для С++ программиста".
// https://pvs-studio.ru/ru/blog/posts/cpp/1053/
Там вы найдёте и реальный C++ говнокод и просто вредные советы в духе "Пишите код так, как будто его будет читать председатель жюри IOCCC и он знает, где вы живёте (чтоб приехать и вручить вам приз)".
Если сразу не понятно почему "совет" вреден, то там есть соответствующий разбор.
Готов подискутировать про написанное. Ну и приглашаю накидывать в комментариях аналогичные советы.
P.S. Предупреждаю: там много букв. Сразу запасайтесь кофе/энергетиком. Или попкорном :)
+1
Функция СоответствиеСодержитКлюч(Соответствие, Ключ)
Если НЕ Соответствие[Ключ] = Неопределено Тогда
Возврат Истина;
КонецЕсли;
КоличествоЭлементов = Соответствие.Количество();
Соответствие.Удалить(Ключ);
Если КоличествоЭлементов = Соответствие.Количество() Тогда
Возврат Ложь;
КонецЕсли;
Соответствие.Вставить(Ключ);
Возврат Истина;
КонецФункции
Как тебе такое Илон (зачеркнуто) Нуралиев?!
+1
if(pfocus=="Balanced")
if(StatRank>=4)
if(Age>=4&&Age<=10)
Str+=0.4*StrMod*timemult*StatRank*HBTCMod*World_Stat_Mod
End+=0.4*EndMod*timemult*StatRank*HBTCMod*World_Stat_Mod
Spd+=0.4*SpdMod*timemult*StatRank*HBTCMod*World_Stat_Mod
Base_BP+=1*BPMod*timemult*StatRank*HBTCMod*World_Stat_Mod
MaxKi+=1*KiMod*timemult*StatRank*HBTCMod*World_Stat_Mod
else
Str+=4*StrMod*timemult*StatRank*HBTCMod*World_Stat_Mod
End+=4*EndMod*timemult*StatRank*HBTCMod*World_Stat_Mod
Spd+=4*SpdMod*timemult*StatRank*HBTCMod*World_Stat_Mod
Base_BP+=1*BPMod*timemult*StatRank*HBTCMod*World_Stat_Mod
MaxKi+=1*KiMod*timemult*StatRank*HBTCMod*World_Stat_Mod
if(Age>=10&&Age<=15)
Str+=0.4*StrMod*timemult*StatRank*HBTCMod*World_Stat_Mod
End+=0.4*EndMod*timemult*StatRank*HBTCMod*World_Stat_Mod
Spd+=0.4*SpdMod*timemult*StatRank*HBTCMod*World_Stat_Mod
Base_BP+=1*BPMod*timemult*StatRank*HBTCMod*World_Stat_Mod
MaxKi+=1*KiMod*timemult*StatRank*HBTCMod*World_Stat_Mod
else
Str+=4*StrMod*timemult*StatRank*HBTCMod*World_Stat_Mod
End+=4*EndMod*timemult*StatRank*HBTCMod*World_Stat_Mod
Spd+=4*SpdMod*timemult*StatRank*HBTCMod*World_Stat_Mod
Base_BP+=1*BPMod*timemult*StatRank*HBTCMod*World_Stat_Mod
MaxKi+=1*KiMod*timemult*StatRank*HBTCMod*World_Stat_Mod
if(Age>=15&&Age<=20)
Str+=0.4*StrMod*timemult*StatRank*HBTCMod*World_Stat_Mod
End+=0.4*EndMod*timemult*StatRank*HBTCMod*World_Stat_Mod
Spd+=0.4*SpdMod*timemult*StatRank*HBTCMod*World_Stat_Mod
Base_BP+=1*BPMod*timemult*StatRank*HBTCMod*World_Stat_Mod
MaxKi+=1*KiMod*timemult*StatRank*HBTCMod*World_Stat_Mod
else
Str+=4*StrMod*timemult*StatRank*HBTCMod*World_Stat_Mod
End+=4*EndMod*timemult*StatRank*HBTCMod*World_Stat_Mod
Spd+=4*SpdMod*timemult*StatRank*HBTCMod*World_Stat_Mod
Base_BP+=1*BPMod*timemult*StatRank*HBTCMod*World_Stat_Mod
MaxKi+=1*KiMod*timemult*StatRank*HBTCMod*World_Stat_Mod
if(Age>=20&&Age<=25)
Str+=0.4*StrMod*timemult*StatRank*HBTCMod*World_Stat_Mod
End+=0.4*EndMod*timemult*StatRank*HBTCMod*World_Stat_Mod
Spd+=0.4*SpdMod*timemult*StatRank*HBTCMod*World_Stat_Mod
Base_BP+=1*BPMod*timemult*StatRank*HBTCMod*World_Stat_Mod
MaxKi+=1*KiMod*timemult*StatRank*HBTCMod*World_Stat_Mod
и далее ещё 300 строк такого говна. я не думал, что кроме мемов, ещё когда-нибудь с таким столкнусь
+1
Statement stmt1 = null;
ResultSet rs1 = null;
try {
StringBuilder sb = new StringBuilder(2000);
String sql = "";
String ss = "";
String ss_begin = "";
String ss_middle = "";
String ss_end = "";
int xcount = 0;
String XXX_ID = "";
String XXX_NAME = "";
if (c.XLANG_ID == 1) {
sql = sql + " SELECT 99 , 'Исходные' FROM dual union all ";
sql = sql + " SELECT 1 , 'Непарные исходные' FROM dual union all ";
sql = sql + " SELECT 2 , 'Временная' FROM dual union all ";
sql = sql + " SELECT 3 , 'Встречные' FROM dual ";
//sql = sql + " SELECT 4 , 'Непарные встречные' FROM dual ";
} else if (c.XLANG_ID == 2) {
sql = sql + " SELECT 99 , 'Base BPEBs' FROM dual union all ";
sql = sql + " SELECT 1 , 'Base BPEBs unpaired' FROM dual union all ";
sql = sql + " SELECT 2 , 'Temporary BPEB' FROM dual union all ";
sql = sql + " SELECT 3 , 'Generated BPEBs' FROM dual ";
//sql = sql + " SELECT 4 , 'Generated BPEBs unpaired' FROM dual ";
}
stmt1 = this.con.createStatement();
rs1 = stmt1.executeQuery(sql);
while (rs1.next()) {
xcount = xcount + 1;
XXX_ID = rs1.getString(1);
XXX_NAME = rs1.getString(2);
sb = sb.append("<msg>")
.append("<xid>").append(XXX_ID).append("</xid>")
.append("<xname>").append(vtb.budget.osa.tools.Tools.stringToXML(XXX_NAME)).append("</xname>")
.append("</msg>");
}
rs1.close();
stmt1.close();
ss_begin = ss_begin + "<xml id='XML_table1'>"
+ "<tab1>";
ss_end = ss_end
+ "</tab1>"
+ "</xml>";
if (xcount == 0) {
ss_middle = ss_middle + "<msg>"
+ "<xid></xid>"
+ "<xcode></xcode>"
+ "<xname></xname>"
+ "</msg>";
} else {
ss_middle = sb.toString();
}
ss = ss_begin + ss_middle + ss_end;
ss_begin = null;
ss_middle = null;
ss_end = null;
sb = null;
return ss;
}
+1
https://pastebin.com/MarcPuJc
говно для подтирания важных комментов в вк. Весь не поместился, прилегаю ссылку.
+1
private async getNewKey(): Promise<string> {
let i: number = 0;
let key: string;
while (i < 50000) {
key = this.generateKey(MIN_REFERRAL_NAME_LENGTH);
const inDatabase: number = await ReferralEntity.count({ where: { name: key }, transaction: this._transaction });
if (inDatabase === 0) {
const inProcess: boolean = newKeyInProcess.has(key);
if (!inProcess) {
newKeyInProcess.add(key);
break;
}
}
i++;
}
return key;
}
Тайпскрипт. MIN_REFERRAL_NAME_LENGTH = 3
Как считаете, когда всё приложение встанет колом?
+1
В одном из минувших топиков приподымали тему POP SMDб я тоже решил напейсать генератор паролей к этой игре.
https://pastebin.com/ANHTMmeM
на основе исходников roman-pro
+1
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
void PasswordChecker(void);
void sub_BB4F(unsigned char* Password);//subroutine $BB4F and so on...
void sub_BB21(void);
void sub_BBE0(void);
void sub_BBEA(void);
void SEC_SBC_6502(unsigned char operand);
void ADC_6502_simplified(unsigned char operand);
unsigned char Password[8];//$0766 to $076D in RAM, when a player enters it
unsigned char Invalidity=0;//$0764 in RAM
unsigned char Level;//$$0070 in RAM
unsigned char TimeTens;//$04c5 in RAM
unsigned char TimeOnes;//$04c6 in RAM
unsigned char Byte4BF, Byte17, Byte18;
unsigned char a, x;
unsigned char c=0;//carry flag
//former char Byte76A is Password[4] now, former char Byte76C is Password[6] now
void PasswordGenerator(void);
void BuildORTable(void);
unsigned char* BuildParticularLevelsArray(unsigned char DesiredLevel);//will think of it later...
void SimplifiedLevelGenerator(unsigned char* PassToFill,unsigned char Level);//finds just one 2nd,3rd,6th,8th digit combo
int main()
{
int Choice;
printf("Enter g if you'd like to generate a new password.\nEnter a to analyze an existing password.\n");
Choice=fgetc(stdin);
flushall();
if (Choice=='a')
PasswordChecker();
if (Choice=='g')
PasswordGenerator();
if (Choice=='s')//'level function' is basic when generating a pass
BuildORTable();//so here a bit of 'hidden' investigation, which will be useful
//if I ever decide to rewrite this prog to output all passes possible, not just one
printf("Press any key to quit.\n");
getch();
return 0;
}
void PasswordChecker(void)
{
char InputString[9];//one extra byte needed due to fgets
int i;
printf("Please enter your password to test:\n");
fgets(InputString,9,stdin);
for(i=0;i<8;i++)
{
if ((InputString[i]>57)||(InputString[i]<48))
{
printf("This string contains non-digits.\n");
return;
}
else
Password[i]=InputString[i]-48;//ascii to digit
}
sub_BB4F(Password);
if (Invalidity==1)
{
printf("This password is invalid.\n");
return;
}
printf("%s%d","Level: ",Level);
printf("%s%d%d\n"," Time: ",TimeTens,TimeOnes);
if (Level==15)
printf("Level 15 doesn't exist. So-called level 15 passwords are programming mistakes and cause system hang.\n");
if (Level==16)
printf("Level 16 doesn't exist. So-called level 16 passwords are programming mistakes and lead you to a buggy screen where Prince can't move.\n");
return;
}
void sub_BB4F(unsigned char* Password)//$BB4F
{
a=0;
x=0;
while (x<8)
{
a=a+Password[x];
x++;
}
if(a==0)
{
Invalidity=1;//$BBC0
return;
}
Byte17=Password[4];//$BB63
Byte18=Password[6];
Password[4]=0;
Password[6]=0;
sub_BB21();//$BB72,calculates and writes 1st checksum to Password[4], 2nd checksum to Password[6]
if (Password[4]!=Byte17)
{
Invalidity=1;
return;
}
Генератор паролей для игры Prince Of Perisa. Пришлось немного повозиться...
if (Password[6]!=Byte18)//$BB7C
{
Invalidity=1;
return;
}
Invalidity=0;//$BB85
a=Password[7];
sub_BBEA();
a=a&3;//$BB8E
a=a*4;
Password[7]=a;
a=Password[1];
sub_BBE0();//$BB98
a=a|Password[7];
Level=a+1;//+1 is my insertion
//if (Level!=1)//I chose to omit this $BBA2-$BBA4 code b/c it's unknown what byte at $06EE means
a=Password[0];
sub_BBE0();//$BBAA
TimeTens=a;
a=Password[3];
sub_BBEA();
TimeOnes=a;
return;//$BBBF
}
void SEC_SBC_6502(unsigned char operand)
{
c=1;
if ((a-operand)>=0)
a=a-operand;
else
{
a=a-operand+256;
c=0;
};
}
void ADC_6502_simplified(unsigned char operand)
{
if ((a+operand)<256)
a=a+operand;
else a=a+operand-256;
}
void sub_BB21(void)
{
x=0;
BB23: a=Password[4];
a=a+Password[x];
if(a<10)
{
BB46: Password[4]=a;//$BB46
x++;
if (x!=8)
goto BB23;
else return;//$BB4E
}
else //$BB2E
{
Byte4BF=a;
a=Password[6];
a++;//we came here b/c c=1
if (a<10)
goto BB3D;
else
SEC_SBC_6502(10);//can we get here? I doubt...
BB3D: Password[6]=a;
a=Byte4BF;
SEC_SBC_6502(10);//$BB44, no danger of negative result
goto BB46;
}
}
+1
Вскрытие покровов
Распродажа оборудования.
Я сегодня сытно поужинал, посему считаю вопрос закрытым.
Пароли от большинства клонов - qazxsw
Поскольку файки не зашкваренные, берут и владеют ими.
+1
Питушня #28
#1: https://govnokod.ru/26692 https://govnokod.xyz/_26692
#2: https://govnokod.ru/26891 https://govnokod.xyz/_26891
#3: https://govnokod.ru/26893 https://govnokod.xyz/_26893
#4: https://govnokod.ru/26935 https://govnokod.xyz/_26935
#5: (vanished) https://govnokod.xyz/_26954
#6: (vanished) https://govnokod.xyz/_26956
#7: https://govnokod.ru/26964 https://govnokod.xyz/_26964
#8: (vanished) https://govnokod.xyz/_26966
#9: https://govnokod.ru/27017 https://govnokod.xyz/_27017
#10: https://govnokod.ru/27045 https://govnokod.xyz/_27045
#11: https://govnokod.ru/27058 https://govnokod.xyz/_27058
#12: https://govnokod.ru/27182 https://govnokod.xyz/_27182
#13: https://govnokod.ru/27260 https://govnokod.xyz/_27260
#14: https://govnokod.ru/27343 https://govnokod.xyz/_27343
#15: https://govnokod.ru/27353 https://govnokod.xyz/_27353
#16: https://govnokod.ru/27384 https://govnokod.xyz/_27384
#17: https://govnokod.ru/27482 https://govnokod.xyz/_27482
#18: https://govnokod.ru/27514 https://govnokod.xyz/_27514
#19: https://govnokod.ru/27620 https://govnokod.xyz/_27620
#20: https://govnokod.ru/27816 https://govnokod.xyz/_27816
#21: https://govnokod.ru/27956 https://govnokod.xyz/_27956
#22: https://govnokod.ru/28143 https://govnokod.xyz/_28143
#23: https://govnokod.ru/28315 https://govnokod.xyz/_28315
#24: https://govnokod.ru/28362 https://govnokod.xyz/_28362
#25: https://govnokod.ru/28463 https://govnokod.xyz/_28463
#26: https://govnokod.ru/28481 https://govnokod.xyz/_28481
#27: https://govnokod.ru/28537 https://govnokod.xyz/_28537