Advertisement
phjoe

Kuis

Dec 27th, 2014
236
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import appuifw as A
  2. import graphics as G
  3. from random import choice
  4.  
  5.  
  6. # pertanyaan, biar gak monoton permainannya, kata tanya ini nanti di pilih acak
  7. PERTANYAAN=[
  8.  'Warna apa ini?',
  9.  'Kalo ini warna apa?',
  10.  'Hayo warna apa nih',
  11.  'Warna apa sih?',
  12.  'Ini warnanya apa?'
  13.  ]
  14.  
  15. # contoh soal, bisa diganti objek/gambar,dll (jawaban,soal)
  16. SOAL=[
  17.    ('hitam',0),
  18.    ('merah',0xff0000),
  19.    ('hijau',0x00ff00),
  20.    ('biru',0x0000ff),
  21.    ('kuning',0xffff00)
  22.    ]
  23.  
  24.  
  25. class Kuis:
  26.  def __init__(self):
  27.   self.w,self.h=G.sysinfo.display_pixels()
  28.   self.bg=G.Image.new((self.w,self.h))
  29.   self.run=0
  30.   self.pos=0
  31.   self.tanya=choice(PERTANYAAN)
  32.   A.app.screen='full'
  33.   self.c=A.Canvas(redraw_callback=self._redraw)
  34.   A.app.body=self.c
  35.   A.app.menu=[(u'Jawab',self.jawab)]
  36.   A.app.exit_key_handler=self.exit
  37.  
  38.  def exit(self):
  39.   self.run=0
  40.  
  41.  def _redraw(self,rect):
  42.   if self.bg:
  43.    self.c.blit(self.bg)
  44.  
  45.  def jawab(self):
  46.   A.e32.ao_sleep(0)
  47.   jwb=A.query(u'Jawaban','text')
  48.   if jwb is None:return
  49.  
  50.   # jika benar
  51.   if str(jwb).lower()==SOAL[self.pos][0]:
  52.    A.note(u'Pinter','conf')
  53.    self.pos+=1
  54.    self.tanya=choice(PERTANYAAN)
  55.    if self.pos>len(SOAL)-1:self.pos=0
  56.  
  57.    #if self.pos>len(SOAL)-1:A.note(u'Permainan selesai')
  58.  
  59.   # salah
  60.   else:
  61.    A.note(u'Salah','error')
  62.    return
  63.  
  64.  def play(self):
  65.   self.run=1
  66.   while self.run:
  67.    self.bg.clear(SOAL[self.pos][1])
  68.    self.bg.rectangle((5,5,self.w-5,25),0xffffff,0)
  69.    self.bg.text((10,20),u'%s' %self.tanya,0xffffff)
  70.    self._redraw(0)
  71.    A.e32.ao_sleep(0.01)
  72.  
  73.  
  74. Kuis().play()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement