Gå til innhold

lage matching game for å lære pensum.


Anbefalte innlegg

som tittelen tilsier så ønsker jeg og lage et "matching game" (som memory, bare at alle kortene er synlige)

 

det finnes mange programer som man kan bruke for å lage sånn men ingen av de jeg har sett kan lage det sånn som jeg vil ha det.

 

jeg ønsker at programmet skal klare og importere parene fra en tekstfil og at den selv setter parene i tilfeldig rekkefølge.

Jeg har foreløbig 50 par (navn og årstall) som jeg ønsker og bruke. Problemet med de eksisterende programmene er at kombinasjonene alltid vil være de samme, altså vil jeg at programmet skal plukke ut feks 10 par per spørsmål tilfeldig fra listen på 50 par.

 

tekstifilen på 50 par kan f.eks se sånn ut:

Jean-Baptiste Lamarck 	|	1744-1829
Gustav Theodor Fechner 	|	1801-1887
John Stuart Mill 	|	1806-1873
Charles Robert Darwin 	|	1809-1882
Alexander Bain 	|	1818-1903

 

her blir parene skilt fra med pipe tegnet, noe som et evt program burde være i stand til å jobbe med.

 

Dermed trenger man bare et rammeverk for hvordan denne dataen skal brukes.

 

problemet er at jeg ikke har noe særlig peiling på programmering og lurer derfor på om dette er mulig og utføre på en enkel måte?

 

kanskje ved å bruke xml, java og batch filer (litt sånn som yamj fungerer)?

 

noen som har en ide på hvordan dette kan gjøres?

 

her er eksempel på hvordan jeg ønsker resultatet:300px-USNAA0032_003.png

Endret av gorefest
Lenke til kommentar
Videoannonse
Annonse

Å lage et program som gjør dette er ikke spesielt vanskelig. Du trenger ikke xml eller batch andre spesielle ting. Det du trenger å gjøre er:

 

1) Lag en fil slik som du har angitt og les den inn.

2) Trekk 10 tilfeldige par fra det du har lest inn

3) Vis parene fram hulter til bulter - dette er biten som kan ta litt tid iom at du sikkert vil ha en ok grafisk framstilling.

4) La det være mulig å markere par av tallene igjen - igjen er den grafiske framstillingen det som tar litt tid

 

Egentlig et ganske så enkelt og lite program, bortsett fra at det ofte er litt slit å få det grafiske til slik som du vil - selvfølgelig avhengig av hvor erfaren du er og hvilke krav du stiller til utseende/brukervennlighet.

Lenke til kommentar
kanskje ved å bruke xml, java og batch filer (litt sånn som yamj fungerer)?

Trenger ikke xml,batch,java kunne ha vært et valg.

Jeg kan vise deg hvordan jeg ville startet,da blir det med python som er språket jeg liker og bruker mest.

 

Kort forklart.

Jeg leser inn data du har,rydder opp litt.

Skriver data til en fil.

Leser data inn i ett dictionary.

Styrken med dictionary/hashmap er at du kan jobbe med key:value,viss du bare vil velge par key:value går selvføgelig dette greit også.

import re
from pprint import pprint
from random import choice

text = '''\
Jean-Baptiste Lamarck  | 1744-1829
Gustav Theodor Fechner | 1801-1887
John Stuart Mill       | 1806-1873
Charles Robert Darwin  | 1809-1882
Alexander Bain         | 1818-1903
'''

#Clean whitespace
text_clean = []
for i in text.split('\n'):
   t = re.sub("\s+" , "", i)
   text_clean.append(t)

#Make file and write to file
fname = "pair.txt"
fout = open(fname, "w")
fout.write('\n'.join(text_clean))
fout.close()

#Read the file in and convert to a dictionary
pair_dict = {}
for line in open(fname):
   name, year = line.split('|')
   pair_dict[name] = year.strip()

#Now we have dictionary
pprint(pair_dict)

print '-'* 40
#Using pair_dict to take out 2 random pair
for i in range(2):
   print choice(pair_dict.items())

print '-'* 40
#If we want user to pick random pair
#In a GUI this would be a textboks or slider for the user to use
choice_pair = int(raw_input('How many pair would you like to take out: '))
for i in range(choice_pair):
   print choice(pair_dict.items())


'''My output-->
{'AlexanderBain': '1818-1903',
'CharlesRobertDarwin': '1809-1882',
'GustavTheodorFechner': '1801-1887',
'Jean-BaptisteLamarck': '1744-1829',
'JohnStuartMill': '1806-1873'}
----------------------------------------
('CharlesRobertDarwin', '1809-1882')
('JohnStuartMill', '1806-1873')
----------------------------------------
How many pair would you like to take out:
4

('Jean-BaptisteLamarck', '1744-1829')
('CharlesRobertDarwin', '1809-1882')
('GustavTheodorFechner', '1801-1887')
('JohnStuartMill', '1806-1873')
'''

Endret av SNIPPSAT
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...