Multidesk.be » Forums » Programmeren algemeen » [QBasic] Dos / Dosbox Tetris spelletje

  • Pagina
  • [1]
  • 2
0 gasten lezen dit onderwerp.
^ Onderwerp geschreven door thekid op maandag 4 augustus 2008 om 00:29:36.
thekid's avatar
Multiviteit: 5273
Moderator
'k heb hier uit nostalgie nog maar eens qbasic opengesmeten en eens tetris geschreven in dos

laat toe om 1 matchke te spelen, pijltjes links - rechts om te bewegen, omhoog - omlaag om te draaien, enter om te droppen, escape om direct te stoppen

iedere 5000 punten gaat de level omhoog, maar heb nog niet kunnen testen of het echt verschil maakt (tetris spelen is niet mijn beste :))

't zou moeten werken in alle dos'n en 't is geprogrammeerd onder qbasic 7 in dosbox

Ik geef er de source inclusief bij, wie weet doet er iemand anders nog wat aan verder

't zou moeten foutloos werken, maar indien niet, geef het nog eens door en kijk nog even naar de source :)


http://www.multidesk.be/bijlage/0368be71ebd4a81e2cbc690f90ca96dc.jpg


Spelletje+Source+Alfabet

Bijlage: 1452bab15df42b67f762641b62056b78.zip

Installatie
Gewoon in map unzippen en tetris.exe starten, of start het vanuit qbasic 7 door tetris te openen. Alfabet.txt moet in dezelfde map als tetris.exe staan

Starten
Open dosbox (downloadlink) en ga naar de unzipte folder en starten maar :)
"Human beings make life so interesting. Do you know, that in a universe so full of wonders, they have managed to invent boredom." - Death in Hogfather
^ Reactie #1 geschreven door Wheeldigger op maandag 4 augustus 2008 om 00:41:40.
Wheeldigger's avatar
Multiviteit: 10173
Moderator
Moeten we daar niet DOS / QBASIC voor hebben?
(hier heb ik hem nog steeds :D )
(voor de geïntresseerden kan ik die DOS ook in een zip hierneersmijten ;) )
^ Reactie #2 geschreven door thekid op maandag 4 augustus 2008 om 00:47:46.
thekid's avatar
Multiviteit: 5273
Moderator
nee hoor, de exe werkt ook, qbasic 7 heeft compiler hé :), in dosbox werkt ie perfect

hier af te halen, dosbox:
http://www.dosbox.com/download.php?main=1

voor zowat alle platformen (win/linux/mac/os-2)

in Vista werkt ie niet onder cmd, omdat deze blijkbaar geen fullscreen ondersteund :s
"Human beings make life so interesting. Do you know, that in a universe so full of wonders, they have managed to invent boredom." - Death in Hogfather
^ Reactie #3 geschreven door NightCreature op maandag 4 augustus 2008 om 02:23:34.
NightCreature's avatar
Multiviteit: 1196
MSc.
Ik wil in Vista ook geen dosbox in fullscreen draaien, ik wil dosbox zowiezo niet fullscreen draaien in geen enkel OS.

Je zou alleen het omlaag laten komen van de blokken wat kunnen vertragen, op een Core2 Duo T7500 2.2GHz komen de blokken te snel omlaag voor het eerste level.
Deze tekst werd het laatst bewerkt voor 40.7 % door NightCreature op maandag 4 augustus 2008 om 02:27:47.
I need thought completion.
Shaders, een beetje vreemd maar wel lekker (voor de ogen dan he)
2.83Ghz Q9550 HD4850 512MiB 4GiB 1333Mhz DDR3 RAM
http://paulintheuk.blogspot.com
FE Programmer @ Codemasters (Front End)
^ Reactie #4 geschreven door thekid op maandag 4 augustus 2008 om 03:15:35.
thekid's avatar
Multiviteit: 5273
Moderator
Ja, 't is waar. Ge moet weten, als je hem vanuit Qbasic zelf draait is de snelheid een stuk aanvaardbaarder :s Nen timer is nu niet direct iets dat in Qbasic zal, maar kan wel kijken om de interval wat te verlengen tussen de levels in :)

