C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: lispの3目並べプログラム


(過去ログ 86 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■51599 / inTopicNo.1)  lispの3目並べプログラム
  
□投稿者/ もふ (5回)-(2010/07/11(Sun) 00:29:45)

分類:[その他の言語] 

また質問?させていただきます。
Allegro Common Lisp 8.0を使っています。

lispで3目並べの勝敗を判定する関数win(board)を作成します。
引数boardは盤面の各行をコード化した3つのリストを要素として持つ。
盤面の何もないところはnil、×のところはx、○のところはoで表す。
winの値は、×が勝ったらx、○が勝ったらo、それ以外だったらnilを返す。

動作例
(win '((o nil x) (nil o nil) (x nil o)))
o


どんな考え方で関数を定義すればいいか悩んでいます。
リスト処理でなんとかしたいと思っているのですが・・・
考え方についてアドバイスをください。
よろしくお願いします。

引用返信 編集キー/
■51600 / inTopicNo.2)  Re[1]: lispの3目並べプログラム
□投稿者/ επιστημη (2533回)-(2010/07/11(Sun) 10:35:30)
επιστημη さんの Web サイト
> どんな考え方で関数を定義すればいいか悩んでいます。

きわめてドロくさいけども:

1. 三つのlist中 car(x) と car(cdr(x)) と car(cdr(cdr(x))) が一致するものがあれば確定。
2. car(x), car(y), car(z) が一致すれば以下同文
3. car(cdr(x)), car(cdr(y)), car(cdr(z)) が以下同文
4. car(cdr(cdr(x), 以下同文
5. ナナメについて以下同文

引用返信 編集キー/
■51605 / inTopicNo.3)  Re[2]: lispの3目並べプログラム
□投稿者/ もふ (6回)-(2010/07/11(Sun) 23:48:06)
No51600 (επιστημη さん) に返信

解決です。
私自身、難しく考えすぎていたようです・・・
本当にありがとうございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -