- 1
У меня из-за этого бессоница:
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
Всего: 9
−1
У меня из-за этого бессоница:
Стою я как-то на светофоре, жду когда загорится зелёный, и тут подходит ко мне девушка с сумкой и просит проводить её до какой-то там улицы. Я чуть не обосрался: со мной редко кто разговаривает, тем более девушки. Но я набрался смелости и сказал что не знаю где это, а она сказала что покажет. Я нихуя не понял, зачем тогда её провожать. "Ну ладно", сказал я. Мы дождались зелёного, она немного постояла зачем-то, потупила, потом взяла сумку и мы пошли, перешли дорогу, прошли буквально несколько метров, как она говорит: "ну ладно, дальше я сама дойду, а там меня встретят". Я опять ничего не понял, но сказал: "ну ладно". Какое-то время мы ещё шли рядом, нам было по-пути, потом она куда-то свернула.
Джва месяца я онализировал это проишествие и пришёл к выводу: ей походу надо было помочь сумку понести?
−3
format PE GUI at 0x10000
include 'win32a.inc'
invoke MessageBoxA, 0, message, caption, MB_ICONQUESTION + MB_OK
invoke ExitProcess, 0
message db "Just test.", 0
caption db "Test.", 0
data import
library kernel32, 'KERNEL32.DLL', user32, 'USER32.DLL'
import kernel32, ExitProcess, 'ExitProcess'
import user32, MessageBoxA, 'MessageBoxA'
end data
Не пойму, чочему уменьшив базу на 1 программа перестаёт роботать, но собирается нормально. 0x10000 -- это самое маленькое значение с которым она роботать. С 0x0 какая-то ашипка на счет длл лезит.
И ксатати, лоли дебагер почему-то не могет зогружать такие програмым.
+1
#include <stdio.h>
int main()
{
for (int x; scanf("%d", &x);) {
#define x x += x
x & (x-1);
printf("%d\n", x);
}
return 0;
}
https://ideone.com/SxgTL0
-3 -28
-2 -20
-1 -12
0 -4
1 4
2 12
3 20
Ничо нипанятна...
−1
from itertools import *
lines = tuple ( chain ( ( tuple ( product ( *g ( range ( 3 ) , ( i , ) ) ) ) for g in ( lambda i , j : ( i , j ) , lambda i , j : ( j , i ) ) for i in range ( 3 ) ) , ( ( ( 0 , 0 ) , ( 1 , 1 ) , ( 2 , 2 ) ) , ( ( 2 , 0 ) , ( 1 , 1 ) , ( 0 , 2 ) ) ) ) )
def aimove ( table , i , j ) :
from random import choice
possiblewin = ( lambda x : ( lambda f : ( lambda x : len ( x ) and x [ 0 ] ) ( tuple ( filter ( lambda x : x , map ( f , lines ) ) ) ) ) ( lambda k : 2 == sum ( table.get ( i ) == x for i in k ) and ( lambda e : len ( e ) == 1 and e [ 0 ] ) ( tuple ( i for i in k if not table.get ( i ) ) ) ) )
return ( ( 1 , 1 ) if ( 1 , 1 ) not in table.keys() else possiblewin ( -1 ) or possiblewin ( 1 ) or ( lambda : ( lambda x : x if table.get ( x ) == None else ( lambda x : len ( x ) and x [ 0 ] ) ( tuple ( filter ( lambda x : not table.get ( x ) , permutations ( ( 0 , 2 ) ) ) ) ) ) ( ( 2 * ( i == 0 ) , 2 * ( j == 0 ) ) ) ) () or ( lambda : choice ( tuple ( filter ( lambda x : x not in table.keys() , product ( *tee ( range ( 3 ) ) ) ) ) ) ) () )
iseog = lambda table : ( lambda x : len ( x ) and x [ 0 ] ) ( tuple ( filter ( lambda x : abs ( x ) == 3 , ( sum ( table [ ij ] for ij in keys if table.get ( ij ) ) for keys in lines ) ) ) ) or len ( table ) >= 9
table = {}
eog = 0
while not eog :
i , j = map ( int , input ( "введите координаты: " ) .split() )
if ( i , j ) in table.keys() :
print ( "эта клетка занята" )
continue
if i not in range ( 3 ) or j not in range ( 3 ) :
print ( "неправильные координаты" )
continue
table [ i , j ] = 1
eog = iseog ( table )
if not eog :
table [ aimove ( table , i , j ) ] = -1
eog = iseog ( table )
for ij in product ( *tee ( range ( 3 ) ) ) :
print ( ( " " , "x" , "o" ) [ table.get ( ij ) or 0 ] , end = ( " | " , " | " , "\n" ) [ ij [ 1 ] ] )
if ij [ 0 ] < 2 and ij [ 1 ] == 2 :
print ( "--+---+--" )
print ( ( "ничья. тебе везёт ( пока что )" , "ты победил. ах ты жульник!" , "ты продул, а я победил. бе-бе-бе!" ) [ eog // 3 ] )
Лямбда. Лямбда. Хуямбда.
−10
Вопрос
Кто знает, как динамически выделить память, заполнить её нужными инструкциями, и исполнить этот код, не испытав при этом анальной боли и не получить Segmentation Fault ?
0
// ...
int datastack [ 4096 ] ;
int *dp = datastack ;
int push ( int x ) {
return *dp++ = x ;
}
int pop() {
return *--dp ;
}
// ...
void execute() {
((void(*)())pop())() ;
}
// ...
Мама! Мама! Я покакал!
0
char *r_or_mem() {
if ( get_mod() == 3 )
return regs [ ( size << 3 ) | ( look & 7 ) ] ;
else {
static char buf [ 32 ] ;
char *s = buf ;
*s++ = '[' ;
if ( ! ( look & 4 ) ) {
*s++ = 'B' ;
*s++ = ( look & 2 ) ? 'P' : 'X' ;
*s++ = '+' ;
*s++ = ( look & 1 ) ? 'D' : 'S' ;
*s++ = 'I' ;
if ( mod ) *s++ = '+' ;
} else {
if ( ( look & 7 ) == 6 && ! mod ) mod = 2 ;
else {
if ( look & 2 ) {
*s++ = 'B' ;
*s++ = ( look & 1 ) ? 'X' : 'P' ;
} else {
*s++ = ( look & 1 ) ? 'D' : 'S' ;
*s++ = 'I' ;
}
if ( mod ) *s++ = '+' ;
}
}
if ( mod ) {
read_value ( s , mod == 2 ) ;
s = s + strlen ( s ) ;
}
*s++ = ']' ;
*s = 0 ;
return buf ;
}
}
void checkorder() {
if ( ! dest ) {
char *tmp = op1 ;
op1 = op2 ;
op2 = tmp ;
}
}
void rm ( char *s ) {
sprintf ( decoded , "%s\t" , s ) ;
decoded += strlen ( decoded ) ;
get_ds() ;
read() ;
op1 = get_reg() ;
op2 = r_or_mem() ;
checkorder() ;
sprintf ( decoded , "%s , %s" , op1 , op2 ) ;
}
Чассть моего дизассемблера для 16-анального x86, что читает операндыы.
+5
#include <stdio.h>
struct struct2 {
struct struct1 a ;
} ;
struct struct1 {
struct struct2 a ;
int b ;
} ;
int main(){
struct struct1 a ;
scanf ( "%d" , &a.a.a.b ) ;
printf ( "%d" , a.b ) ;
return 0;
}
Все, кроме TCC для C4droid, отказались это компилировать, не пробовал только Visual Studio
0
def calc ( x ) :
if type ( x ) is not list :
return x
if len ( x ) == 0 :
return x
while type ( x [ 0 ] ) is list :
x = x [ 0 ] + x [ 1: ]
c = x [ 0 ]
print ( x )
if c == 'I' :
if len ( x ) <= 1 :
return x
return calc ( x [ 1: ] )
elif c == 'K' :
if len ( x ) <= 2 :
return x
return calc ( [ x[1] ] + x [ 3: ] )
elif c == 'W' :
if len ( x ) <= 2 :
return x
return calc ( x[1:3] + x[ 2: ] )
elif c == 'S' :
if len ( x ) <= 3 :
return x
return calc ( [ x[1] , x [3] , [ x[2] , x[3] ] ] + x [ 4: ] )
elif c == 'B' :
if len ( x ) <= 3 :
return x
return calc ( [ x[1] , [ x[2] , x[3] ] ] + x[4:] )
elif c == 'C' :
if len ( x ) <= 3 :
return x
return calc ( [ x[1] , x[3] , x[2] ] + x[ 4 : ] )
return [ c ] + calc ( x [ 1: ] )
def parse ( s , n = 0 ) :
res = []
i = n
while i < len ( s ) :
if s [ i ] == '(' :
t = parse ( s , i + 1 )
res.append ( t [ 0 ] )
i = t [ 1 ] - 1
elif s [ i ] == ')' :
return ( res , i + 1 )
else :
res.append ( s [ i ] )
i += 1
return ( res , i )
print ( '>> ' , end = '' )
while True :
for i in calc ( parse ( input() ) [ 0 ] ) :
print ( i , end = '' )
print ( '\n>> ' , end = '' )
Вычисляэ комбинаторныэ термы, и выдаё промежности, типа:
>> S(SKK)(SKK)x
['S', ['S', 'K', 'K'], ['S', 'K', 'K'], 'x']
['S', 'K', 'K', 'x', [['S', 'K', 'K'], 'x']]
['K', 'x', ['K', 'x'], [['S', 'K', 'K'], 'x']]
['x', [['S', 'K', 'K'], 'x']]
['S', 'K', 'K', 'x']
['K', 'x', ['K', 'x']]
['x']
xx