Ég er í Töl 103 og við eigum að forrita spilið 21. Fyrirmælin eru eftirfarandi:
Búið til forrit sem líkja á eftir því að við séum að spila 21 í tölvunni. Leikurinn fer þannig fram að tölvan byrjar á að láta leikmann spila. Tölvan gefur þá spil frá 1 fyrir ás upp í 13 fyrir kóng. Síðan spyr tölvan hvort leikmaður vilji fá annað spil. Tölvan leggur saman gildin á spilunum sem leikmaður hefur fengið og ef heildarsumman er stærri en 21 hefur leikmaður tapað spilinu en tölvan unnið. Ef leikmaður stoppar án þess að hafa sprungið gefur tölvan sjálfri sér spil. Tölvan notar þær reglur að hún stoppar ef heildarstigafjöldi er 16 eða meira en heldur annars áfram.
Eftirfarandi reglur eru notaðar til að ákveða hver vinnur spilið:
Ef sigafjöldi leikmanns er hærri en 21 þá hefur hann sprungið og tapað spilinu. Þá þarf tölvan ekki að gefa sjálfri sér spil. Ef leikmaður springur ekki en tölvan springur (þ.e. fær meira en 21) hefur leikmaðurinn unnið. Ef hvorki leikmaður né tölva springa, þá vinnur sá sem hefur fleiri stig. Ef tölva og leikmaður hafa jafn mörg stig þá vinnur tölvan. Gera má ráð fyrir að hvert spil gildi frá einum upp í 13.
Dæmi um hvernig leikur getur spilast :
(Það sem tölva skrifar er í þessum fonti, en það sem notandi slær inn í þessum)
Nú hefst leikurinn:
þú fékkst 9 og ert kominn með samtals 9, viltu fleiri spil? já
þú fékkst 7 og ert kominn með samtals 16, viltu fleiri spil? já
þú fékkst 6 og ert kominn með samtals 22, viltu fleiri spil? nei
Þú sprakkst, tölvan vann.
Heildarfjöldi spila: 1
Tölva hefur unnið 1 spil
Þú hefur unnið 0 spil
Viltu spila annað spil? já
þú fékkst 8 og ert kominn með samtals 8, viltu fleiri spil? já
þú fékkst 2 og ert kominn með samtals 10, viltu fleiri spil? já
þú fékkst 8 og ert kominn með samtals 18, viltu fleiri spil? nei
tölvan fékk 3
tölvan fékk 4
tölvan fékk 10
tölvan fékk samtals 17
þú vannst leikinn
Heildarfjöldi spila: 2
Tölva hefur unnið 1 spil
Þú hefur unnið 1 spil
Viltu spila annað spil? nei

Það sem ég er kominn með er:
// Skilaverkefni 16
// Daníel Grétarsson
// 10. feb 2010
import java.util.Scanner;
public class spil21{
  public static void main(String[] args){
    Scanner lesa = new Scanner(System.in);
    int svar;
    int summa = 0;
    int aftur;
    
    do{
      System.out.println("Nú hefst leikurinn");
      do {
        svar = 'N';
        int spil = (int) (Math.random()*13)+1;
        summa = summa + spil;
        System.out.println("Þú fékkst "+spil+" og samtals ertu með "+summa);
        if (summa < 21){
          System.out.println("Viltu annað spil? (0 fyrir já, 1 fyrir nei)");
          svar = lesa.nextInt();}
      } while (svar == 0);
      
      if (summa > 21)
        System.out.println("Talan er hærri en 21, þú hefur tapað");
      
      int summa2 = 0;
      if (svar == 1){
        do{
          int tölva = (int) (Math.random()*13)+1;
          summa2 = summa2 + tölva;
        } while (summa2 <= 16);
      }
      if (summa < 21) 
        System.out.println("Tölvan fékk: "+summa2);
      
      if (summa2 > summa && summa2 < 22)
        System.out.println("Því miður, tölvan vann");
      
      else if (summa < 21)
        System.out.println("Til hamingju! Þú vannst");
      
      else if (summa2 == summa)
        System.out.println("Því miður, tölvan vann");
      
      System.out.println("Viltu spila aftur? (0 fyrir já, 1 fyrir nei)");
      aftur = lesa.nextInt();
    } while (aftur == 0);
    
    if (aftur == 1)
      System.out.println("Bless");
  }
}

Það sem ég er í vandræðum með er annarsvegar að núlla ‘summa’ þegar forritið er runnað aftur í endann. T.d. ef ég enda með 18 í fyrsta leiknum og vel að byrja annan leik þá bætist það ofaná summuna úr fyrri leiknum, ef ég fæ 5 í fyrstu umferð í öðru spilinu þá enda ég með 23. Ég er búinn að reyna ansi margt en ekkert hefur gengið upp.