Archief - Versimpeling Code Lucky Number game in Visual Basic 2010 express

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

funkywim

Legacy Member
Ik heb deze week snel even een uigebreidere versie gemaakt (in VB) van een spelletje dat in mijn schoolboek van vba stond.

Video: YouTube
Setup: Funkywim
Source code: http://tny.cz/a9bbca44

Als je de source code bekijkt, zal je zien dat de "If" zéér lang is omdat ik gewoon heb gebruikt wat ik zelf al wist. (Ik ben namelijk nog maar net begonnen en heb dit snel gemaakt zonder veel op te zoeken)
Is er iemand die een idee heeft hoe ik deze code kan versimpelen? Zodat ik eventueel 4 of 5 getallen zou kunnen gebruiken zonder al te veel irritaties :p

Recipe4hate

Legacy Member
Je hoeft niet expliciet "=true" op te vragen.
Code:
If ((getal1 = 7 or getal2 = 7) and (...))
wanneer getal 1 of getal 2 gelijk is aan 7, wordt het sowieso:
Code:
if((true) and (...))
en branching functioneert altijd standaard met true


Zo kan je volgende ook doen (heb al jaren geen VB.Net meer geschreven, dus zal een beetje pseudocode zijn):

Code:
dim hasServerConnected as bool
...
if(hasServerConnected = true)
...

--> kan ook perfect dit zijn:
if(hasServerConnected)
...

Raanº³

Legacy Member
Zet eerst eens option strict aan en bekijk/verschoon eens je conversies en hun logica ;-)

Voorbeeld
Code:
1) Dim generate As Integer = CInt(Int((10 * Rnd()) + 1))
...
2) txtGetal1.Text = generate
[...]
3) If ((txtGetal1.Text = 7 [...]
Als ik het goed begrijp:
  • Aanmaken van een integer (generate); daar zet je zijn random op, wilt een integer van de random afkappen en dan wil je van die integer een convert from integer to integer doen?
  • Je steekt generate weg in een tekstvak, als string dus
  • Je vraagt of diezelfde tekstvak (string!) de integer waarde van 7 heeft?
:unsure:

Nu, je IF's
Code:
If ((txtGetal1.Text = 7 Or txtGetal2.Text = 7 Or txtGetal3.Text = 7) = True) And (((txtGetal1.Text = 7 And txtGetal2.Text = 7) _
            Or (txtGetal1.Text = 7 And txtGetal3.Text = 7) Or (txtGetal2.Text = 7 And txtGetal3.Text = 7)) = False) _
            And ((txtGetal1.Text = 7 And txtGetal2.Text = 7 And txtGetal3.Text = 7) = False) Then
-->
Code:
If ([field 1 and field2 and field 3 = 7] = True) 
And (      ([field1 and field2 = 7]) 
         Or ([field1 and field2 = 7])
         Or ([field2 and field3 = 7]) = False
           ) 
     And ([field1 and field2 and field3 = 7] = False) Then
:unsure: heb hier al te lang moeten uitvissen welke haakjes bij wat horen...

Een mogelijke oplossing:
  • Maak een string aan en concat je integers naar die string, voor een 10, cast je die gewoon naar een 0.
    In dit geval zou dat bvb zijn: output: 777 of 069 of whatever. Dan kun je met adhv de positie in de string het bekijken.
  • Maak functies aan met een hoofdfunctie waar je je getallen aan meegeeft aan dat een waarde specifieke retourneert; bvb 1 voor 777 en 2 voor 77x, 3 voor x77,...
  • Maak simpele ifs en maak in je ifs simpele subifs [...] simpele subsub[...] ifs :P
  • ...
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan