Schade, daß Dein Code so mies kommentiert ist.HWK hat geschrieben:So, ich habe mich einmal gequält: Hier befindet sich eine Version in 16-Bit-X86-Assembler. Turbo-Assembler erzeugt hieraus eine COM-Datei (d.h. für DOS) mit einer Länge von 281 Bytes. Wer keinen Assembler installiert hat, kann die fertige COM-Datei mit diesem Python-Script erstellen.
MfG
HWK
HILFE!! Hausaufgabe/ zahlenrate programm!!
@hendrikS: Das kommt auf die Qualität der Zufallszahlen an. Für so einfache Spiele reicht auch ein einfacher Algorithmus.
Der vom cc65 C-Crosscompiler sieht nach Forth (16-Bit volksFORTH) portiert so aus:
`randomize` ist plattformspezifisch, das mixt auf dem C64 die aktuelle Rasterzeile, die der Videochip gerade aufbaut mit einem Softwaretimer.
Der vom cc65 C-Crosscompiler sieht nach Forth (16-Bit volksFORTH) portiert so aus:
Code: Alles auswählen
\ Random Numbers
\ The algorithm is ported from cc65.
| create seed 5 allot
: seed! ( n -- )
seed 5 erase seed 3+ ! ;
: seed@ ( -- n ) seed 3+ @ ;
: random ( -- n )
seed 1+ 2@ seed 2@ d+
$3.1415927 d+ seed 1+ 2! seed 2+ @ ;
: randomize ( -- )
$d012 c@ 256 * $a0 c@ or seed! ;
: randint ( max -- n ) random swap mod ;
1 seed!
Und noch mal in Ada:
Code: Alles auswählen
with Ada.Text_IO;
use Ada.Text_IO;
with Ada.Numerics.Discrete_Random;
procedure GuessTheNumber is
type SecretType is range 1 .. 100;
package Tries_IO is new Ada.Text_IO.Integer_IO (Positive);
package Secret_IO is new Ada.Text_IO.Integer_IO (SecretType);
package RandomSecret is new Ada.Numerics.Discrete_Random (SecretType);
Tries : Positive := 1;
Secret, Guess : SecretType;
RandomState : RandomSecret.Generator;
begin
RandomSecret.Reset (RandomState);
Secret := RandomSecret.Random (RandomState);
loop
begin
Tries_IO.Put (Tries, 1);
Put (". guess: ");
Secret_IO.Get (Guess);
exit when Guess = Secret;
Put ("Your number is ");
if Guess > Secret then
Put_Line ("greater.");
else
Put_Line ("smaller.");
end if;
Tries := Tries + 1;
exception
when Data_Error =>
Put ("Pleaser enter a number in range ");
Secret_IO.Put (SecretType'First, 1);
Put (" .. ");
Secret_IO.Put (SecretType'Last, 1);
Put_Line ("!");
-- Skip input. Neccessary if input was no valid number literal.
declare
Dummy : String (1 .. 80);
Last : Natural;
begin
Get_Line (Dummy, Last);
end;
end;
end loop;
Put ("Yeah! You guessed correct in ");
Tries_IO.Put (Tries, 1);
Put_Line (" tries.");
end GuessTheNumber;
Reicht dir auch das neue Cobol?
http://paste.pocoo.org/show/99308/
Ich fühl mich schmutzig
Code: Alles auswählen
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Random;
class Guesser {
private int currentGuess;
private int secret;
private int tries;
public Guesser() {
secret = new Random().nextInt(100) + 1;
}
public void tryGuess(int guess) {
currentGuess = guess;
tries++;
}
public int checkGuess() {
if (currentGuess < secret) {
return -1;
} else if (currentGuess > secret) {
return 1;
} else {
return 0;
}
}
public boolean isRight() {
return secret == currentGuess;
}
public int getTries() {
return tries;
}
}
public class Guess {
static String ERROR = "Bitte gib eine Zahl zwischen 1 und 100 ein.";
public static void main(String[] args) {
InputStreamReader istream = new InputStreamReader(System.in) ;
BufferedReader bufRead = new BufferedReader(istream) ;
Guesser guess = new Guesser();
int currentGuessing;
String rawGuessed;
do {
System.out.println("Gib deine Vermutung ab:");
try {
rawGuessed = bufRead.readLine();
} catch (IOException e) {
System.out.println(ERROR);
continue;
}
currentGuessing = Integer.parseInt(rawGuessed);
if (currentGuessing == 0) {
System.out.println(ERROR);
continue;
}
guess.tryGuess(currentGuessing);
switch (guess.checkGuess()) {
case -1:
System.out.println("Das war zu niedrig!");
break;
case 1:
System.out.println("Das war zu hoch!");
break;
}
} while (! guess.isRight());
System.out.printf("Richtig! Du hast %d Versuche gebraucht!", guess.getTries());
}
}
Ich fühl mich schmutzig
Öhm, so programmiert in Java ._. So wirds einem zumindest beigebracht... Objektorientierung für die trivialsten Fälle, für die simple Eingabe 213142 Zeilen und sowas... Ich will jetzt nich java ganz dolle beleidigen und Leute wie sma (verzeih, du bist nunmal aus'n Java-Bereich...) verärgern, aber so wurde es mir beigebracht.zero-one hat geschrieben:is das denn wirklich die minimalste Loesung in Java? Ist ja nen ganz schoener Klumpen fuer etwas so simples...
Die minimalste Lösung in Java würde so ähnlich aussehen wie die in Python... aber jeweils für die kleineren Aufgaben wie Eingabe einige Zeilen mehr, weil gezwungenes Abfangen von'n IOError und sowas.
Ungefähr das ist Enteprise Niveau:BlackVivi hat geschrieben:Öhm, so programmiert in Java ._. So wirds einem zumindest beigebracht... Objektorientierung für die trivialsten Fälle, für die simple Eingabe 213142 Zeilen und sowas... Ich will jetzt nich java ganz dolle beleidigen und Leute wie sma (verzeih, du bist nunmal aus'n Java-Bereich...) verärgern, aber so wurde es mir beigebracht.zero-one hat geschrieben:is das denn wirklich die minimalste Loesung in Java? Ist ja nen ganz schoener Klumpen fuer etwas so simples...
Die minimalste Lösung in Java würde so ähnlich aussehen wie die in Python... aber jeweils für die kleineren Aufgaben wie Eingabe einige Zeilen mehr, weil gezwungenes Abfangen von'n IOError und sowas.
http://paste.pocoo.org/show/99317/
Ist super erweiterbar
Das ist ja grauenhaft!Ungefähr das ist Enteprise Niveau:
http://paste.pocoo.org/show/99317/
Da kann ich nur noch den armen Programmiersklaven dieser Welt mein Mitgefül aussprechen...
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Na dann siehst du auch was Informatikstudenten so sinnvolles lernen.HerrHagen hat geschrieben:Da kann ich nur noch den armen Programmiersklaven dieser Welt mein Mitgefül aussprechen...
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Ich wünschte du hättest meine Laboraufgabe in Informatik II gesehen...Leonidas hat geschrieben:Na dann siehst du auch was Informatikstudenten so sinnvolles lernen.HerrHagen hat geschrieben:Da kann ich nur noch den armen Programmiersklaven dieser Welt mein Mitgefül aussprechen...
Machen wir nen Club auf?BlackVivi hat geschrieben:Ich wünschte du hättest meine Laboraufgabe in Informatik II gesehen...Leonidas hat geschrieben:Na dann siehst du auch was Informatikstudenten so sinnvolles lernen.HerrHagen hat geschrieben:Da kann ich nur noch den armen Programmiersklaven dieser Welt mein Mitgefül aussprechen...