Egy most duplamagasnak mondott rackdobozban (Junoszty monitorral ellátva)
ilyen kártyákon volt összedrótozva:
olyan spéci zománchuzallal, amelyről a forrasztási helyen leolvadt a szigetelés pákahőfokon.
Lehetne persze egy hosszabb, hat rövidebb faággal és 36 babszemmel is játszani, de gyanús, hogy hétvégi takarítás után már nem lenne meg.
Valamint lehetne játszani ezen az oldalon, de ez eggyel könnyebb feladat, mint basic-ből átírni.
Emlékszem, valahogy megfejeltem azzal, hogy először sajátmagával játszott le 50 menetet, hogy ne lehessen az "5,4,3,2,1"-es indulással tönkreverni.
A lényeg, hogy ennek kapcsán
rájöttem, hogy miután a pixelbuherátor, a webmaestro és az ergizda én vagyok a munkahelyemen -
a legjobb, ha szabadidőmben programozom, mert különben valami váratlan nagyobb horderejű feladatnál a programozási gyakorlat híján
esetleg ugrik a szabadidőm.
:D
- bitvadasz blogja
- A hozzászóláshoz be kell jelentkezni
Hozzászólások
Mindjárt az elején
#!/bin/bash
mert különben nincs
declare -a b
Aztán nem jutottam egyről kettőre
:~$ x=1; y=1; z=$x+$y; echo $z
1+1
másodjára persze igen
:~$ x=1; y=1; z=$(($x+$y)); echo $z
2
tömbrájder van
:~$ b[1]=3; echo $b[1]
[1]
ízirájder van
:~$ b[1]=3; echo ${b[1]}
3
mindent csak egyszerűen
:~$ x=1; b[1]=3; echo $(($x+${b[1]}))
4
valami sikálni való persze mindig marad
:~$ echo " 1 5 BC EF"
1 5 BC EF
:~$ :~$ b[3]=" 1 5 BC EF"; echo ${b[3]}
1 5 BC EF
talán akkor valahogy így
:~$ b[3]=" 1 5 BC EF"; echo "${b[3]}"
1 5 BC EF
- A hozzászóláshoz be kell jelentkezni
Az összeadást írhatod így is:
z=$[x+y]
Vagy akár így:
((z=x+y))
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
:~$ b[1]=3; echo $[b[1]+$x]
4
:~$ b[1]=3; echo ((b[1]+x))
-bash: szintaktikai hiba a váratlan ( vezérjel körül
- A hozzászóláshoz be kell jelentkezni
De én nem ezt írtam!
A teljes értékadást írhatod a dupla zárójelen belülre. Sőt, van vessző operátor is, szóval akár ezt is megteheted:
((a=3, b=5, c=a+b)); echo $c
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
rájöttem, de akkor már megelőztél :)
:~$ x=1; b[1]=3; ((z=b[1]+x))
:~$ echo $z
4
- A hozzászóláshoz be kell jelentkezni
Ha lebegőpontos aritmetika is kell, akkor a bc, calc, awk jöhet szóba így hirtelen.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Persze közvetlenül is helyettesíthetsz:
echo $((a=3, b=5, a+b))
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
fog ez menni
:~$ x=1; b[1]=3; echo $((x+b[1]))
4
:~$ x=1; b[1]=3; echo $[x+b[1]]
4
- A hozzászóláshoz be kell jelentkezni
A random kiosztás az eredeti basic-ben slampos volt,
nemigen ügyelt volna arra, hogy pontosan 36 bogyó legyen kiosztva
és "nem eléggé volt random" - ezért újra írtam a rutint:
function random () { # paraméter: 1|2 (max. 5|6 bogyó)
ms=36; mr=12; mn=$[3-$1];
for i in $(seq 7 12 | shuf -n 6) $(seq 0 5 | shuf -n 6); do
mx=$[ms/mr+x+1];
if [ $ms -lt $mx ]; then mx=$ms; fi
if [ $ms -lt $mn ]; then mn=$ms; fi
if [ $mr -lt 2 ];
then b[$i]=$ms;
else b[$i]=$(seq $mn $mx | shuf -n 1);
fi;
ms=$[ms-b[$i]];
mr=$[$mr-1];
done;
b[6]='0'; b[13]='0';
}
ha "random 1" akkor max. 5 bogyó megy egy fakkba, - ha "random 2", akkor 6.
Miután csak a programból hívom, nem végeztem paraméter ellenőrzést.
és lőn:
Standard, Random(1,2), Beírom(3) Kilépés(k): 2
! 2 ! 5 ! 4 ! 2 ! 6 ! 1 !
0 !----!----!----!----!----!----! 0
! 3 ! 6 ! 1 ! 2 ! 1 ! 3 ! < játékos
Lépés(1-6), Új játék(0):
- A hozzászóláshoz be kell jelentkezni
Nem így akartad?
if [ $ms -gt $mx ]; then mx=$ms; fi
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
nem, mert itt azt ellenőrzöm, hogy a kioszható max ne legyen több, mint a még nem kiosztott bogyószám.
a kiszámolt max viszont helyesen:
mx=$[ms/mr+
$1
+1];
és azért működött eddig, mert "read x" volt a "random erősség" bekérdezése.
Standard, Random(1,2), Beírom(3) Kilépés(k):
és még egy javítás:
for i in $(seq 0 12 | shuf -n 13 | sed 's/6//g'); do
- A hozzászóláshoz be kell jelentkezni
Valójában nem néztem a programot végig, nem értettem meg, csak a jelölésekből úgy tűnt, mintha minimum és maximum keresés lenne.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Nem, ez a kezdeti random játékmező kiosztás.
Most találtam meg Z80-ra :)
http://vizipok56.site88.net/drupal/sites/default/homelab/programok/011/…
- A hozzászóláshoz be kell jelentkezni