maar dan nog hangt het af van pc tot pc, hé :s
"Human beings make life so interesting. Do you know, that in a universe so full of wonders, they have managed to invent boredom." - Death in Hogfather
^ Reactie #5 geschreven door NightCreature op maandag 4 augustus 2008 om 11:11:18.
NightCreature's avatar
Multiviteit: 1196
MSc.
Ja dat weet ik maar ik merkte het gewoon erg, heb best veel tetris gespeelt maar dit was een beetje te snel. Maar je moet nooit dingen op snelheid vertrouwen in vanuit de compiler, want als die in debug draait slokt die ook nog een paar CPU cycles op.
I need thought completion.
Shaders, een beetje vreemd maar wel lekker (voor de ogen dan he)
2.83Ghz Q9550 HD4850 512MiB 4GiB 1333Mhz DDR3 RAM
http://paulintheuk.blogspot.com
FE Programmer @ Codemasters (Front End)
^ Reactie #6 geschreven door thekid op maandag 4 augustus 2008 om 13:01:42.
thekid's avatar
Multiviteit: 5273
Moderator
Da's waar
misschien is het dan iets eenvoudiger om in Dosbox de vertraging te bepalen via ctrl+F11 (trager) en ctrl+F12 (rapper) :)

"Human beings make life so interesting. Do you know, that in a universe so full of wonders, they have managed to invent boredom." - Death in Hogfather
^ Reactie #7 geschreven door Simon op maandag 4 augustus 2008 om 13:18:08.
Simon's avatar
Multiviteit: 3742
Het gaat inderdaad wat rap. Ctrl + F11 helpt wel, maar vooraleer je aan een fatsoenlijke snelheid bent is het venster volgelopen met blokjes en sluit hij af. Misschien dan toch de snelheid beperken, of eventueel een pauze-knop inbouwen.

Ik zou nog meer willen testen, maar dat is niet echt mogelijk nu :D.
^ Reactie #8 geschreven door thekid op maandag 4 augustus 2008 om 13:35:46.
thekid's avatar
Multiviteit: 5273
Moderator
ja, 't is waar
ik zit nu echter op mijn werk

ik stel voor dat degene die het uitgebreider willen testen even Qbasic7 afhalen en in de sub drawScreen de "delay-timer" wat updaten, dus verhogen, 't is het laatste lijntje

for x = 0 to (10 - player.level) * 1000: dim y as integer: y = x ^ 0.5: next x

naar

for x = 0 to (10 - player.level) * 10000: dim y as integer: y = x ^ 0.5: next x

en eventueel de frameskip verhogen (staat nu op 5 in de mainloop, zet hem op 10 en 't zou weer veel moeten vertragen :))

vanavond kan ik het ook zelf doen, maar dan kan er niet getest worden, éh :)

voor gemakkelijk in de sub te navigeren, druk op F2 en kies de gewenste sub met pijltjes, best wel leuke editor, duurt wel even voor het weer gewoon te geraken :)
"Human beings make life so interesting. Do you know, that in a universe so full of wonders, they have managed to invent boredom." - Death in Hogfather
^ Reactie #9 geschreven door thekid op dinsdag 5 augustus 2008 om 01:37:03.
thekid's avatar
Multiviteit: 5273
Moderator
Alright, bij deze een update :) (nog steeds met source)

Snelheid zou al heel wat aangenamer moeten zijn in het begin, maar naarmate je hoger en hoger in level komt krijg je: meer punten + maar ook een redelijke snelheid naar het einde toe (max level is 10, maar je kan natuurlijk doorspelen tot je finito bent)

is nu met geluid, oja, verheug je op bliepjes in verschillende frequenties, de volle 16 kleuren op het scherm (waarvan meeste zwart) en een mooie animatie die uw dos echt tot leven brengt :) (trekt het een beetje op gta type radio games voorstelling? :D).

enfin, source erbij, speelde wel iets aangenamer

Installatie

Bijlage: 4130b307259e111852bb0d423918927f.zip

unzippen in een mappen en spelen maar. Wens je enkel te spelen kan je ook tetris.exe + alfabet.txt uitpakken
"Human beings make life so interesting. Do you know, that in a universe so full of wonders, they have managed to invent boredom." - Death in Hogfather
^ Reactie #10 geschreven door NightCreature op dinsdag 5 augustus 2008 om 02:21:26.
NightCreature's avatar
Multiviteit: 1196
MSc.
Beter je zou alleen er voor kunnen zorgen dat pijltje omlaag blokje een rij naar onderen verplaatsen is ipv draaien. Ik heb op het moment geen tijd om naar de source te kijken/aan passen, heb een interview woensdag met Ninja Theory en moet me een beetje in het bedrijf inlezen. Zal van het weekend eens kijken of ik het zelf kan aanpassen.
I need thought completion.
Shaders, een beetje vreemd maar wel lekker (voor de ogen dan he)
2.83Ghz Q9550 HD4850 512MiB 4GiB 1333Mhz DDR3 RAM
http://paulintheuk.blogspot.com
FE Programmer @ Codemasters (Front End)
^ Reactie #11 geschreven door SMG op dinsdag 5 augustus 2008 om 02:25:35.
SMG's avatar
Multiviteit: 12000
Moderator
WTF is dat... Als ik dat open begint plots mijn laptop een vreemd geluid (precies allemaal gekraak) te maken (ook als het op mute staat).
Ik kan dit geen sec aanhoren...

