2016-07-15 4 views
-1

Ich versuche das Sudoku-Spiel in Ruby zu implementieren. Da hatte ich ein Problem. Das Problem ist, dass ich nicht mit mehreren Zeilen gleichzeitig umgehen kann. Zum Beispiel habe ich eine 5 * 5 Boxen. In jedem Feld muss der Benutzer die Nummer eingeben. Zum Beispiel muss der Benutzer die Nummer in die zweite Box eingeben, ich weiß nicht, wie ich zur zweiten Box gehen soll. Weil die zweite Box in der ersten Zeile verfügbar ist. Aber ich wurde mehr als 10 Zeilen geschrieben.Wie suche ich mit stdout?

Ich wurde im Internet gesucht. Darin heißt es, dass man die Methode seek verwenden soll. Aber die Suchmethode funktioniert nicht für die Standardausgabe.

Ich habe den Sudoku-Code nicht implementiert. Ich habe gerade versucht, das stdout mit einem einfachen Beispiel zu suchen. Hier

ist der Beispielcode,

file = $stdout.dup 

file.puts "######### ##########" 
file.puts "####################" 
file.puts "####################" 
file.puts "####################" 
file.puts "####################" 

file.pos=10 
file.puts "#" 

In diesem Beispiel die 10. Position enthält den Raum, ich brauche den Raum zu dem # \ n zu ändern. Dafür habe ich den obigen Code ausprobiert. Aber es wird nicht funktionieren.

Kann mir bitte jemand erklären, warum es nicht funktioniert und wie dies in nur Ruby nicht mit Schienen zu tun?

Antwort

0

Nicht jedes Dateihandle ist suchbar. Wenn es sich bei stdout um eine Festplattendatei handelt, können Sie sie wahrscheinlich suchen, aber wenn es sich bei stdout um ein Terminal handelt, können Sie es nicht.

+0

Der Stdout ist ein Terminal, gibt es eine Möglichkeit, dies im Terminal zu tun? – suresh

+0

Nein, Sie können ein Terminal nicht "suchen". Das würde bedeuten, dass Sie eine Zeitreise machen müssten, es ist einfach nicht möglich, etwas zu überspringen, was noch nicht einmal gedruckt wurde. –