Alice i Bob walczą


24
  • Alice (A) i Bob (B) zdecydowali się na bitwę.
  • Każdy walczący ma 10 punktów zdrowia.
  • Na zmianę rzucają 6-stronną kostką pod kątem obrażeń.
  • Obrażenia są usuwane ze zdrowia przeciwnika.
  • W końcu albo Alice, albo Bob, pokonają swojego wroga.

Pokaż mi, jak przebiegła bitwa. Wyprowadzanie tych kodów dla działań, które miały miejsce.

Atak

B a A    
^ Combatant
  ^ Action (attack)
    ^ Target

Rolka

B r 4
^ Combatant
  ^ Action (roll)
    ^ Value

Zmiana zdrowia

A h 6
^ Combatant
  ^ Attribute (health)
    ^ Value   

Zdobyć

A w 
^ Combatant
  ^ Action (win)

Przykładowe dane wyjściowe:

A a B
A r 4
B h 6
B a A
B r 6
A h 4
A a B
A r 6
B h 0        
A w

Oto zasady:

  • Pisz w dowolnym języku.
  • Pojedynczy rzut kości powinien mieć jednakową szansę na uzyskanie dowolnej liczby 1, 2, 3, 4, 5 lub 6.
  • Alice zawsze zaczyna się (Bob jest rycerski, w staromodny sposób).
  • Wydaj akcję dla każdej tury.
  • Musisz zgłosić atak, rzut, obrażenia i wygrać akcje.
  • Walczący są wielkimi literami, akcje małymi literami.
  • Nie może konsekwentnie dawać tego samego rezultatu.
  • Pomiędzy wyjściowym walczącym, akcją i wartością musi być przynajmniej jedna biała postać.
  • Wygrana ma miejsce, gdy przeciwnik ma zero lub mniej zdrowia.
  • Wszystkie części akcji muszą znajdować się w tej samej linii.
  • Powinna być jedna akcja na linię.
  • Wygrywa najmniej bajtów.

Mają na to!


9
Imiona Alice (A) i Bob (B) dają mi retrospekcje do klasy bezpieczeństwa sieci. Aktor Alice (A) wysyła pakiet do Boba (B) z kluczem ... itd ...
Magic Octopus Urn

21
@MagicOctopusUrn to oni. Zwykle próbują się komunikować. Niestety często dochodzi do konfliktu, gdy zrywa się komunikacja.
AJFaraday

7
Tęsknię za czasami, kiedy próbowaliśmy wymyślić, jak ukryć nasze tajemnice przed Mallory ... to były prostsze czasy ...
Bob

4
@Bob Mallory to naprawdę coś rozpraszającego, naprawdę. Na Eve musisz uważać.
AJFaraday

3
@ msh210 cóż, ważnym szczegółem w kodzie golfowym jest to, że każdy podejmuje to samo wyzwanie, ale oto logika: - jeśli grałeś w Dungeons and Dragons, powiedziałbyś „Wykopię goblina”, a potem: d rzuć dla skuteczności, a następnie zastosuj wynik rzutu. Rzut jest bez znaczenia, jeśli nikt nie wie, po co się rzuca.
AJFaraday

Odpowiedzi:


5

05AB1E , 49 bajtów