Is dat wel normaal?
^ Reactie #12 geschreven door thekid op dinsdag 5 augustus 2008 om 02:45:53.
thekid's avatar
Multiviteit: 5273
Moderator
@smg:

is dat met dosbox gerunt of puur onder dos? het is nl zo dat ie in principe pcspeaker geluid moet maken, maar onder dosbox klonk het aanvaardbaar, op dos zelf heb ik het nog niet geprobeerd

anders moet je even de sound lijnen uit de source halen
"Human beings make life so interesting. Do you know, that in a universe so full of wonders, they have managed to invent boredom." - Death in Hogfather
^ Reactie #13 geschreven door Kilian op dinsdag 5 augustus 2008 om 14:48:14.
Kilian heeft nog geen avatar toegevoegd
Multiviteit: 1629
Ik zou het gekrazak er toch uit halen, en wel irritant. Nog een opmerkingetje: als je pijn naar onderen indrukt draait de blok. In het echt gaar deze dan gewoon heel snel omlaag.

Nog 1 ding: Als je dood bent zou je dan geen GAME OVER op het scherm zetten? Nu sluit die gewoon af, en weet je je score ed. niet.
Deze tekst werd het laatst bewerkt voor 27.35 % door Kilian op dinsdag 5 augustus 2008 om 14:50:51.
^ Reactie #14 geschreven door thekid op dinsdag 5 augustus 2008 om 15:36:55.
thekid's avatar
Multiviteit: 5273
Moderator
allé, 'k ga het "geluid" er weer uit halen, hier viel dat eigenlijk goed mee, dat klonk als *bup* *bup* iedere keer als de lijn omlaag ging.

Wel de rotatie staat ook beschreven, hé :) Omhoog is naar links draaien en omlaag is naar rechts draaien, Enter is heel snel laten vallen. Blijkbaar is dit niet zo in de smaak gevallen, 't is echter geen probleem om dit aan te passen, ' kga het dan vanavond aanpassen

'k weet dat het ook niet echt een gefinished product is, was eerder als soort "tutorial" bedoeld om een tetris spel te schrijven (daarmee in qbasic, wat voor mij bijna pseudo code is en dus makkelijk leesbaar voor de meeste mensen)

maar 'k ga het dan nog wat updaten zodat er ook nog een menu'tje inzit :)

wat nu op zich wat belangrijker was voor mij:
- is de snelheid aanvaardbaar voor de eerste levels (+komende levels)
- zijn er nog fouten opgemerkt bij de blokjes (rotaties op onmogelijke plaatsen, blokjes die verdwijnen in andere blokjes?, rare crashes?)

'k ga dan vanavond geluid eruit halen (mijnen hond zal content zijn, ze kwam zot van het "sirene" geluid bij het wissen van het geluid (of kwam dat ook niet goed door?))

'k ga het dan vanavond dus wel "finishen". Iemand al iets zitten rondkijken in de source? 't zou nog vrij overzichtelijk moeten zijn hoor (en geregeld wat commentaarlijnen ingezet)
"Human beings make life so interesting. Do you know, that in a universe so full of wonders, they have managed to invent boredom." - Death in Hogfather
^ Reactie #15 geschreven door Simon op dinsdag 5 augustus 2008 om 20:08:51.
Simon's avatar
Multiviteit: 3742
De code heb ik wel bekeken en de meeste dingen begrijp ik. De taal ken ik echter niet, dus aanpassen zal moeilijk zijn.

De beginsnelheid is ok nu.

Ik vind wel dat hij wat traag reageert op de toetsaanslagen (of ligt dat aan de computer?). Daardoor druk ik soms meerdere keren op de toetsen. De dingen die hij dan niet heeft kunnen uitvoeren op het ene blokje, doet hij wel op het volgende blokje. Dan heb ik geen controle meer. Misschien een soort van toetsreset na elk nieuw blokje? Of is dat niet mogelijk?

Het geluid is niet zo irritant. Hier kraakt het alleszins niet :).

