• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Brainfuck - inftrukcja warunkowa

Object Storage Arubacloud
0 głosów
965 wizyt
pytanie zadane 20 lutego 2018 w Inne języki przez icytower Bywalec (2,110 p.)
Witam wszystkich, bo to mój pierwszy post tutaj. Po tym jak się dowiedziałem, że istnieje coś takiego jak Brainfuck postanowiłem się nim trochę pobawić. Po napisaniu standardowego 'Hello World!' uznałem, że warto by napisać coś troszkę bardziej skomplikowanego. Jednak po dłuższych rozmyślaniach nie wymyśliłem nawet jak zrobić instrukcję warunkową. No i problemem jest też to, że od użytkownika pobierany jest znak, a nie wartość. Przeszukałem również internety i nie znalazłem żadnego pomysłu na zrobienie ifa. Czy to w ogóle jest możliwe? Czy ja po prostu jestem na tyle ograniczony, że nie widzę czegoś oczywistego?
komentarz 20 lutego 2018 przez Vorex444 Dyskutant (9,610 p.)
Na stacku zapytaj, pewnie szybciej dostaniesz odpowiedź :D
4
komentarz 20 lutego 2018 przez Eryk Andrzejewski Mędrzec (164,260 p.)

Spokojnie, jest tutaj brainfuck developer. laugh

komentarz 20 lutego 2018 przez DragonCoder Nałogowiec (36,500 p.)
Kolejny masochista... Moze sprobujesz malbolge. :P
komentarz 20 lutego 2018 przez Eryk Andrzejewski Mędrzec (164,260 p.)

Hmm, pisanie systemu w brainfucku już było... Ale w Malbolge? Challenge Accepted. laugh

komentarz 21 lutego 2018 przez DragonCoder Nałogowiec (36,500 p.)
edycja 21 lutego 2018 przez DragonCoder
Eryku czy chcialbys sie podjac? Bo z tego co wiem, to obecnie najdluzszy napisany program to wypluwanie tekstu w petli :D. Chociaz nie powiem, bo napisany w tym wirus bylby chyba nie tak latwy do odszyfrowania :D.

P.S.

Wklej link do repozytorium, chetnie zobacze wynikbos w malbolge

P.P.S.

Zapomnialem wspomniec, ze chyba musisz dodac do ulubionych technologie ezoteryczne jezyki programowania :D
1
komentarz 21 lutego 2018 przez Eryk Andrzejewski Mędrzec (164,260 p.)

Nie wiem kompletnie nic o malbolge, ale jeśli chodzi o brainfucka to można byłoby napisać jakiś nieraniący oczu prosty język kompilowany do brainfucka i w nim pisać programy. Może kiedyś spróbuję. laugh

A "OS" w malbolge to pewnie byłby prosty bootowalny emulator + hello world, niech sobie wariaci sami piszą. devil

P.S.

Dodane!

komentarz 21 lutego 2018 przez DragonCoder Nałogowiec (36,500 p.)
Mysle, ze jezeli znajdzie sie chociaz 10 osob potrafiacych spokojnie programowac w tym jezyku to bedzie super :D

Co do Brainfucka, to jest fajny pomysl :D ale to by ulatwilo pisanie innym :D

P.S.

Mysle, ze ludzie glupieja

https://pl.m.wikipedia.org/wiki/Shakespeare_(język_programowania)
komentarz 21 lutego 2018 przez jpacanowski VIP (101,940 p.)

Nie szkoda wam czasu i życia na liczenie plusów i minusów? :D

Polecam asembler ;D

Chcecie odpowiednik IFa? Proszę...

https://pl.wikibooks.org/wiki/Asembler_x86/Instrukcje/Arytmetyczne#cmp

i życie staje się prostsze... ;D

1
komentarz 21 lutego 2018 przez DragonCoder Nałogowiec (36,500 p.)
@jpacanowski, ktos koedys powiedzial, ze nic nie jest strata czasu gdy poszerza nasze horyzonty. A jezyki ezoteryczne to ciekawe wyzwanie dla kazdego programisty :) (nie zeby assembler nie byl :D)
komentarz 22 lutego 2018 przez Treners Początkujący (310 p.)
Totalnie offtop, nieezoteryczny jest scheme. Taki "lisp dla początkującego".

1 odpowiedź

+9 głosów
odpowiedź 20 lutego 2018 przez Eryk Andrzejewski Mędrzec (164,260 p.)
wybrane 20 lutego 2018 przez icytower
 
Najlepsza

No i problemem jest też to, że od użytkownika pobierany jest znak, a nie wartość

W czym konkretnie problem? Jeżeli np. chcesz aby użytkownik podał 0 lub 1 (co w kodowaniu ASCII będzie miało odpowiednio wartości 48 i 49), to wystarczy odjąć 48 od zawartości komórki, do której najpierw pobierzesz tę wartość. Czyli przykładowo mamy taki kod:

,------------------------------------------------

I zakładając, że użytkownik podał cyfrę (uwierz mi, nie chciałoby Ci się sprawdzać w kodzie, czy rzeczywiście to jest cyfra laugh), to teraz w komórce będziesz miał dokładnie tę cyfrę.

A co do samej instrukcji warunkowej - ja ogólnie nigdy specjalnie kodu w brainfucku nie pisałem, ale teraz tak na szybko przychodzi mi do głowy takie rozwiązanie: pętla wykonująca się zero razy lub jeden raz. Czyli powiedzmy, że spodziewasz się od użytkownika podania wartości '0' lub '1'. Spodziewana wartość komórki to będzie więc 48 lub 49. Odejmujesz 48 i masz 0 lub 1. Teraz tworzysz ową pętlę, która wykona się 0 razy lub jeden raz. Oto kod:

,------------------------------------------------
[>++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.<-]

Przepraszam za tę długą serię plusów i minusów, ale szczerze mówiąc nie chciałem już się bawić w skracanie tego (i zaburzyłoby to też czytelność i prostotę przykładu).

A ten kod to nawet działa.

Test działania powyższego przykładu

komentarz 23 lutego 2018 przez DragonCoder Nałogowiec (36,500 p.)
Bo jak pomysle ile elementow itd + grafiki (urtadne z internetu)... Ale nie ma o czym gadac, dopoki nie skonczycie OS
komentarz 23 lutego 2018 przez jpacanowski VIP (101,940 p.)
Tylko, że my nie piszemy OSa. Eryk woli pisać w Brainfucku, a ja w ASM/C i dlatego każdy pisze swój :D
1
komentarz 24 lutego 2018 przez Eryk Andrzejewski Mędrzec (164,260 p.)

Może zrobię ten kursik i do tego konkurs na zrobienie czegoś w brainfucku? smiley

komentarz 24 lutego 2018 przez DragonCoder Nałogowiec (36,500 p.)
Tylko czy bedzie az tylu smialkow? :D
komentarz 24 lutego 2018 przez Eryk Andrzejewski Mędrzec (164,260 p.)
A ile będzie tyle będzie. Może jakieś nagrody się zorganizuje, to się parę osóbek znajdzie.

Podobne pytania

0 głosów
2 odpowiedzi 320 wizyt
pytanie zadane 14 marca 2023 w C i C++ przez Jerzy Użytkownik (930 p.)
0 głosów
1 odpowiedź 401 wizyt
pytanie zadane 20 października 2017 w Inne języki przez DragonCoder Nałogowiec (36,500 p.)
–2 głosów
1 odpowiedź 456 wizyt

92,538 zapytań

141,377 odpowiedzi

319,456 komentarzy

61,923 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...