"BaABr0Aha"S3ô»D„AB‡[6LΩ©Tǝ¤H®-©16ǝ=®0‹#s]н…ÿ w?

Wypróbuj online!

Wyjaśnienie

"BaABr0Aha"                                        # push the initial state of B
           S                                       # split to list of characters
            3ô                                     # divide into 3 parts
              »                                    # join each part on space and all on nl
               D„AB‡                              # make a copy with A and B inverted
                     [                             # start a loop
                      6LΩ©                         # pick a random number in [1 ... 6]
                          Tǝ                       # insert at position 10 of the string
                            ¤H                     # get the last char of the string and
                                                   # convert from hex
                              ®-©                  # subtract the random number
                                 16ǝ=              # insert at position 16 and print
                                     ®0‹#          # if the hp is less than 0, break
                                         s         # swap the other string to the stack top
                                          ]        # end loop
                                           н…ÿ w?  # print the winner

13

Python 3 , 131 bajtów

x,y="AB"
from random import*
X=Y=10
p=print
while X>0:p(x,"a",y);d=randint(1,6);p(x,"r",d);Y-=d;p(y,"h",Y);x,y,X,Y=y,x,Y,X
p(y,"w")

Wypróbuj online!

-8 bajtów dzięki
Officialaimm -2 bajtów dzięki ChooJeremy


5
wstępne zdefiniowanie p=printzaoszczędzi około 8 bajtów.
officialaimm

Ponieważ y zawsze wygrywa w tym momencie (i tylko X ataków w pętli, które później zamieniane są na Y), nie musisz sprawdzać, czy y przegrał. - ChooJeremy - Z recenzji
NoOneIsHere

@NoOneIsTeraz dziękuję za przekazanie mi wiadomości: D
HyperNeutrino

randint(1,6)można zastąpić id(X+Y)//3%6+1, chociaż rozkład nie jest całkiem jednolity.
Vincent

@Vincent Nie widzę sensu w naginaniu reguł, jeśli to nawet nie pomaga w skróceniu ...
HyperNeutrino

7

C (gcc) , 146 141 bajtów

f(A,B,r,t,a,b){for(A=B=10;r=1+clock()%6,A*B>0;t=!t)printf("%c a %c\n%c r %u\n%c h %i\n",a=65+t,b=66-t,a,r,b,t?A-=r:(B-=r));printf("%c w",a);}

Wypróbuj online!

De-golf:

f(A,B,r,t,a,b){
    for(A=B=10; //Initialize HP
        r=1+clock()%6, // Get the number of processor cycles the program has consumed. This is relatively random, so I call it good enough.
        A*B>0;t=!t) // Flip t for change of turns
        printf("%c a %c\n%c r %u\n%c h %i\n", // Print the turn
            a=65+t,b=65+!t,a,r,b, // 65 is ASCII for 'A', 66 for 'B'
            t?A-=r:(B-=r)); // Deduct the damage.
    printf("%c w",a); // Print the winner
}

2
Czy możesz zapisać bajt za pomocą a=65+t,b=66-t?
moopet

A*B>0zaoszczędzi ci kilka bajtów.
Olivier Grégoire

A*Bzaoszczędzi jeszcze więcej, ale trochę mi się spieszy. Będę aktualizować wieczorem

Znaleziono błąd w sekwencji kości {6,4,3,1,5}. b wygrywa ze zdrowiem -4. Zobacz TIO Zmieniłem kalkulator kości, aby pokazać ten błąd.
GPS

@GPS Dzięki, załatwię to teraz.

7

Python 3 , 127 bajtów

Jest to poprawka w odpowiedzi @HyperNeutrino , która nie mieści się w komentarzu. Zobacz wyjaśnienie poniżej.

x,y="AB"
s=id(0)
X=Y=10
p=print
while X>0:p(x,"a",y);s=s**7%~-2**67;d=s%6+1;p(x,"r",d);Y-=d;p(y,"h",Y);x,y,X,Y=y,x,Y,X
p(y,"w")

Wypróbuj online!


Epicka wyprawa o krótszy rzut kostką pytona

TL; DR: Możliwe jest ogolenie 4 bajtów ze standardowego rzutu kostką pytona za pomocą szyfrowania RSA.

Chciałem zobaczyć, czy standardowy rzut kostką pytona ( 32 bajty ) może zostać nieco skrócony:

from random import*;randint(1,6)

W szczególności id(x)dość wygodne jest wprowadzenie do programu pewnej niedeterministycznej wartości. Moim pomysłem było więc jakoś przesłać tę wartość, aby stworzyć rzeczywistą przypadkowość. Próbowałem kilku podejść, a jedno z nich się opłaciło: szyfrowanie RSA .

Szyfrowanie RSA, ze względu na swoją prostotę, wymaga jedynie kilka bajtów: m**e%n. Następną losową wartość można następnie utworzyć, szyfrując poprzednią. Zakładając, że (e,n)klucz jest dostępny, rzut kostką można zapisać za pomocą 22 bajtów :

s=id(0);s=s**e%n;s%6+1

Oznacza to, że mamy około 10 bajtów do zdefiniowania prawidłowego klucza RSA. Mam szczęście. Podczas moich eksperymentów zacząłem używać Mersenne Prime M67, aby później uświadomić sobie, że Mersenne popełnił błąd, włączając M67 na swojej liście. Okazuje się, że jest produktem p=193707721i q=761838257287. Znalazłem moduł:

n=~-2**67

Teraz wykładnik i totem Charmichaela (p-1)*(q-1) muszą być chronione prawem autorskim . Na szczęście pierwsza liczba pierwsza, która nie dzieli sumy n, ma tylko jedną cyfrę: 7. Rzut kostką można następnie zapisać przy użyciu 28 bajtów (4 bajty mniej niż standardowe podejście):

s=id(0);s=s**7%~-2**67;s%6+1

Jedną dobrą rzeczą w przypadku M67 jest to, że generowana losowa wartość ma 66 bitów, czyli więcej niż zwykle 64-bitowe RNG. Ponadto użycie RSA umożliwia cofnięcie się w czasie poprzez kilkakrotne odszyfrowanie bieżącej wartości. Oto klucze szyfrujące i odszyfrowujące:

Encryption: (7,                    147573952589676412927)
Decryption: (42163986236469842263, 147573952589676412927)

Zdecydowanie nie jestem ekspertem w dziedzinie statystyki ani kryptografii, więc nie jestem w stanie stwierdzić, czy ten RNG sprawdza kryteria „dobrej losowości”. Napisałem mały test porównawczy, który porównuje standardowe odchylenie występów od 1 do 6 rzutów kości przy użyciu różnych RNG. Wygląda na to, że proponowane rozwiązanie działa tak samo jak inne.


3
Imponująca praca! :)
HyperNeutrino

