Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 04.04.2007, 00:35 Titel: Die umständlichsten Sourecodes |
|
|
Hier mal wieder eine Spiel: Postet denkbar umständliche Sourcecodes Mir ist dieser hier eingefallen. Er zählt bis 100 und ist sogar rekursiv
Code: |
function zaehlhoch(zahl as integer)
zahl = zahl + 1
if zahl < 100 then zahl = zaehlhoch(zahl)
return zahl
end function
print zaehlhoch(0)
sleep
|
_________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.

Zuletzt bearbeitet von Jojo am 04.04.2007, 13:27, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 04.04.2007, 00:44 Titel: |
|
|
kompliziert und völlig nutzlos... find ich lustig
Code: |
Function Zufallszahl(max as integer) as integer
Dim as double timex=timer
Dim as integer zufall
do
zufall=zufall+1
if zufall=max then zufall=0
loop while timer-timex<1
Return zufall
End Function
?Zufallszahl(100)
sleep
|
_________________
 |
|
Nach oben |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
Verfasst am: 04.04.2007, 07:16 Titel: |
|
|
Man soll ja Code möglichst Strukturiert schreiben ->
Code: | 'Einen Wert Erhöhen
Private Function Plus(V_Value as Long, V_Add as Long) as Long
Plus1 = V_Value + V_Add
End Function |
Code: | 'Einen Wert Abziehen
Private Function Minus(V_Value as Long, V_Sub as Long) as Long
Plus1 = V_Value - V_Sub
End Function |
Code: | 'Einen Wert hoch zählen
Private Function Zählen(V_Start as Long, V_Stop as Long, V_Add as Long)
'Variable Inizialisieren
Dim X as Long
Dim V as Long
'Variablen vordefinieren
X = 0
V = 0
'GotoPosition Festlegen
:ZählerStartInit
'Variable um einen Wert hinaus zählen
V = Plus(V, V_Add)
'Prüfen, ob Startwert erreicht wurde
If V >= V_Start then Goto ZählenInit
'Zurück zum Startwertzählen
Goto ZählerStartInit
'GotoPosition Festlegen
:ZählerSetupPos
'Prüfen, ob Startwert erreicht wurde
If V = V_Start then ZählerInit
'Variable um einen Wert zurück zählen
V = Minus(V, 1)
'Zurück zum Setupen
Goto ZählerSetupPos
'GotoPosition Festlegen
:ZählerInit
'Variable um einen Wert hinaus zählen
V = Plus1(V, Add)
'Prüfen, ob Stopwert erreicht wurde
If V = V_Start then ZählerStop
'Zurück zum Hochzählen
Goto ZählertInit
'GotoPosition Festlegen
:ZählerSetupPosE
'Prüfen, ob Startwert erreicht wurde
If V = V_Stop then ZählerStop
'Variable um einen Wert zurück zählen
V = Minus(V, 1)
'Zurück zum Setupen
Goto ZählerSetupPosE
'GotoPosition Festlegen
:ZählerStop
Exit Function
|
 _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 04.04.2007, 09:37 Titel: |
|
|
In Anlehnung an TPM und im Sinne der Wiederverwertbarkeit von Funktionen:
Code: | 'Einen Wert multiplizieren
function mal(V_Value as double, V_Mal as integer)
dim as integer zaehler = 0
dim as double mal1= 0
do while abs(zaehler) < abs(V_Mal)
if V_Mal > 0 then
mal1 = Plus(mal1, V_Value)
zaehler = Plus(zaehler, 1)
else
mal1 = Minus(mal1, V_Value)
zaehler = Minus(zaehler, 1)
end if
loop
mal = V_Value + V_Add
End Function |
_________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 04.04.2007, 13:18 Titel: |
|
|
Code: | 'Einen Wert erhöhen
Function plus(Byval V_Value As Integer, Byval V_Add As Integer) As Integer
Asm mov eax,[V_Value]
Asm mov ecx,[V_Add]
loop1:
Asm inc eax
Asm Loop loop1
Asm mov [Function],eax
End Function |
Code: | 'Einen Wert abziehen
Function minus(Byval V_Value As Integer, Byval V_Sub As Integer) As Integer
Minus = plus( V_Value + 1, Not V_Sub)
End Function |  _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 04.04.2007, 14:48 Titel: |
|
|
Code: |
Function mal (op1 As Integer, op2 As Integer) As Integer
Dim i As Integer, erg As Integer
If op1 > op2 Then 'damit bei 1*100 und 100*1 auch immer 100 durchläufe gemacht werden xD
For i = 1 to op1
erg += op2
Next i
Else
For i = 1 to op2
erg += op1
Next i
End If
Return erg1
End Function
|
_________________
Code: | #include "signatur.bi" |
|
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 04.04.2007, 15:24 Titel: |
|
|
Ich hätte nicht gedacht, daß ich diesen Code mal unterbringen würde Code: | Function Plus1(byVal Summand As Long) As Long
Dim Alpha As Double
Alpha=Rnd*Atn(1)
Return Summand+Sin(Alpha)^2+Cos(Alpha)^2 'Pythagoras läßt grüßen :D
End Function
?Plus1(41)
Sleep | Die Funktion macht, was ihr Name sagt, aber sowas von umständlich..
..und doppelt genau und mit Winkelfunktionen und mit '^' (der braucht richtig lange ) _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 04.04.2007, 18:22 Titel: |
|
|
Code: | declare sub inc(byref z as double, byref r as byte = 0)
dim as double i
randomize timer
cls
i=1
inc i
print i
sleep: end
sub inc(byref z as double, byref r as byte = 0)
static rx as double
if r = 0 then rx = rnd(1000)+1
if r = 0 then
z *= cos(rx)
elseif r = 1 then
z *= tan(rx)
elseif r = 2 then
z /= sin(rx): z += (r-1)
r=0: exit sub
end if
r += 1: inc z,r
end sub |
 _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
 |
raph ael
Anmeldungsdatum: 12.04.2006 Beiträge: 472
|
Verfasst am: 04.04.2007, 20:58 Titel: |
|
|
Mal eine andere Möglichkeit, einer Variable den Wert einer anderen zu geben:
[Seine-eigene-Signatur-nicht-beachte-Modus]
Code: |
DIM muh AS INTEGER
DIM blah AS INTEGER
muh = 51
blah = 8123
FOR i% = 1 TO -1 STEP 1
afafafafafafa:
PRINT STR$(muh)
GOTO afafafa
NEXT i%
afafa:
GOTO afa
afa:
GOTO ansjkfkja
afafafa:
GOTO ofen
ansjkfkja:
GOTO Hfaaefai
ofen:
GOTO heisseErbsen
faeak:
muh = blah
GOTO afafafafafafa
heisseErbsen:
GOTO faeak
Hfaaefai:
GOTO afafafa
|
[/Seine-eigene-Signatur-nicht-beachte-Modus] _________________
Zitat: | 1000 Yottabytes sind absurd. 640 Yottabytes sollten genug für jeden sein. |
|
|
Nach oben |
|
 |
Elvis

Anmeldungsdatum: 01.06.2006 Beiträge: 818 Wohnort: Deutschland, BW
|
Verfasst am: 05.04.2007, 13:19 Titel: |
|
|
Bei dem Thema fällt mir ein, dass ich mal die Idee hatte, einen Code-Zerstörer
zu programmieren.
Er ersetzt bspw. alle normalen Variablennamen durch kryptische Zeichenfolgen
und in jeder Zeile kommt ein GOTO vor.
Grüße, Elvis _________________ Geforce 7300GT (256MB GDDR3, Gainward) -- 2x 512MB (DDR2 800, MDT) -- AMD Athlon64 X2 EE 3800+ -- Asrock ALiveNF5-eSATA2+ |
|
Nach oben |
|
 |
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 05.04.2007, 14:31 Titel: |
|
|
Code: | Declare Sub Print_it(text As String)
Sub Print_it(text As String)
Print Chr(Asc(Chr(Asc(Chr(Asc(Chr(Asc(Chr(Asc(Chr(Asc(Chr(Asc(Chr(text[0] xor 255))xor 255))xor 255))xor 255))xor 255))xor 255))xor 255))xor 255);
If Len(text)>1 Then
Print_it(Mid(text, 2))
Else
Print ""
End If
End Sub
Print_it("test") |
_________________
Code: | #include "signatur.bi" |
|
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 05.04.2007, 18:36 Titel: |
|
|
Elvis hat Folgendes geschrieben: | Bei dem Thema fällt mir ein, dass ich mal die Idee hatte, einen Code-Zerstörer
zu programmieren.
Er ersetzt bspw. alle normalen Variablennamen durch kryptische Zeichenfolgen
und in jeder Zeile kommt ein GOTO vor.  |
Der Artige Software wird allen Ernstes als Mittel gegen Reverse Engeneering eingesetzt.
Vorallem bei DLLs bringt es was. _________________ http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 05.04.2007, 23:31 Titel: |
|
|
also variablennamen austauschen geht ja recht einfach... aber WTF wieso brauchst gerade du so ein prog?  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 06.04.2007, 00:19 Titel: |
|
|
'Manglen', damit niemand so einfach die Tricks abschauen kann..
Ich habe mal ein gemangletes pascal-Programm gehabt, das war nach meiner 'Behandlung' sogar wieder richtig lesbar..
Lohnt sich aber auch nur bei kleinen Sachen und wenn man sorgfältig arbeitet.. _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
|