Hoe werkt het scoresysteem eigenlijk? Mijn score verhoogt per 100, maar toch zie ik soms 50 of 25 op het einde staan. Is dit een bug of toch normaal?

Het is alleszins al een tof spelleke!
^ Reactie #16 geschreven door thekid op dinsdag 5 augustus 2008 om 21:28:14.
thekid's avatar
Multiviteit: 5273
Moderator
score is als het volgt
per lijn krijg je 100 punten als basis, daarna krijg je per lijn 25 bonuspunten erbij, en dan nog extra als levelbonus krijg je nog dit erbij: (level - 1) * 10 * lijnen (op hogere snelheid is het nl moeilijker om mooi meerdere lijn constructies te maken)

de toetsen worden eigenlijk wel gereset nadat ie de toets gelezen heeft, echter de buffer niet (qbasic heeft nogal een raar key systeem :)), waardoor dus effectief alle gedrukte toetsen ook uitgevoerd worden, zei het soms idd met een vertraging

normaal moeten ze toch vrij direct reageren op toets aanslagen, het hangt er gewoon vanaf of je het in qbasic runt of via de exe. ik heb er gisteren allesinds weinig van ondervonden, misschien staan je dosbox instellingen iets anders?
"Human beings make life so interesting. Do you know, that in a universe so full of wonders, they have managed to invent boredom." - Death in Hogfather
^ Reactie #17 geschreven door thekid op dinsdag 5 augustus 2008 om 22:13:22.
thekid's avatar
Multiviteit: 5273
Moderator
Bij deze de update

aanpassing:
- er zit nu een menu'tje in, zou moeten toelaten om het geluid aan te passen, maar da werkt niet voor een of andere reden, dus heb ik het gerust gelaten, er is dus geen geluid standaard voorzien
- ook mogelijkheid tot starten en stoppen van spel
- pijltje naar beneden doet nu ook de blok vallen, om naar rechts te draaien kan je nu numpad-0 gebruiken. Enter doet de blok ook nog steeds vallen

Installatie
Bijlage: e948c38be10f433ff9833eed76e2917e.zip

Spelen
Unpack de map en spelen via dosbox -> tetris.exe of via dos rechtstreeks of vanuit de qbasic editor (tetris.bas)
Deze tekst werd het laatst bewerkt voor 11.44 % door thekid op dinsdag 5 augustus 2008 om 22:14:29.
"Human beings make life so interesting. Do you know, that in a universe so full of wonders, they have managed to invent boredom." - Death in Hogfather
^ Reactie #18 geschreven door Simon op dinsdag 5 augustus 2008 om 22:34:11.
Simon's avatar
Multiviteit: 3742
Het menu is handig, maar het zou nog handiger zijn als die starten-knop ook een soort van hetvatten-knop is. Als je nu op esc drukt pauzeert het spel en komt het menu tevoorschijn, maar bij een druk op starten wordt een nieuw spel gestart, je kan dus niet meer verder met het vorige spel :).
^ Reactie #19 geschreven door NightCreature op woensdag 6 augustus 2008 om 00:13:03.
NightCreature's avatar
Multiviteit: 1196
MSc.
ik heb een keer rond gekeken in de source maar ik kan geen BASIC lezen. BASIC ziet er echt heel raar uit als C/C++ programmeur, allemaal raare woorden. Ik kan het meeste wel volgen maar zou BASIC syntax moeten aan leren om er echt wat in te veranderen. Ga ik dus niet doen ik hou het wel bij C/C++, HLSL, GLSL en dergelijken is wat makkelijker aangezien syntax hetzelfde of bijna hetzelfde is. Ik probeerde van de week weer eens Delphi op te pakken, al 3-4 jaar niet meer in geprogrammeerd. Ging niet goed ipv := gebruikte ik = om een waarde toe te kennen.
Wat is het verschil tussen "LIJN(...)" en "call drawtext(...)" zoals je ziet ken geen BASIC nooit geleerd ik ken alleen maar talen die niet op Engels lijken als ik aan het programmeren ben.
I need thought completion.
Shaders, een beetje vreemd maar wel lekker (voor de ogen dan he)
2.83Ghz Q9550 HD4850 512MiB 4GiB 1333Mhz DDR3 RAM
http://paulintheuk.blogspot.com
FE Programmer @ Codemasters (Front End)
  • Pagina
  • [1]
  • 2

Snel-antwoordformulier
Toon uitgebreid antwoordformulier Bericht nalezen Bericht plaatsen