4

JavaScript (ES6), 122 bajty

f=(h=[10,10,p=0])=>`${x='AB'[p]} a ${y='BA'[p]}
${x} r ${d=Math.random()*6+1|0}
${y} h ${H=h[p^=1]-=d}
${H<1?x+' w':f(h)}`

Wypróbuj online!


4

Java (JDK 10) , 180 bajtów

v->{var r="";int p=0,H[]={10,10},h=0;for(;H[0]*H[1]>0;)r+=r.format("%3$c a %4$c%n%3$c r %d%n%4$c h %d%n",h+=Math.random()*6-h+1,H[p]-=h,p+65,(p^=1)+65);return r+(char)(66-p)+" w";}

Wypróbuj online!

Kredyty


1
Java 10 ma var? o.Ô Naprawdę muszę wkrótce sprawdzić niektóre z nowych specyfikacji. W każdym razie możesz zagrać w 4 bajty, zmieniając tablicę v->{var r="";int P[]={65,66},p=0,H[]={10,10},h=0;for(;H[0]*H[1]>0;)r+=r.format("%3$c a %4$c%n%3$c r %d%n%4$c h %d%n",h+=Math.random()*6-h+1,H[p]-=h,P[p],P[p^=1]);return r+=P[p^1]+" w";}
znaków na

1
@KevinCruijssen Tak, Java 10 ma var. Nie musisz dalej czytać, to w zasadzie jedyna zmiana, która jest użyteczna dla nas, golfistów. I nie, nie mogę zrobić tego, co sugerujesz: sprawdź ostatnią linię wyniku: staje się 65 wzamiast A w. Właśnie dlatego wyodrębniłem go ze int ...stwierdzenia: golf kilka bajtów ;-)
Olivier Grégoire

1
@KevinCruijssen Podałem tutaj kilka przykładów: codegolf.stackexchange.com/a/159922/16236
Olivier Grégoire



3

Rubin , 122 120 96 92 91 bajtów

f=->x=?A,y=?B,m=10,n=m{p [x,?a,y],[x,?r,r=1+rand(6)],[y,?h,t=n-r]
t<1?p([x,?w]):f[y,x,t,m]}

Zaoszczędzono 1 bajt dzięki Asone Tuhid .

Wypróbuj online!


1
To tak, jakbym nawet nie wiedział już, jak Ruby;)
AJFaraday

Obawiam się, że twoja alternatywa nie działa: „Wszystkie części akcji muszą być na tej samej linii”. Chociaż czy można dokonać tej samej optymalizacji przy użyciu znaku tabulacji?
AJFaraday

@AJFaraday Czy dopuszczalne byłoby wyświetlanie wierszy w formacie ["A", "a", "B"]? Jeśli tak, mam to 96-bajtowe rozwiązanie.
Cristian Lupascu

Jeśli są wyprowadzane po jednym w wierszu. To powinno wystarczyć.
AJFaraday

-1 bajt, jeśli zastąpi ?(p [x,?w]):się?p([x,?w]):
asone Tuhid

3

Java 8, 230 bajtów

v->{for(int h=104,a=h,x=0,y=1,A=10,B=A,r=0,t=0,T;a<119;)System.out.printf("%c %3$c %c%n",(x=a>h|A*B<1?x^1:x)+65,y=(a<98?t=r+=Math.random()*6-r+1:a>h?(T=x<1?A-=t:(B-=t))<0?0:T:A*B<1?-16:(x^1)+17)+48,a=a<98?114:a>h?104:A*B<1?119:97);}

Uwaga: odpowiedź Java jest już znacznie krótsza, więc pamiętaj o jej głosowaniu ! Stosuję jednak zupełnie inne podejście, więc doszedłem do wniosku, że warto było to również opublikować.

Wyjaśnienie:

Wypróbuj online.

v->{                     // Method with empty unused parameter and no return-type
  for(int h=104,         //  Temp integer with unicode for 'h' to save bytes
          a=h,           //  Second part (Action)
          x=0,           //  First part
          y=1,           //  Third part
          A=10,          //  Score player A, starting at 10
          B=A,           //  Score player B, starting at 10
          r=0,           //  Random dice-roll
          t=0,           //  Previous dice-roll
          T;             //  Temp integer
      a<119;)            //  Loop until there is a winner
     System.out.printf(  //   Print
      "%c %3$c %c,%n",   //    The three parts with spaces, and a new-line
      (x=                //    First part:
         a>h             //     If the previous action is 'r',
         |A*B<1?         //     or there is a winner:
           x^1           //      Change A→B or B→A
         :               //     Else:
          x)             //      A/B remains unchanged
       +65,              //     Add 65 to convert 0/1 to 65/66 (unicode values of A/B)
      (y=                //    Third part:
         (a<98?          //     If the previous action was 'a'
           t=r+=Math.random()*6-r+1
                         //      Roll the dice, and save it in `t`
          :a>h?          //     Else-if the previous action was 'r':
           (T=x<1?       //      If the first part changed to player A:
            A-=t         //       Subtract the previous dice-roll from A
           :             //      Else:
            (B-=t))      //       Subtract the previous dice-roll from B
           <0?           //      If this score is below 0:
            0            //       Use 0
           :             //      Else:
            T            //       Use this score
         :               //     Else (the previous action was 'h'):
          A*B<1?         //      Is there a winner:
           -16           //       Change the third part to a space
          :              //      Else:
           (x^1)+17)     //       Change the third part to the other player
       +48,              //     Add 48 to convert it to unicode
       a=                //    Second part:
         a<98?           //     If the previous action was 'a': 
          114            //      Change it to 'r'
         :a>h?           //     Else-if the previous action was 'r':
          h              //      Change it to 'h'
         :               //     Else (the previous action was 'h'):
          A*B<1?         //      If either score is 0:
           119           //       Use 'w'
          :              //      Else:
           97);}         //       Use 'a'


2

Partia, 174 bajty

@set/aA=B=10
@set c=A
@set d=B
:g
@set/ar=%random%%%6+1,h=%d%-=r
@echo %c% a %d%
@echo %c% r %r%
@echo %d% h %h%
@if %h% gtr 0 set c=%d%&set d=%c%&goto g
@echo %c% w

Objaśnienie: %Odwołania do zmiennych są zastępowane w czasie analizy. Ma to dwie przydatne zalety:

  • %d%-=rodejmuje rod zmiennej o nazwie d(tj. odwołanie pośrednie)
  • set c=%d%&set d=%c% jest po prostu prostą zamianą.

2

PHP 7.1: 159 bajtów

<?php $A=$B=10;$t='AB';while($A>0&&$B>0){$a=$t[0];$b=$t[1];$d=rand(1,6);$$b-=$d;echo"$a a $b\n$a r $d\n$b h {$$b}\n";$t=strrev($t);}echo($A>0?'A':'B')." w\n";

Uruchom tutaj w przeglądarce!

PHP 5.6: 156 bajtów

<?php $A=$B=10;$t='AB';while($A>0&&$B>0){list($a,$b)=$t;$d=rand(1,6);$$b-=$d;echo"$a a $b\n$a r $d\n$b h {$$b}\n";$t=strrev($t);}echo($A>0?'A':'B')." w\n";

Uruchom tutaj w przeglądarce!

Oto jak wygląda rozwiązanie PHP 5.6 z formatowaniem i komentarzami:

<?php
// Initialize both HP counters
$A = $B = 10;

// Set the turn order as a string (which 5.6 allows to be unpacked into a list)
$t = 'AB';

// Run this loop as long as both players have HP
while ($A > 0 && $B > 0) {
    // Unpack the turn string into $a and $b variables; on the first run, $a = 'A'
    // and $b = 'B'. This is no longer possible in PHP 7.0, so the PHP 7.0
    // solution needed to use an array instead.
    list($a, $b) = $t;

    // Set damage to a random number between 1 and 6
    $d = rand(1, 6);

    // Subtract the damage from the referenced value $b. On the first turn, this
    // is 'B', so this ends up subtracting $d from $B. Next turn, $b will be 'A',
    // so it'll subtract $d from $A
    $$b -= $d;

    // Echo the string (interpolated values)
    echo "$a a $b\n$a r $d\n$b h {$$b}\n";

    // Reverse the turn order string ('AB' becomes 'BA', which will affect the
    // call to list in the first line of the while-loop)
    $t = strrev($t);
}

// Someone's run out of HP; figure out whom by figuring out who still has HP
echo ($A > 0 ? 'A' : 'B') . " w\n";

1

Bash, 178 bajtów

A=10 B=10 e=echo
a(){ $e $1 a $2;d=$((RANDOM%6+1));$e $1 r $d;eval $2=$((${!2}-$d));$e $2 h ${!2};[ ${!2} -gt 0 ];}
while a A B && a B A;do cd;done;[ $A -gt 0 ]&&$e A w||$e B w

1

F #, 238 235 bajtów

Myślałem, że mam się dobrze, ale wszyscy daleko mnie zdeklasowaliście!

let p=printfn
let mutable A=10
let mutable B=A
let x h a d=
 p"%s a %s"a d
 let i=(new System.Random()).Next(1,7)
 let j=h-i
 p"%s r %i"a i
 p"%s h %i"d j
 if j<=0 then p"%s w"a
 j
while A*B>0 do
 B<-x B"A""B"
 if B>0 then A<-x A"B""A"

Wypróbuj online!

Dzięki Rogemowi za genialną poradę, aby użyć A * B> 0 zamiast A> 0 i&B> 0 (usuwa 3 bajty).

Dziękuję również oficjalnemu, który podpowiedź na temat predefiniowania printf w odpowiedzi na Python pomogła mi również zgolić kilka bajtów.


1
Rada, którą otrzymałem od @OlivierGregoire: A*B>0pozwoli ci zaoszczędzić jeszcze kilka.

To jest absolutnie genialne. Kocham to. Dziękuję Ci bardzo!
Ciaran_McCarthy

1

Haskell , 204 bajty

Moja próba z Haskellem niestety nie była w stanie uczynić go bardziej konkurencyjnym

import System.Random
main=getStdGen>>= \g->putStr$q(randomRs(1,6)g)10(10::Int)"A ""B "
(!)=(++)
l="\n"
q(x:z)a b p o=p!"a "!o!l!p!"r "!show x!l!o!"h "!show n!l!if n<1then p!"w"else q z n a o p where n=b-x

Wypróbuj online!

Objaśnienia:

import System.Random  --import random module
main=                        --main function, program entry point
 getStdGen                   -- get the global random number generator
   >>= \g->                  --using the random generator g
       putStr $ q            --print the result of function q, passing in ..
          (randomRs (1,6) g) --an infinite list of random numbers, 1 to 6 generated by g
           10 (10::Int)      --the starting health of both players, 
                             --type annotation sadly seems to be required
           "A " "B "         --The names of the players,
                             --with an extra space for formatting
(!)=(++) --define the operator ! for list (String) concatenation, 
         -- we do this a lot so we save a bit by having a one byte operator
l="\n"   -- define l as the newline character

q      --define function q                         
 (x:z) --our list of random numbers, split into the next number (x) and the rest (z)
 a     -- the health of the active player
 b     -- the health of the player getting attacked
 p     -- the name of the active player
 o     -- the name of the player getting attacked
=
  p!"a "!o!l --create the attack action string with a newline
 !p!"r "!show x!l -- append the roll action
 !o!"h "!show n!l -- append the health remaining
 !           -- append the result of the following if
  if n<1     -- if the player being attacked has been defeated
  then p!"w" -- append the win string for the active player
  else q z n a o p  --otherwise append the result of calling q again with 
                    --rest of the random numbers, and the active players swapped
  where n=b-x -- define the attacked player's new health n
              -- their current health b - the random roll x

Możesz rzucić okiem na nasze Wskazówki dotyczące gry w golfa w Haskell . Na przykład where m=b-xmogą być wprowadzane do strażnika: |m<-b-x=.
Laikoni,

Można stracić lambda i jeden zestaw nawiasach poprzez zmianę niektórych parametrów: main=putStr=<<q"A "10"B "10.randomRs(1,6::Int)<$>getStdGen. Możesz także użyć listy i powiązać ją, aby pozbyć się przedefiniowania (++). To ostatnie miejsce nie wydaje się korzystne z powodu używania b-xwszędzie.
Angs

1

Julia 0.6 , 175 bajtów

p=println()
f(l="AB",h=[10,10],a=1)=(while min(h...)>0;d=3-a;p(l[a]," a ",l[d]);r=rand(1:6);h[d]-=r;p(l[a]," r ",r);p(l[d]," h ",max(h[d],0));a=d;end;p(l[findmax(h)[2]]," w"))

Wypróbuj online!

Długa, nie golfowa wersja:

function status(player, health)
    println("$player h $(max(0,health))")
end

function roll(player)
    x = rand(1:6)
    println("$player r $x")
    x
end

function play()
    players = ["A","B"]
    healths = [10, 10]
    attacker = 1

    while min(healths...) > 0
        println("$(players[attacker]) a $(players[3-attacker])")
        healths[3-attacker]-=roll(players[attacker])
        status(players[3-attacker], healths[3-attacker])

        attacker = 3 - attacker
    end

    winner = findmax(healths)[2]
    println("$(players[winner]) w")
end

Wydaje się, że nie ma żadnych danych wyjściowych w łączu TIO.
AJFaraday

Tak, nie wiem, dlaczego tio się to nie podoba. Działa dobrze na moim komputerze. Zajmę się tym, jeśli będę miał czas.
niczky12

1

VBA, 222 185 179 bajtów

To rekursywne rozwiązanie obejmuje 3 okręty podwodne

  1. g to początek gry który rozpoczyna się w pierwszej turze
  2. t jest wywoływane dla każdej tury . Wykorzystuje rekurencję.
  3. p jest krótszy niż Debuguj. Drukuj, gdy jest używany więcej niż 3 razy (tylko 4 w tym rozwiązaniu). Edycja: Teraz, gdy dowiedziałem się, że Debug.?jest to akceptowalna alternatywa Debug.Print, Debug.?xjest krótszy niż wywołanie Sub do wydrukowania.
Sub g()
t "A",10,"B",10
End Sub
Sub t(i,j,x,h)
d=Int(Rnd()*6)+1
Debug.?i &" a "&x
Debug.?i &" r "&d
h=h-d
If h<1Then
Debug.?i &" w"
Else
Debug.?x &" h "&h
t x,h,i,j
End If
End Sub

To było zabawne wyzwanie. Jeśli znasz tłumacza internetowego, takiego jak TIO dla VB6 / VBScript / VBA, zostaw komentarz. Następnie mogę opublikować link do działającego rozwiązania.

Jeśli chcesz przetestować ten kod i mieć zainstalowany program Microsoft Excel, Word, Access lub Outlook (tylko Windows), naciśnij klawisze Alt + F11, aby otworzyć VBA IDE. Wstaw nowy moduł kodu (Alt + I, M) i wyczyść opcję Jawne. Następnie wklej kod i naciśnij F5, aby go uruchomić. Wyniki powinny pojawić się w oknie natychmiastowym (naciśnij Ctrl + G, jeśli go nie widzisz).

Edycja 1: Usunięto białe znaki, które edytor VBA automatycznie doda z powrotem. Zmniejszone o 37 bajtów
Edycja 2: Usunięto Sub p () *, aby zapisać 6 bajtów po nauce, Debug.?jest akceptowalną alternatywą dla Debug.Print. Wywołanie subwoofera do obsługi Debug.?zapisuje bajty tylko po więcej niż sześciu połączeniach.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.