|
You last visited: Today at 04:21
Advertisement
Lernprogramm
Discussion on Lernprogramm within the General Coding forum part of the Coders Den category.
03/21/2011, 17:47
|
#1
|
elite*gold: 0
Join Date: Feb 2009
Posts: 62
Received Thanks: 0
|
Lernprogramm
Hallo zusammen,
Ich bin gerade dabei, für ne Freundin von mir ein Lernprogramm zu schreiben. Ich habe auch ungefähr ne Vorstellung wie es Aussehen soll. Das Problem ist nur, das es so wie ich das im Moment mache zu lange wird. Kann mir vielleicht einer Helfen, und mir sagen wie ich eine Art "zufällige Variable" machen kann, aber er bei der Lösung trotzdem noch erkennt, ob es Richtig oder Falsch ist. Das Ziel wäre, das ich nicht für jedes einzelne Wort eine neue if Schleife Programmieren muss.
Code:
MsgBox(0, "Lernprogramm", "Partikel = 1" & @LF & "Artikel = 2")
While 1
$Partikel1 = InputBox ("Lernprogramm", "an=")
if $Partikel1 <> 1 Then
MsgBox (0, "Lernprogramm", "Falsch")
ElseIf $Partikel1 = 1 Then
MsgBox (0, "Lernprogramm", "Richtig")
ExitLoop
EndIf
WEnd
While 2
$Partikel2 = InputBox ("Lernprogramm", "an=")
if $Partikel2 <> 2 Then
MsgBox (0, "Lernprogramm", "Falsch")
ElseIf $Partikel2 = 2 Then
MsgBox (0, "Lernprogramm", "Richtig")
ExitLoop
EndIf
WEnd
; usw.....
Edit: Upps ist wahrscheinlich in der Falschen Sektion. Danke fürs verschieben.
|
|
|
03/22/2011, 14:39
|
#2
|
elite*gold: 15
Join Date: Nov 2005
Posts: 13,021
Received Thanks: 5,324
|
Hat jetzt aber nichts mit Gamehacking zu tun.
#moved nach Coders
|
|
|
03/23/2011, 07:58
|
#3
|
elite*gold: 0
Join Date: May 2008
Posts: 1,222
Received Thanks: 500
|
Quote:
Originally Posted by MrPsycho90
Hallo zusammen,
Ich bin gerade dabei, für ne Freundin von mir ein Lernprogramm zu schreiben. Ich habe auch ungefähr ne Vorstellung wie es Aussehen soll. Das Problem ist nur, das es so wie ich das im Moment mache zu lange wird. Kann mir vielleicht einer Helfen, und mir sagen wie ich eine Art "zufällige Variable" machen kann, aber er bei der Lösung trotzdem noch erkennt, ob es Richtig oder Falsch ist. Das Ziel wäre, das ich nicht für jedes einzelne Wort eine neue if Schleife Programmieren muss.
Code:
MsgBox(0, "Lernprogramm", "Partikel = 1" & @LF & "Artikel = 2")
While 1
$Partikel1 = InputBox ("Lernprogramm", "an=")
if $Partikel1 <> 1 Then
MsgBox (0, "Lernprogramm", "Falsch")
ElseIf $Partikel1 = 1 Then
MsgBox (0, "Lernprogramm", "Richtig")
ExitLoop
EndIf
WEnd
While 2
$Partikel2 = InputBox ("Lernprogramm", "an=")
if $Partikel2 <> 2 Then
MsgBox (0, "Lernprogramm", "Falsch")
ElseIf $Partikel2 = 2 Then
MsgBox (0, "Lernprogramm", "Richtig")
ExitLoop
EndIf
WEnd
; usw.....
Edit: Upps ist wahrscheinlich in der Falschen Sektion. Danke fürs verschieben.
|
Wie wärs mit ner datenbank?
|
|
|
03/24/2011, 18:05
|
#4
|
elite*gold: 42
Join Date: Jun 2008
Posts: 5,425
Received Thanks: 1,888
|
Quote:
Originally Posted by MrPsycho90
if Schleife
|
Ich hoffe, du stirbst einen langsamen, qualvollen tod.
Arrays. Übrigens, dein coding stil ist der horror.
|
|
|
03/24/2011, 18:55
|
#5
|
elite*gold: 0
Join Date: Feb 2009
Posts: 62
Received Thanks: 0
|
Ja, ich weiss.
Danke trotzdem^^ ich versuche mich mal daran.
Hab selber schon ne Idee gehabt... Sieht jetzt so aus:
Code:
HotKeySet ("{F6}","_Exit")
Func _Exit()
Exit
EndFunc
MsgBox (0,"Lernprogramm", "Viel Spass beim Partikel lernen!" & @LF & "" & @LF &"Beenden mit F6")
FileOpen ("Partikelliste.txt", @Scriptdir)
$ZeileAbfrage = 1
$ZeileErgebniss = 2
$Wort = FileReadLine ( "Partikelliste.txt", $ZeileAbfrage)
$Ergebniss = FileReadLine ("Partikelliste.txt", $ZeileErgebniss)
While 1
$Partikel = InputBox ("Lernprogramm", $Wort)
if $Partikel <> $Ergebniss Then
MsgBox (0, "Lernprogramm", "Falsch")
ElseIf $Partikel = $Ergebniss Then
MsgBox (0, "Lernprogramm", "Richtig")
ExitLoop
EndIf
WEnd
|
|
|
03/24/2011, 20:13
|
#6
|
elite*gold: 0
Join Date: Jan 2011
Posts: 144
Received Thanks: 73
|
Hier mal ein Ansatz für dich wie du es umsetzen solltest:
< program initailisierung >
{
< einlesen des Textfiles in ein Array >
z.B: wäre da ein Textfile aufbau in folgendem Format gut
Frage : Antwort
Frage2 : Antwort
Frage3 : Antwort
dann liest du das ganze einfach Zeilen weise ein, und speicherst jede zeile in ein Array
}
Funktion XY (string FrageAntwort)
{
< Jetzt Splitest du den String, durch das Trennzeichen : >
< Rufst deine Frage auf usw.
}
Fragen stellen
{
for (int i = 0; i < array.Length ; i++)
{
Funktion XY(array[i]);
}
}
Nachdenken, Lesen, Verstehen, Umsetzen, Sachen die du noch nicht kennst in google suchen  Wenn dann noch Fehler auftretten Fragen stellen
|
|
|
03/29/2011, 20:58
|
#7
|
elite*gold: 0
Join Date: Feb 2009
Posts: 62
Received Thanks: 0
|
Hmmm.... ich weiss was du meinst kriegs aber nicht ganz hin, das der immer das nächste Wort bringt....
Mit der ersten Frage klappt das, die zweite auch aber bei der dritten bleibt das prog hängen und wiederholt sich immer wieder.
Ich weiss zwar was su mienst mit int i = 0, i = ++, ich kenne das von c her weiss aber nicht wie man das bei AutoIT macht....
Code:
HotKeySet ("{F6}","_Exit")
Func _Exit()
Exit
EndFunc
#include <Array.au3>
#include <File.au3>
Dim $arPartikelliste
$Partikelliste = "Partikelliste.txt"
_FileReadToArray ( $Partikelliste, $arPartikelliste)
StringSplit ( $arPartikelliste , ':',0)
_ArrayDisplay ($arPartikelliste )
$Frage = 1
$Ergebniss = 2
While 1
$Partikel = InputBox ("Lernprogramm", $arPartikelliste [$Frage])
if $Partikel <> $arPartikelliste [$Ergebniss] Then
MsgBox (0, "Lernprogramm", "Falsch")
ElseIf $Partikel = $arPartikelliste [$Ergebniss] Then
$Frage = ++3
$Ergebniss = ++4
MsgBox (0, "Lernprogramm", "Richtig")
;~ ExitLoop
EndIf
WEnd
|
|
|
03/31/2011, 17:25
|
#8
|
elite*gold: 0
Join Date: Nov 2009
Posts: 116
Received Thanks: 13
|
Also wenn du C kannst, dann programmiere bloß nicht in AutoIt ;D
Ansonsten wäre es meine Idee vllt. eine Libary im Internet zu suchen mit der du Zeitfunktionen für AutoIt hast bzw. die Zeit mit in das Programm einbeziehen kannst. Darauf würde ich die Zeit ,,missbrauchen´´ einen zufälligen Integer-Wert im Rahmen deiner Abfragmöglichkeiten zu erstellen. Diesen Integer Wert würde ich dann weiterverwenden zum rauslesen einer Frage/Vokabel(?) und dann wieder verwenden zum überprüfen der Antwort...
Falls ich dich falsch verstanden habe bzw. du etwas ganz Anderes vorhast dann tuts mir Leid 
Mfg
|
|
|
03/31/2011, 18:19
|
#9
|
elite*gold: 0
Join Date: Feb 2009
Posts: 62
Received Thanks: 0
|
Bin leider ned so der Hirsch in C. Kann da nur ein paar kleine Konsolenanwendungen Programmieren... Keine GUI's keine Arrays kein nix^^
Und ja du hast mich falsch verstanden. Also ich suche den Befehl, der bei C so gemacht wird:
Code:
#include <stdio.h>
int main ()
{
int i = 0;
printf ("%d", &i); /*angezeigt wird 0*/
i ++;
printf ("%d", &i); /* 1 wird angezeigt*/
usw...
|
|
|
04/01/2011, 00:10
|
#10
|
elite*gold: 42
Join Date: Jun 2008
Posts: 5,425
Received Thanks: 1,888
|
Quote:
Originally Posted by MrPsycho90
Bin leider ned so der Hirsch in C. Kann da nur ein paar kleine Konsolenanwendungen Programmieren... Keine GUI's keine Arrays kein nix^^
Und ja du hast mich falsch verstanden. Also ich suche den Befehl, der bei C so gemacht wird:
Code:
#include <stdio.h>
int main ()
{
int i = 0;
printf ("%d", &i); /*angezeigt wird 0*/
i ++;
printf ("%d", &i); /* 1 wird angezeigt*/
usw...
|
i=i+1? :>
|
|
|
04/01/2011, 19:30
|
#11
|
elite*gold: 0
Join Date: Feb 2009
Posts: 62
Received Thanks: 0
|
ja schon, aber er belibt dann bei der dritten frage stecken, da er net immer mit dem zuletzt gerechneten ergebniss rechnet...
|
|
|
04/01/2011, 20:18
|
#12
|
elite*gold: 42
Join Date: Jun 2008
Posts: 5,425
Received Thanks: 1,888
|
Quote:
Originally Posted by MrPsycho90
ja schon, aber er belibt dann bei der dritten frage stecken, da er net immer mit dem zuletzt gerechneten ergebniss rechnet...
|
Bei deinem 'Stil' wunderts mich, dass überhaupt etwas läuft. Wir wärs mal mit Grundlagen lernen?
|
|
|
04/01/2011, 21:06
|
#13
|
elite*gold: 0
Join Date: Feb 2009
Posts: 62
Received Thanks: 0
|
hi,
ich will dir jetzt net zu nahe treten aber wie wäre es mal mit etwas hilfreichem, anstatt nur immer nur an meinem programmierstil herumzumeckern??
btw. unter grundlagen verstehe ich, MsgBox, MouseMove etc... aber du darfst mich gerne aufklären.
|
|
|
04/01/2011, 21:36
|
#14
|
elite*gold: 0
Join Date: Nov 2009
Posts: 116
Received Thanks: 13
|
Du bräuchtest doch eigentlich nur 2 Variablen eine hat die gute Zahl 1 und ist konstant.Die andere ist beliebig...
Dann machst du halt eine Schleife und rechnest jede Runde am Ende zu deiner unkonstanten variable die konstante '1' variable hinzu...
Das müsste doch eigentlich sogar bei autoIt funktionieren ;D
Edit: MoepMeep hat das selbe wie ich jetzt geschrieben, nur halt in einer Gleichung verpackt.
Grundlagen definieren sich im allgemeinem in verstehen der generellen Programmiergrundlagen und nicht in ein paar Funktionen...
|
|
|
04/01/2011, 21:52
|
#15
|
elite*gold: 0
Join Date: Feb 2009
Posts: 62
Received Thanks: 0
|
Hab ich ja gemacht, nur das ichs ned hinkrieg, das die Variable unkonstant ist.
Code:
HotKeySet ("{F6}","_Exit")
Func _Exit()
Exit
EndFunc
#include <Array.au3>
#include <File.au3>
Dim $arPartikelliste
$Partikelliste = "Partikelliste.txt"
_FileReadToArray ( $Partikelliste, $arPartikelliste)
_ArrayDisplay ($arPartikelliste )
$Frage = 1
$Ergebniss = 2
While 1
$Partikel = InputBox ("Lernprogramm", $arPartikelliste [$Frage])
if $Partikel <> $arPartikelliste [$Ergebniss] Then
MsgBox (0, "Lernprogramm", "Falsch")
ElseIf $Partikel = $arPartikelliste [$Ergebniss] Then
$Frage = ++3
$Ergebniss = ++4
MsgBox (0, "Lernprogramm", "Richtig")
;~ ExitLoop
EndIf
WEnd
|
|
|
All times are GMT +1. The time now is 04:22.
|
|