Sur Ba Programming Challenge

2017.VI.25

Minden a háromszöggel kezdődik

Új vizekre evezünk: vektor grafikát fogunk termelni.

Az SVG (Scalable Vector Graphics) egy internetes szabvány az ilyen grafikák ábrázolására. Több szerkesztő program is létezik hozzá, ezek közül a kedvencem az Inkscape nevű, amivel pl az UpiRajzBlog nagy része is készült.

Az alábbi programban a Python rész minimális, csak egy print erejéig vesz részt a játékban. A többi csak az SVG-ről szól: definiálunk egy 64*64-es méretű logikai rajzfelületet amit 600*600 fizikai képpontra húzunk szét, majd ezen létrehozunk egy zárt alakot három pont koordinátával és azt szépen lezárjuk. Hogy pontosan mit jelent a "d", az "M", a "z" és a többi mágikus dolog itt, arra később visszatérünk majd, egyelőre legyen elég annyi, hogy ezek létrehoznak és lezárnak egy három pontból álló idomot. (Háromszögnek is nevezik.)

#!/usr/bin/python

print """Content-type: image/svg+xml

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
   xmlns:svg="http://www.w3.org/2000/svg"
   xmlns="http://www.w3.org/2000/svg"
   viewBox="0 0 64 64"
   version="1.1"
   height="600"
   width="600">
  <g>
    <path d="M 32,2 62,62 2,62 z" 
      style="fill: none; stroke: #000000;" />
  </g>
</svg>
""";

http://apocalypse.rulez.org/~upi/surba/triangle.py [source]

Feladatok

  • A háromszög nem szabályos. Legyen szabályos. Azt szeretem, ha a dolgok szabályosak.
  • Á nem is, legyen inkább szabályos négyzet.
  • A négyzet túlértékelt, legyen szabályos ötszög.
  • Bónusz feladat: legyen a sokszög piros színű.
Tagek:
 
Utoljára módosította UPi 2017.VI.25 16:49-n; 2 hozzászólás
Bejegyzés módosítása | PermaLink
Szavazás letiltva.

Arithmancy

Ha az Első lépéseken túl vagy, akkor matekozzunk egy kicsit.

#!/usr/bin/python

print "Content-type: text/plain\n\n";

= 0

while i < 10:
    print i * i
    i = i + 1

http://apocalypse.rulez.org/~upi/surba/arithmancy.py [source]

Ami itt történik az az első tíz négyzetszám kiírása. Mivel az informatikusok hülyék és nullától számolnak, ezért ez nem az lesz, amire számítanál.

Feladatok

  • Írjuk ki a négyzetszámokat 1-től 100-ig!
 S- Ezt a http://apocalypse.rulez.org/~surba/fel1.py [source] oldalon meg is tettem elvileg. 
  • Írjuk ki az első húsz Fibonacci számot!
 S- Ezt pedig megleő módon a http://apocalypse.rulez.org/~surba/fel2.py [source] oldalon. 
Protip: A WinSCP képes arra, hogy a helyi változásokat automatikusan átmásolja a távoli könyvtárba a "Keep Remote Directory up to Date" nevű csodafunkcióval.
 S- A Protip jól jött, de az igazi protip az volt amikor kiderült, hogy mi az a 4 space rule meg hogy az identation mit jelent, meg hogy mi az az lf és hogy mennyire nem szoktam normális programokat installálni (ahol nem az a feladat, hogy nézzem a képeket és kávézzak). U.i: Ez nem jelenti azt, hogy automatikusan frissítek is, de a legnagyobb gondom amúgy is az volt, hogy más is látja amikor trial and error alapon piszkálok dolgokat.
Tagek:
 
Utoljára módosította SurBa 2017.VI.25 16:54-n; 0 hozzászólás
Bejegyzés módosítása | PermaLink
Szavazás letiltva.

Első lépések

Képzeljünk el egy első Python weboldalt, ami imígyen néz ki:

#!/usr/bin/python

print """Content-type: text/plain

Hello, world!"""

http://apocalypse.rulez.org/~upi/surba/hello.py [source]

Mi történt itt? Az első sor arra van, hogy a futtató környezet tudja, hogy ez egy Python program. Utána indul egy print """ ... """ nevű varázslás, a tripla idézőjelek közötti részt a Python egy stringnek tekintí még akkor is, ha neadjisten soremelés lenne benne. A print szépen szolgaian kiírja a paraméterét, vagyis a következő két sort:

Content-type: text/plain

Hello, world!

Ez a teljes kimenet. A futtató környezet úgy működik, hogy ami az első üres sor előtt van, az a fejléc, ami utána az pedig maga az oldal. A fejlécben kijelentjük, hogy recece ez egy sima szöveges dokumentum lesz. Mindegy, ezt kell csinálni, oszt csókolom.

Hogyan izzítsuk be ezt a programot magunk?

Feltéve, hogy a SurBa vagy, a következőket kell csinálni:

  • Indíts egy Notepad++-t, csinálj egy hello.py nevű file-t és másold bele a fenti Python programot.
    • Fontos: A Notepad++-ban az Edit -> EOL Conversion -> Unix (LF) pontot ki kell választani minden file-nál, különben nem fog a webes környezetben működni.
  • Indítsd el a WinSCP nevű programot, lépj be vele az apocalypse-re.
    • A "File protocol" SFTP, a "Host name" apocalypse.rulez.org a "Port number" pedig 3712 legyen. (Ebből a 3712 nem értelemszerű, figyeld oda.)
    • A jobb oldali panelban menj a /home/surba/public_html könyvtárba.
    • Ide másold át a hello.py file-t.
    • Nyomj egy jobb gombot a felmásolt file-ra, válaszd ki a Properties menüpontot, és ott kattintsd be az összes "X' checkboxot. A többi maradjon ahogy volt. Ha minden jól megy, a "Rights" oszlopban az lesz ezután, hogy rwxr-xr-x, ami orkul azt jelenti, hogy a file-t bárki olvashatja és futtathatja, de írni csak a tulajdonos tudja.
  • Ez után, ha a fenti összes lépés sikerült, a http://apocalypse.rulez.org/~surba/hello.py [source] címen működésbe lép a program!

Ha mégsem működne valami:

  1. Lépj be az apocalypse-re PuTTY-tyal. Ugyanúgy a 3712-es portot kell használni és SSH protokollt.
  2. cd public_html paranccsal lépj be a megfelelő könyvtárba.
  3. ./hello.py parancs elindítja a programot; így látni fogod, hogy milyen hibát ír ki a rendszer.

Feladat

Működésbe hozni a hello.py-t a saját könyvtáradban.

Tagek:
 
Utoljára módosította UPi 2017.VI.28 10:14-n; 1 hozzászólás
Bejegyzés módosítása | PermaLink
Szavazás letiltva.