Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > ger.ct > #669816 > unrolled thread
| Started by | Bonita Montero <Bonita.Montero@gmail.com> |
|---|---|
| First post | 2026-07-29 17:24 +0200 |
| Last post | 2026-07-30 12:15 +0200 |
| Articles | 6 — 3 participants |
Back to article view | Back to ger.ct
Kleines Rätsel Bonita Montero <Bonita.Montero@gmail.com> - 2026-07-29 17:24 +0200
Re: Kleines Rätsel Ruediger Lahl <ruediger.lahl@gmx.de> - 2026-07-29 18:45 +0200
Re: Kleines Rätsel Bonita Montero <Bonita.Montero@gmail.com> - 2026-07-29 19:06 +0200
Re: Kleines Rätsel "F. W." <me@home.invalid> - 2026-07-30 07:14 +0200
Re: Kleines Rätsel Ruediger Lahl <ruediger.lahl@gmx.de> - 2026-07-30 08:47 +0200
Re: Kleines Rätsel Bonita Montero <Bonita.Montero@gmail.com> - 2026-07-30 12:15 +0200
| From | Bonita Montero <Bonita.Montero@gmail.com> |
|---|---|
| Date | 2026-07-29 17:24 +0200 |
| Subject | Kleines Rätsel |
| Message-ID | <114d5uu$vfev$1@raubtier-asyl.eternal-september.org> |
Gesucht ist ein Programm das feststellt wie viele Wege zu einem für eine Seite erfolgreichen oder unentschiedenem Spielende es bei Tic Tac Toe gibt. Mir ist das Ganze heute morgen durch den Kopf gegangen und ich habe schnell eine Lösung gehabt, aber das Ganze dann immer wieder hin und her vereinfacht, dass ich ins- gesamt ca. vier Stunden dran gesessen hab.
[toc] | [next] | [standalone]
| From | Ruediger Lahl <ruediger.lahl@gmx.de> |
|---|---|
| Date | 2026-07-29 18:45 +0200 |
| Message-ID | <114dhnm.ctk.1@privat.lahls.de> |
| In reply to | #669816 |
*Bonita Montero* schrieb: > Gesucht ist ein Programm das feststellt wie viele Wege zu einem > für eine Seite erfolgreichen oder unentschiedenem Spielende es > bei Tic Tac Toe gibt. Eine geradezu ideale Frage für die KI deines geringsten Misstrauens. Ich habs Copilt vorgeworfen und er hat ausführlich geantwortet. -- bis denne (551)
[toc] | [prev] | [next] | [standalone]
| From | Bonita Montero <Bonita.Montero@gmail.com> |
|---|---|
| Date | 2026-07-29 19:06 +0200 |
| Message-ID | <114dbve$11k9q$1@raubtier-asyl.eternal-september.org> |
| In reply to | #669819 |
Am 29.07.2026 um 18:45 schrieb Ruediger Lahl:
> *Bonita Montero* schrieb:
>
>> Gesucht ist ein Programm das feststellt wie viele Wege zu einem
>> für eine Seite erfolgreichen oder unentschiedenem Spielende es
>> bei Tic Tac Toe gibt.
>
> Eine geradezu ideale Frage für die KI deines geringsten Misstrauens.
> Ich habs Copilt vorgeworfen und er hat ausführlich geantwortet.
Der hatte aber sicher keine so elegante Lösung wie ich:
#include <iostream>
#include <array>
using namespace std;
int main()
{
constexpr int8_t Free = -3;
array<array<int8_t, 3>, 3> board;
board.fill( array<int8_t, 3> { Free, Free, Free } );
unsigned undecided = 0, wins = 0;
auto recurse = [&]( this auto &self, int8_t colour ) noexcept -> void
{
bool full = true;
for( size_t row = 3; row--; )
for( size_t col = 3; col--; )
if( int8_t &coin = board[row][col]; coin == Free )
{
full = false;
coin = colour;
int needed = colour ? 3 : 0;
bool won = (board[row][0] + board[row][1] + board[row][2]) == needed
|| (board[0][col] + board[1][col] + board[2][col]) == needed;
if( int mid = board[1][1]; !won && (row == col || row + col == 2) )
won = (board[0][0] + mid + board[2][2]) == needed
|| (board[0][2] + mid + board[2][0]) == needed;
if( !won )
self( colour ? 0 : 1 );
else
++wins;
coin = Free;
}
undecided += full;
};
recurse( false );
cout << "wins: " << 2 * wins << endl;
cout << "undecided: " << 2 * undecided << endl;
}
[toc] | [prev] | [next] | [standalone]
| From | "F. W." <me@home.invalid> |
|---|---|
| Date | 2026-07-30 07:14 +0200 |
| Message-ID | <nd04ubF2fvlU4@mid.individual.net> |
| In reply to | #669821 |
Am 29.07.2026 um 19:06 schrieb Bonita Montero:
Hier eine verständliche Pascal-Version ;-) :
Hier ist die 1:1-Übersetzung in moderneres Pascal (Free Pascal /
Delphi). Die rekursive C++23-Lambda-Funktion wurde sauber als
verschachtelte Prozedur übersetzt.
program TicTacToeRecursion;
{$mode objfpc}{$H+}{$J-} // Für Free Pascal
uses
SysUtils;
const
FreeCell: ShortInt = -3;
var
board: array[0..2, 0..2] of ShortInt;
undecided, wins: Cardinal;
row, col: Integer;
procedure Recurse(colour: ShortInt);
var
full, won: Boolean;
row, col: Integer;
needed, mid: Integer;
begin
full := True;
for row := 2 downto 0 do
begin
for col := 2 downto 0 do
begin
if board[row, col] = FreeCell then
begin
full := False;
board[row, col] := colour;
if colour <> 0 then
needed := 3
else
needed := 0;
won := ((board[row, 0] + board[row, 1] + board[row, 2]) =
needed) or
((board[0, col] + board[1, col] + board[2, col]) =
needed);
mid := board[1, 1];
if (not won) and ((row = col) or (row + col = 2)) then
begin
won := ((board[0, 0] + mid + board[2, 2]) = needed) or
((board[0, 2] + mid + board[2, 0]) = needed);
end;
if not won then
begin
if colour <> 0 then
Recurse(0)
else
Recurse(1);
end
else
begin
Inc(wins);
end;
board[row, col] := FreeCell;
end;
end;
end;
if full then
Inc(undecided);
end;
begin
// Board initialisieren
for row := 0 to 2 do
for col := 0 to 2 do
board[row, col] := FreeCell;
undecided := 0;
wins := 0;
Recurse(0); // 0 entspricht 'false' im C++-Code
WriteLn('wins: ', 2 * wins);
WriteLn('undecided: ', 2 * undecided);
end.
```
FW
[toc] | [prev] | [next] | [standalone]
| From | Ruediger Lahl <ruediger.lahl@gmx.de> |
|---|---|
| Date | 2026-07-30 08:47 +0200 |
| Message-ID | <114f33p.11s.1@privat.lahls.de> |
| In reply to | #669821 |
*Bonita Montero* schrieb: > Am 29.07.2026 um 18:45 schrieb Ruediger Lahl: >> *Bonita Montero* schrieb: >>> Gesucht ist ein Programm das feststellt wie viele Wege zu einem >>> für eine Seite erfolgreichen oder unentschiedenem Spielende es >>> bei Tic Tac Toe gibt. >> >> Eine geradezu ideale Frage für die KI deines geringsten Misstrauens. >> Ich habs Copilt vorgeworfen und er hat ausführlich geantwortet. > > Der hatte aber sicher keine so elegante Lösung wie ich: Gib deine im OP geschriebene Forderung bei Copilot ein und schaue es dir selbst an. -- bis denne (550)
[toc] | [prev] | [next] | [standalone]
| From | Bonita Montero <Bonita.Montero@gmail.com> |
|---|---|
| Date | 2026-07-30 12:15 +0200 |
| Message-ID | <114f87b$1m1b3$1@raubtier-asyl.eternal-september.org> |
| In reply to | #669872 |
Am 30.07.2026 um 08:47 schrieb Ruediger Lahl: > Gib deine im OP geschriebene Forderung bei Copilot ein und schaue es dir > selbst an. Ich habs mit Claude gemacht, und wie immer kommt nur eine Standard- lösung raus. Kreativität hat wohl in dem Bereich noch keine KI.
[toc] | [prev] | [standalone]
Back to top | Article view | ger.ct
csiph-web